Humidity control tijdens douchen in Domoticz
Afgelopen week heb je een artikel kunnen lezen hoe je de mechanische ventilatie vanuit Domoticz kunt bedieningen. Nu gaan we een stapje verder: het ventilatie-systeem moet automatisch aan gaan, zodra de luchtvochtigheid binnen een enkele minuten een paar procent omhoog gaat: humidity control. Dit is bijvoorbeeld het geval tijdens het douchen. Hiervoor moeten we een temperatuur- /luchtvochtigheidssensor in de badkamer plaatsen.
Benodigdheden
- Raspberry Pi
- Raspbian software
- Domoticz software
- RFXCom interface
- KlikAanKlikUit ACM3500-3
- Temperatuur/luchtvochtigheidssensor
Vochtigheidssensor
We gaan een LUA-script gebruiken welke hoeveel het percentage van de luchtvochtigheid is gestegen in een bepaalde periode. Uiteraard hebben we daar een temperatuursensor voor nodig die ook de luchtvochtigheid aangeeft én compatible is met RFXCom. De sensor hoeft niet geijkt te zijn, aangezien het werkelijke percentage niet van belang is: voor het douchen is de luchtvochtigheid X, tijdens het douchen loopt dat op naar Y en uiteindelijk moet het script ervoor zorgen dat de luchtvochtigheid weer zo snel mogelijk X is. Deze sensor van een euro of 7 voldoet prima!
User Variables
Allereerst dienen we een aantal gebruikersvariabelen aan te maken: SETPU > MORE OPTIONS > USER VARIABLES. Maak onderstaande variabelen aan (wijzig de naam niet en zet de waarde op “0” !).
- humCounter (type=integer, value=0)
- humidityTmin5 (type=integer, value=0)
- humidityTmin10 (type=integer, value=0)
- targetFanOffHumidity (type=integer, value=0)
- fanMaxTimer (type=integer, value=0)
- fanFollowsProgram (type=integer, value=0)
Humidity control script
Hieronder vind je het script dat we gaan gebruiken. Sla dit script op met de naam script_time_humidity.lua
in de folder /home/pi/domoticz/scripts/lua/
. Het script zal nu automatisch iedere minuut draaien. In regel 11 zet je de switch-naam van jouw ventilatie systeem en in regel 12 de naam van de temperatuur-/luchtvochtigheidssensor.
Werking van het script: Iedere 5 minuten wordt de luchtvochtigheid gemeten. De laatste twee meting worden in de gebruikersvariabelen (humidityTmin5 en humidityTmin10) opgeslagen. De metingen van de laatste 10 minuten zijn dus bekend. Vervolgens wordt de laagste van de twee waarden vergeleken met de nieuwste meting en wordt het verschil berekend. Indien het verschil 3 of meer is dan zal het ventilatiesysteem aangezet worden het het ‘luchtvochtigheidsdoel’ berekend worden. Vanaf nu wordt iedere 5 minuten de huidige luchtvochtigheid vergeleken met het doel. Zodra dit doel bereikt wordt zal het ventilatiesysteem weer uitgaan.
Uiteraard is het mogelijk dat het doel nooit gehaald wordt (bv. als het buiten gaat regenen). Daarvoor zit er een failsafe (FAN_MAX_TIME) ingebouwd, het ventilatiesysteem zal na deze tijd automatisch uitgaan. Ook zal het script zien wanneer het ventilatiesysteem handmatig is aangezet, voordat het programma start of als het uitgezet wordt tijdens het programma.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 |
commandArray = {} -- declare some constants -- adjust to your specific situation SAMPLE_INTERVAL = 5 -- time in minutes when a the script logic will happen FAN_DELTA_TRIGGER = 3 -- rise in humidity that will trigger the fan FAN_MAX_TIME = 24 -- maximum amount of sample cycles the fan can be on, -- in case we never reach the target humidity TARGET_OFFSET = 2 -- ventilator goes off if target+offset is reached -- (maybe it takes too long to reach the true target due to wet towels etc) FAN_NAME = 'FAN3' -- exact device name of the switch turning on/off the ventilator SENSOR_NAME = 'Luchtv. Badkamer' -- exact device name of the humidity sensor TEST_MODE = false -- when true TEST_MODE_HUMVAR is used instead of the real sensor TEST_MODE_HUMVAR = 'testHumidity' -- fake humidity value, give it a test value in domoticz/uservars PRINT_MODE = false -- when true wil print output to log and send notifications if PRINT_MODE == true then print('Fan control') end -- get the global variables: -- this script runs every minute, humCounter is used to create SAMPLE_INTERVAL periods humCounter = tonumber(uservariables['humCounter']) humidityTmin5 = tonumber(uservariables['humidityTmin5']) -- youngest reading humidityTmin10 = tonumber(uservariables['humidityTmin10']) -- oldest reading targetFanOffHumidity = tonumber(uservariables['targetFanOffHumidity']) -- target humidity fanMaxTimer = tonumber(uservariables['fanMaxTimer']) fanFollowsProgram = tonumber(uservariables['fanFollowsProgram']) -- marker indicating that the -- decrease program is started target = 0 -- will hold the target humidity when the program starts -- get the current humidity value if (TEST_MODE) then current = tonumber(uservariables[TEST_MODE_HUMVAR]) else current = otherdevices_humidity[SENSOR_NAME] end -- check if the sensor is on or has some weird reading if (current == 0 or current == nil) then print('current is 0 or nil. Skipping this reading') return commandArray end if PRINT_MODE == true then print('Current humidity:' .. current) print('targetFanOffHumidity:' .. targetFanOffHumidity) print('humidityTmin5: ' .. humidityTmin5) print('humidityTmin10: ' .. humidityTmin10) print('fanMaxTimer: ' .. fanMaxTimer) print('humCounter:' .. humCounter) print('fanFollowsProgram:' .. fanFollowsProgram) end -- increase cycle counter humCounter = humCounter + 1 if (humCounter >= SAMPLE_INTERVAL) then if (humidityTmin5 == 0) then -- initialization, assume this is the first time humidityTmin5 = current humidityTmin10 = current end humCounter = 0 -- reset the cycle counter -- pick the lowest history value to calculate the delta -- this also makes sure that two relative small deltas in the past 2*interval minutes are treated as one larger rise -- and therefore will still trigger the ventilator -- I do not want to use a longer interval instead because I want the ventilator to start as soon as possible -- so rather after 5 minutes instead of after 15 minutes because the mirrors in the bathroom become kinda useless <img draggable="false" class="emoji" alt="đ" src="https://s.w.org/images/core/emoji/11/svg/1f609.svg"> delta = current - math.min(humidityTmin10, humidityTmin5) if PRINT_MODE == true then print('Delta: ' .. delta) end -- pick the lowest history value target = math.min(humidityTmin10, humidityTmin5) + TARGET_OFFSET -- shift the previous measurements humidityTmin10 = humidityTmin5 -- and store the current humidityTmin5 = current if (otherdevices[FAN_NAME]=='Off' or (otherdevices[FAN_NAME]=='On' and fanFollowsProgram==0)) then -- either the fan is off or it is on but the decrease program has not started -- in that latter case we start the program anyway. This could happen if someone turns on the ventilator -- manually because he/she is about to take a shower and doesn't like damp mirrors. -- I don't do this because the ventilator removes heat from the bathroom and I want this to happen -- as late as possible <img draggable="false" class="emoji" alt="đ" src="https://s.w.org/images/core/emoji/11/svg/1f609.svg"> if (fanFollowsProgram == 1 and otherdevices[FAN_NAME]=='Off') then -- likely someone turned off the ventilator while the program was running fanFollowsProgram = 0 end -- see if we have to turn it on if (delta >= FAN_DELTA_TRIGGER) then -- time to start the fan commandArray[FAN_NAME] = 'On' targetFanOffHumidity = target if (fanFollowsProgram == 1) then print('Ventilator was already on but we start the de-humidifying program') end fanFollowsProgram = 1 -- set the safety stop fanMaxTimer = FAN_MAX_TIME if PRINT_MODE == true then print('Rise in humidity. Turning on the vents. Delta: ' .. delta) print('Target humidity for turning the ventilator: ' ..targetFanOffHumidity) commandArray['SendNotification'] = 'Ventilator is on#The ventilator was activated at humidity level ' .. current .. '#0' end end else if (fanMaxTimer > 0) then -- possible that someone started the ventialator manually fanMaxTimer = fanMaxTimer - 1 end if (fanFollowsProgram == 1) then -- not manually started if (delta >= FAN_DELTA_TRIGGER) then -- ok, there is another FAN_DELTA_TRIGGER rise in humidity -- when this happen we reset the fanMaxTimer to a new count down -- because we have to ventilate a bit longer due to the extra humidity if PRINT_MODE == true then print('Another large increase detected, resetting max timer. Delta: ' .. delta) end fanMaxTimer = FAN_MAX_TIME end -- first see if it can be turned off if (current <= targetFanOffHumidity or fanMaxTimer==0) then commandArray[FAN_NAME] = 'Off' msg = '' if (fanMaxTimer == 0 and current > targetFanOffHumidity) then msg = 'Target not reached but safety time-out is triggered.' if PRINT_MODE == true then print(msg) end else msg = 'Target humidity reached' if PRINT_MODE == true then print(msg) end end if PRINT_MODE == true then print('Turning off the ventilator') msg = msg .. '\nTurning off the ventilator' end targetFanOffHumidity = 0 fanMaxTimer = 0 fanFollowsProgram = 0 -- reset history in this case.. we start all over -- Tmin10 is still in the 'ventilator=On'-zone humidityTmin10 = humidityTmin5 if PRINT_MODE == true then commandArray['SendNotification'] = 'Ventilator is off#' .. msg .. '#0' end else -- we haven't reached the target yet if PRINT_MODE == true then print('Humidity delta: ' .. delta) end end end end if PRINT_MODE == true then print('New values >>>>>>>>>>>') print('humidityTmin5: ' .. humidityTmin5) print('humidityTmin10: ' .. humidityTmin10) print('fanMaxTimer: ' .. fanMaxTimer) print('humCounter:' .. humCounter) print('fanFollowsProgram:' .. fanFollowsProgram) print('------ target: ' .. targetFanOffHumidity) end end -- save the globals commandArray['Variable:humCounter'] = tostring(humCounter) commandArray['Variable:humidityTmin10'] = tostring(humidityTmin10) commandArray['Variable:humidityTmin5'] = tostring(humidityTmin5) commandArray['Variable:targetFanOffHumidity'] = tostring(targetFanOffHumidity) commandArray['Variable:fanMaxTimer'] = tostring(fanMaxTimer) commandArray['Variable:fanFollowsProgram'] = tostring(fanFollowsProgram) return commandArray |
Ik ben een noob met Lua en bovenstaande kreeg ik met blocky niet voor elkaar. Ik zat nogal te stoeien met tijden en vaste vochtigheidpercentages.
Dit script (samen met de script van gecombineerde sensor) is precies wat ik nodig had. Nu gaat de MV veel sneller aan en weer uit en ben daarom zeer blij dat jij jouw project wilde delen.
Ik gebruik de Everspring ST814 Temperature and Humidity Sensor.
Heel erg bedankt.
Ik houd je website en projecten in de gaten.
Hallo Joost,
Ben al een paar dagen aan het pielen met dit script en het wil maar niet lukken.
Als ik de douche aanzet springt hij netjes aan en zie je ook in de variabelen het vochtgehalte netjes oplopen. Maar het duurt echter geen 5 minuten om T5 of T10 te vullen met waarden. Deze komen er meteen in. Wat ik dan wel zie terwijl de afzuiging aan is is targetFanOffHumidity bijvoorbeeld 35, maar als de douche uit gezet wordt dan springt deze na minder dan 1 minuut op 0.
Hij springt dus tijdens het douchen al meerdere malen uit en weer aan en dat terwijl het vochtgehalte steeds oploopt of gelijk blijft.
Ik heb al door het hele script gelopen en heb dit 1 op 1 overgenomen en alleen mijn FAN en SENSOR erin gezet. Ben wel al met de waarden 5 en 24 aan het spelen geweest, maar ook daarmee blijft het gelijk.
Heb jij een oplossing hiervoor?
Het is al in orde. Has dit LUA script in Domoticz gebruikt op mijn Synology en moest dus bij de dropdown Time selecteren i.p.v. All.
Weet niet of je dit op de Pi ook moet instellen om te laten werken, maar heb er even geen liggen waar Domoticz op staat dus dat heb ik niet kunnen testen.
Probleem is dus hiermee opgelost. Stom dat ik het over het hoofd gezien heb. Misschien wel handig om dit in je artikel te vermelden zodat anderen hier ook wat aan hebben.
Script werkt dus perfect en een bedankje hiervoor lijkt me wel op zijn plaats.
Bedankt Joost.
Hi Joost,
Probeer dit met Domoticz op de Synology met een Sonoff.
Uit voorzorg eerst “droog” getest.
Schakelt bij RV+3% binnen vijf minuten.
Nu op zoek naar een goede buisventilator en bedenken waar ik de sensor ga plaatsen.
Ik ga testen met een bypass (een Y-stuk op zijn kop) in de buis boven het plafond, dan kan ik de sensor, de Sonoff en de fan makkelijk bereiken en onderhouden op de verdieping erboven.
Ik krijg de volgende foutmelding:
Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_humidity.lua: /home/pi/domoticz/scripts/lua/script_time_humidity.lua:75: bad argument #1 to ‘min’ (number expected, got nil)
Controleer of de user variable humidityTmin5 en humidityTmin10 goed zijn aangemaakt.
Ik heb het allemaal gekopieerd dus ziet er normaal uit.
2019-10-03 09:00:00.271 Status: LUA: Current humidity:62
2019-10-03 09:00:00.271 Status: LUA: targetFanOffHumidity:0
2019-10-03 09:00:00.271 Status: LUA: humidityTmin5: 0
2019-10-03 09:00:00.271 Error: EventSystem: in script_time_humidity.lua: [string “commandArray = {} …”]:51: attempt to concatenate global ‘humidityTmin10’ (a nil value)
Als hij bij mij op humcounter 4 is, krijg ik in het log een melding en ook al is de juiste vochtigheidsgraad bereikt gaat hij niet meer uit en loopt het script ook niet meer elke minuut.
/home/pi/domoticz/scripts/lua/script_time_humidity.lua: /home/pi/domoticz/scripts/lua/script_time_humidity.lua:153: attempt to compare number with nil
soms ook op regel 119
correctie : regel 119 is het .
if (fanMaxTimer > 0) then
— possible that someone started the ventialator manually
fanMaxTimer = fanMaxTimer – 1
end
Ik heb nu hetzelfde probleem . Hoe heb jij dat opgelost?
Vandaag domoticz geupdate naar (stable) versie 2020.1. Na de update krijg ik een foutmelding in mijn log van domoticz:
2020-03-23 19:49:00.573 Error: EventSystem: Error updating variable humidityTmin5: Not a valid integer
Enig idee wat hier het probleem zou kunnen zijn?
gr
same here, i follow
Hier hetzelfde probleem na update 2020.1
Ik krijg een foutmelding in regel 60 [string “commandArray = {}…”]:60: ‘)’ expected near ‘;’
Regel 60: if (humCounter >= SAMPLE_INTERVAL) then
Waar gaat het niet goed?
Het blijkt dat met knippen/plakken de code niet goed is meegenomen ipv het > teken komt er >: in de code te staan. Nu wel het probleem dat de humidityTmin5 en 10 “not a valid integer” zijn. Ik heb domoticz ook geupdate naar 2020.1
Ik heb dit ook met Blockly geprobeerd maar hij schakelde gewoon niet in.
Nu met dit script schakelt hij wel in als je even onder de douche staat maar hij schakelt veel te snel weer uit. Net was hij al uit en ging de luchtvochtigheid nog van 91% naar 92%.
Wat is er mis?
Vanuit het “Domoticz version 2020.1 released (Stable)” forum is er antwoord gegeven op het “not a valid integer probleem”.
Looking at this source and the error message it looks like the domoticz uservariable is defined as integer and the script expects it to be string.
Can you check how the uservariables are set in domoticz ?
Met deze aanpassing geen fouten meer gezien.
Hallo,
Ik heb het dezelfde probleem,
2020-04-03 10:58:37.375 Error: EventSystem: Error updating variable humidityTmin5: Not a valid integer
2020-04-03 10:58:37.376 Error: EventSystem: Error updating variable humidityTmin10: Not a valid integer
wat ik kan vinden is..
Try changing humidityTmin5 to math.floor(humidityTmin5) in the line where you get this error.
ik krijg geen line nr. door dus weet niet wat ze bedoelen.
van welke site heb jij dit probleem opgelost?
mvg Erwin
Hi,
De gebruiksvariabelen Tmin5 en Tmin10 zijn gemaakt als type “integer”. Als je deze verander naar “string” dan werkt alles weer.
Hi Remelco,
Zou je een deel van het script (of desnoods het hele script) kunnen plaatsen want ik heb geen idee hoe ik dit moet aanpakken?
Bij voorbaat dank!
Diederik,
Het is het script als zoals beschreven aan het begin van dit Topic.
Hier staat ook beschreven hoe je een user variabele aanmaakt.
User Variables
Allereerst dienen we een aantal gebruikersvariabelen aan te maken: SETPU > MORE OPTIONS > USER VARIABLES. Maak onderstaande variabelen aan (wijzig de naam niet en zet de waarde op â0â !).
humCounter (type=integer, value=0)
humidityTmin5 (type=integer, value=0)
humidityTmin10 (type=integer, value=0)
targetFanOffHumidity (type=integer, value=0)
fanMaxTimer (type=integer, value=0)
fanFollowsProgram (type=integer, value=0)
Echter moet humidityTmin5 en humidityTmin10 het type= string zijn (en niet meer integer zoals hierboven beschreven)
Werkt perfect, dank je wel!
Ik had hetzelfde probleem. Het script heb ik gelaten voor wat het was maar ik heb in Domoticz onder Setup –> More options –> User variables de humidityTmin5 en humidityTmin10 veranderd naar “string” Deze stonden op “integer”.
Hiermee werkt het weer.
Ik heb een nieuwe NAS. Programma opnieuw in Domoticz gezet. Echter komt nu foutmelding “attempt to compare number with nil” in beeld.
Iemand een idee hoe ik dit kan oplossen?
Hallo, hier ook een Domoticz fan zonder al teveel skills vwb LUA đ
Een vraagje:
Ik had ruim voordat ik aan Domoticz begin zelf al een KAKU gemaakt op miujn centrale afzuiging, dus ik heb momenteel een switch binnen Domoticz die gewoon AAN of UIT kan. (Bij AAN gaat de afzuiging op stand 3, bij UIT gaat de afzuiging op stand 1).
Voor de de duidelijkheid:
Ik heb een sensor besteld (de TFA Dostmann 30.3139) en wil deze koppelen en gebruiken met een script. Wat ik dus wil: Automatisch AAn en UIT als de luchtvochtigheid hoog is (grens bij 55%, want als ik een paar dagen niet douche is het altijd zo rond de 50% a 52%, bij douchen loopt het op tot 99% (verder kan de sensor niet die ik nu even gebruik om die waardes te bekijken).
Kan ik het script van hier daarvoor gebruiken?
Omdat mijn switch de naam âAfzuigingâ heeft zal ik waarschijnlijk de naam bijvoorbeeld al moeten aanpassen? En wss ook wel een wijziging in de standen (fan1, fan2 en fan3 want dat heb ik niet).
Hopelijk heeft iemand advies, thanks!
JP
Beste JP
Ook ik maak gebruik van Kaku om de afzuiging te schakelen. En idd ook geen echt âLuaâscripter. Hetgeen ik hier schrijf staat kan dan ook niet tippen aan het script maar werkt redelijk.
Het geeft je in elk geval wat tijd om met het script te experimenteren.
Even vooraf
Vocht varieert in mijn huis tussen de 50-60% met af en toe een uitschieter
Badkamer bij douchen of badderen komt makkelijk boven 75%.
Via blockly een routine aangemaakt die in het kort op het volgende neer komt.
Afzuiging gaat aan bij âlicht aanâ
Afzuiging gaat aan bij âvocht >70%â
Afzuiging gaat automatisch âuit na 60minâ (en dus weer aan als vocht te hoog is)
Nadeel van dit âblocklyâ
Ook als je het licht 2 seconden aan hebt blijft je afzuiger 60min draaien.
Als je huis boven 70% komt blijft het draaien.
Houdt geen rekening met vochtigheid in huis.
Er is geen echt commando âAfzuiging Uitâ
Neem in elk geval de trigger âvochtâ ruim, met 2-3% verschil met normaal staat het ding de hele dag te âklapperenâ.
Succes
Hallo Henk, dank voor je reactie!
Ik zal even kijken wat ik er precies van ga bakken, zal een combi worden van meerdere scripts.
Liefst gewoon een Blockly die zegt: âals de luchtvochtigheid hoger is dan 55% ga dan aan, totdat de luchtvochtigheid weer 55% isâ.
Wacht nog even op de sensor en ga dan testen.
Hoop dat ik gewoon met blockly dat >55% kan gebruiken, de rest is niet nodig.
Kan binnen Domoticz sowieso iedere switch eenvoudig timen, dus gaat uit na bv 2 uur etc, dat zit wel goed.
Vraag me af wat in de praktijk gebeurt als ie de waardes vergelijkt en hoe vaak hij aangaat (en hoe lang).
Ik monitor de percentages al een tijdje en na ca 1,5 tot max 2 uur is het altijd weer
Gr J.P
Hallo, kan iemand mij een lucjtvochtigheidsensor adviseren die 100% werkt binnen Domoticz?
Ik heb nu al de 2e TFA geprobeerd, maar beide worden niet gevonden binnen de apparaten.
Probeer het nu met het model: TFA Dostmann 30.3221.02 Combisensor Draadloos 433 MHz
(zie: > https://www.conrad.nl/p/tfa-dostmann-30322102-combisensor-draadloos-433-mhz-1642587 )
Of doe ik iets fout?
Heb binnen Domoticz het âtoelaten gedurende 5 minutenâ aangevinkt.
Alles tips zijn welkom!
EDIT:
Volgens de online verkoper (winkel) zou dit model moeten werken…we gaan het zien komende dagen > “BR-7009993 Thermo Hygro sensor” (Zal de uitkomst nog even posten tzt)
zo, een update:
Heb uiteindelijk deze sensor gekocht:
https://weerhuisje.nl/nl/accessoires/bresser/br-7009993-thermo-hygro-sensor/a-14808-10000095
Met dit LUA-script de luchtvochtigheid gesplitst van de temperatuur
https://ehoco.nl/gecombineerde-sensor-in-domoticz-splitsen/
Een een Blockly gemaakt met:
Als luchtvochtigheid = >55% > afzuiging AAN
Als luchtvochtigheid = afzuiging UIT
Heb een maand de luchtvochtigheid bijgehouden, is op zn laagste 45%, loopt zeer snel op bij douchen tot einde bereik vd sensor (99%). Prima als ie rond de 55% weer stopt.
Nu testen met waardes, maar veel makkelijker dan de LUAâs die ik zag en foutmeldingen gaven đ
super mooi dat dit kan maar helaas ben ik al een paar dagen aan het rommelen met deze foutmelding: Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_humidity.lua: attempt to compare number with nil
Script gekopieerd en zoals in eerdere reacties humidityTmin5 en humidityTmin10 het type= string zijn (en niet meer integer zoals hierboven beschreven) aangepast. Toch veranderd de waarde humCounter elke keer naar 4.
Huidige setup die ik gebruik:
Raspberry met Domoticz 2020.2 (build 13058)
Sonoff TH16 6.6.0(release-sonoff)
De Sonoff zou moeten schakelen tussen uit/aan geen stand 1,2 of 3
Iemand een idee hoe ik dit aan de gang krijg
Script werk perfect. Was alleen benieuwd of het ook aangepast kan worden met 2.standen op de ventilator.
Mogguh, toch nog een vraagje;
Als ik wil dat de afzuiging wat gevoeliger wordt, dus eerder aangaat.
Wat kan ik het beste wijzigen?
SAMPLE_INTERVAL = 5 > deze tijd verkorten naar bv 3 minuten?!
FAN_DELTA_TRIGGER = 3 > deze waarde verlagen naar bv 2 zodat het verschil in waarde X – Y kleiner hoeft te zijn voordat eea getriggerd wordt?
Of een combi van beide waardes?
Ik ga er nu even mee testen, maar hoor graag wat wijsheid is.
Greetz
Bij mij is fan delta niet zo belangrijk want bij douchen gaat hij toch ineens >10/20 of zo. Zou dan inderdaad de tijd verkorten.
De fan_delta geeft bepaald het verschil tussen aan en uit.
Als je dit verschil te klein maakt (bv 1) dan zou de fan bijvoorbeeld op 51% aan gaan om op 50% weer uit te gaan.
Met een delta=3 zou dit 54 aan en 50 uit zijn.
Je wilt (denk ik niet dat de ventilatie al aan gaat als je heet water pakt waardoor de vochtigheid slechts 1 of 2 % stijgt.
Wil je het systeem sneller laten reageren dan kun je het beter vaker laten testen.
Dit doe je door de interval kleiner te maken.
Ps.
Delta 3 is overigens geen 3% maar dat heb ik even als voorbeeld gebruikt
Thanks! Heb de SAMPLE-INTERVAL verlaagd naar 3 en merkte tot twee keer toe dat ie an na 2 minuten douchen aansprong. Helemaal top!
PS Zie wel dat ik altijd bij het aangaan (alleen bij AAN) van de fan een foutmelding krijg; is dit omdat hij dan nog geen referentiegetal heeft of iets dergelijks?
Dit is de melding:
âEventSystem: Error updating variable targetFanOffHumidity: Not a valid integerâ
een korte vraag:
Soms duurt het best lang voordat de afzuiging aangaat, nu is het wel binnen 5 minuten, maar ik merk dat ik het fijner vind als hij al aanstaat bij de start van het douchen.
Als ik nu handmatig de fan aanzet, wat doet het script dan?
Er staat het volgende in het script:
else
if (fanMaxTimer > 0) then
— possible that someone started the ventialator manually
fanMaxTimer = fanMaxTimer – 1
end
Hoe moet ik dit lezen?
Kan ik dit doen en gaat het script dan vervolgens gewoon netjes meten, ondanks het feit dat de fan al aan is? Niet dat ik hem overrule en dat het script stopt zeg maar.
“