@Tja,
dat ziet er goed uit! Ik ga dit eens proberen, waarbij ik enkele verbeteringen in gedachte heb:
- Inschakelen: je triggert het event als er een toename is van de luchtvochtigheid (en ventilator is uit) en kijkt dan na 90 seconden of er weer een toename is.
- 1. Dan mag je het event binnen deze 90 seconden niet nogmaals triggeren, anders wordt je vorige waarde (in z99) overschreven met de huidige waarde en werkt je vergelijk "nieuwe - oude waarde" niet meer. Dus in de event-definitie moet nog "Cannot Retrigger For 90 Seconds" gezet worden.
2. Je script kan ook getriggerd worden door %Rh verandering door de temperatuursverandering in je badkamer als de verwarming uit gaat (koude lucht kan minder vocht opnemen, dus je relatieve luchtvochtigheid neemt toe). En dan ga je net-verwarmde lucht wegzuigen. Dat kan niet de bedoeling zijn. Ik zou in script2 niet alleen kijken naar een toename van je %Rh-waarde, maar beter is op een minimale toename te triggeren (bijv. nieuw-oud > 4%)
3. Als na 90 seconden de waarde niet is toegenomen wordt je event gestopt en begint bij de volgende toename weer van voren af aan. Eerst wordt de nieuwe, dus weer toegenomen, waarde opgeslagen en na 90 seconden check je weer of er wéér een toename is. Zo niet, dan begint het weer opnieuw, enzovoort. Zo kan het gebeuren dat je nooit je ventilator inschakelt. Alleen al daarom is het goed de tijdsinterval (veel) groter dan 90 seconden te maken om zeker te zijn dat de %Rh-toename voldoende groot is. Een andere manier is om in script2 een lus te maken waarin je 90 seconden wacht als de %Rh niet is toegenomen. De lus doorloop je maximaal 4 keer, dus als je na 6 minuten nog geen toename hebt stopt je script zonder je ventilator in te schakelen. Bij een gemeten toename start je de ventilator en stop je het script.
4. De tijd van 90 seconden is afhankelijk van de update-interval van je sensor. RFXCom sensors updaten óf bij wijziging van meetwaarde óf in vaste tijdsintervallen. Bij Oregon sensors weet ik het niet zeker maar is dit volgens mij een vaste tijd. Het beste is je tijd groter te nemen dan de maximale tijdsinterval van je sensor-update. Houdt hier ook rekening mee voor het aantal keer dat de lus (zie 3.) mag doorlopen.
5. Je kan de ventilator ook inschakelen als de %Rh boven een bepaalde waarde uitkomt, bijvoorbeeld 90% (afhankelijk van het meetbereik van je sensor). Dat is een vangnet voor als je detectie niet goed verloopt. De kans dat je in Nederland binnenshuis een zo hoge %Rh hebt is vrij klein.
6. Je kan eens een update missen door storing in de ontvangst waardoor je script niet juist uitgevoerd wordt. Met het aantal keren dat je lus (zie 3.) doorloopt kan je dit ondervangen.
Nog beter is misschien om script1 en script2 tot één script te combineren waarin je kijkt of er een toename van de %Rh is. Zo niet, dan oude waarde = nieuwe waarde zetten en het script stoppen. Zodoende sla je altijd de laatst gemeten laagste %Rh op. Bij een toename kan je meteen checken of de toename groot genoeg is. Je hoeft dan niet nog eens 90 seconden (of meer) te wachten. Is de toename niet voldoende groot, dan oude waarde = nieuwe waarde zetten.
- uitschakelen: je schakelt uit als de huidige Rh% gelijk of lager is dan de oude opgeslagen waarde is.
- 1. beter is een offset op de oude waarde, anders kan het lang duren: huidige waarde =< (oude waarde + offset)
2. om pendelen te voorkomen moet de ventilator minimaal 5 (bijvoorbeeld) minuten blijven lopen. Dit kan door in de event een conditie te zetten "ventilator is ON for at least 5 minutes" i.p.v. "ventilator is ON"
3. time-out van anderhalf uur is een prima vangnet, tenzij je van lang douchen houdt 
4. Indien je ventilator niet alleen lucht uit je douche afzuigt, maar bijv. ook van je wc, dan moet je uitschakelconditie uitgebreid worden met "AND licht_wc is OFF for at least 5 minutes"
@Wim2008:
Jip zegt: "Change RH% douche and ventilator = OFF betekent een event met als eerste trigger-conditie Device Value van luchtvochtigheidssensor Changes Set to Any EN tweede trigger-conditie Device Status van ventilator is OFF".
"Oh," zegt Janneke, "en de scripts gaan dan in Actions --> Run Script --> nieuwe naam ingeven --> open script window. Daar de script invullen, dat is alles van Sub Main tot en met End Sub, en dan save script?"
"Ja," zegt Jip, "dan een Wait Action van 90 seconden en vervolgens het tweede script definieren. En dan je event opslaan. En dan een tweede event voor het stoppen van de ventilator aanmaken, net zoals we zojuist hebben gedaan."
