Ventilator control

Homeseer Forum in het Nederlands (DUTCH forum)

Moderator: Ruud

Wim2008
Advanced Member
Advanced Member
Posts: 718
Joined: Wed Aug 12, 2009 1:42 pm
Location: Eindhoven, Netherlands

Re: Ventilator control

Post by Wim2008 »

Hartelijk dank, voor de info. Ik ga de 'apply condities' toevoegen.

Nu het werkt, is inderdaad de volgende stap, wanneer moet de afzuiging aan gaan en wanneer uit.
Ik zal mijn licht eens laten schijnen hierop de komende tijd.
De aanzet van Maurice is alvast een goede stap, maar misschien dat het voor mij te ver gaat.

Mvgr Wim :) :wink:
Lempens
Member
Member
Posts: 265
Joined: Wed Dec 12, 2007 1:24 am
Location: Netherlands

Re: Ventilator control

Post by Lempens »

Ik heb het probleem dat het vochtpercentage heel snel daald volgens mij opgelost door de sensor in de afzuiging te plaatsen.
Zo komt alle lucht langs deze sensor.

Ik gebruik de SHT11 van seron, icm een Amtega168

http://www.sensirion.com/en/01_humidity ... _sht11.htm

Zal een foto proberen te posten.
mo046
Member
Member
Posts: 186
Joined: Thu Nov 08, 2007 4:12 pm
Location: Netherlands

Re: Ventilator control

Post by mo046 »

Volgend idee dat ik wil proberen:

Code: Select all

ventilator aan:
grote sprong in luchtvochtigheid wordt vastgesteld in de laatste 10 minuten (zie mijn vorige posting)
EN
combi-ketel in warm-water bedrijf

ventilator uit:
10 minuten nadat combi-ketel het warm-water bedrijf is uitgeschakeld
EN
ventilator is aan
Om de bedrijfsmode van de combiketel vast te stellen wil ik met een SAX15 (2x digitale interface) de aansturing van de regelklep van de ketel meten. Deze kent 3 standen:
  • 1. klep niet aangestuurd
    2. klep in stand warm-water bedrijf, 24V aansturing
    3. klep in stand verwarming, 24 volt aansturing
Hardware heb ik al, nu nog inbouwen en testen.
** Maurice **
Post-IT
Member
Member
Posts: 448
Joined: Sat Feb 28, 2009 12:01 am
Location: Netherlands (Rotterdam)

Re: Ventilator control

Post by Post-IT »

Ik ben heel erg benieuwd naar dit stukje:
ventilator aan:
grote sprong in luchtvochtigheid wordt vastgesteld in de laatste 10 minuten
Ik heb zelf stadsverwarming, en kan dus niet makkelijk zien wanneer er warm water afgenomen wordt.

Ik wacht gespannen af ;-)
Wim2008
Advanced Member
Advanced Member
Posts: 718
Joined: Wed Aug 12, 2009 1:42 pm
Location: Eindhoven, Netherlands

Re: Ventilator control

Post by Wim2008 »

Om de luchtvochtigheid in de badkamer te meten, kan gedaan worden met een luchtvochtigheidsmeter dicht bij de douchcabine te zetten.
Als er meteen een vergelijk is met een vochtigheidsmeter buiten, zou het probleem, van wanneer aan en wanneer uit, misschien opgelost zijn.

Is het mogelijk om in een event te maken met een if.. als.. -funktie.

Mvgr Wim :) :wink:
mo046
Member
Member
Posts: 186
Joined: Thu Nov 08, 2007 4:12 pm
Location: Netherlands

Re: Ventilator control

Post by mo046 »

Wim2008 wrote:Om de luchtvochtigheid in de badkamer te meten, kan gedaan worden met een luchtvochtigheidsmeter dicht bij de douchcabine te zetten.
Als er meteen een vergelijk is met een vochtigheidsmeter buiten, zou het probleem, van wanneer aan en wanneer uit, misschien opgelost zijn.
Dat gaat niet lukken want de luchtvochtigheid binnen is niet gelijk aan die van buiten, o.a. door het verschil in temperatuur. M.a.w. je moet de luchtvochtigheid weten voordat de douche aangaat en je ventilator uitdoen als de luchtvochtigheid weer op deze waarde terug is (met een offset van een paar procent, anders duurt het een eeuwigheid)
** Maurice **
tja
Starting Member
Starting Member
Posts: 47
Joined: Fri Dec 12, 2008 7:46 pm
Location: Netherlands

Re: Ventilator control

Post by tja »

Al hier zo gedaan:

Code: Select all

Change RH% douche and ventilator = OFF then 
disable event 95sec.
Script1
Wait 90 sec.
Script2
End.
---------------------------------------
Script 1:
Sub Main
hs.setdevicevalue"z99",hs.devicevalue("\3")
hs.writelog"Script","huidige waarde %Rh douche naar dummy z99"
End Sub
-----------------------------------------
script 2:
Sub Main
If  hs.devicevalue("\3") > hs.devicevalue("z99") then
hs.writelog "Script","huidige %Rh douche > dan z99 en dan ventilator aan"
hs.execx10 "M1","ON"
end if
End Sub
------------------------------------------------------------------------
change RH% douche and ventilator = ON then script3
script3:
Sub Main
if (hs.devicevalue("\3") = hs.devicevalue("z99")) or (hs.devicevalue("\3") < hs.devicevalue("z99")) then 
hs.execx10 "M1","OFF"
hs.writelog "Script","waarde is weer goed ventilator uit"
end if
End Sub 
-------------------------------------------------------------------------
als ventilator langer dan 1:30 uur aan is dan uitzetten.
Moet het nog verfijnen en versimpelen, maar hier werkt het al +/- ½ jaar.
Last edited by tja on Thu Dec 24, 2009 8:50 pm, edited 1 time in total.
Wim2008
Advanced Member
Advanced Member
Posts: 718
Joined: Wed Aug 12, 2009 1:42 pm
Location: Eindhoven, Netherlands

Re: Ventilator control

Post by Wim2008 »

Dat klinkt goed.
Kun je mij in Jip en Janneke taal aangeven hoe ik dit in mijn Homeseer plaats? Ik heb nog geen ervaring met scripts.

Mvgr Wim :) :wink:
mo046
Member
Member
Posts: 186
Joined: Thu Nov 08, 2007 4:12 pm
Location: Netherlands

Re: Ventilator control

Post by mo046 »

@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."
:D
** Maurice **
Wim2008
Advanced Member
Advanced Member
Posts: 718
Joined: Wed Aug 12, 2009 1:42 pm
Location: Eindhoven, Netherlands

Re: Ventilator control

Post by Wim2008 »

Hee mo046,

Je bent een kei.
Is duidelijk voor mij. Ik ga in het weekend aan de slag.

Mvgr Wim :) :wink:
mo046
Member
Member
Posts: 186
Joined: Thu Nov 08, 2007 4:12 pm
Location: Netherlands

Re: Ventilator control

Post by mo046 »

Even een update. Dit is het script dat ik heb geschreven:

Code: Select all

Sub Main (Optional ByVal pParms As String = "")
  ' device ^21: sensor; device z96: virtual device met referentie waarde; device b15: ventilator

  'ventilator aan bij RH%-toename van 4% of meer, of als RH% boven 90% is
  If (((hs.DeviceValue("^21") > (hs.DeviceValue("z96")+3)) or (hs.DeviceValue("^21") > 90)) and (hs.DeviceStatus("b15") = 3)) then
    hs.SetDeviceStatus("b15",2)
    hs.WriteLog ("Script","huidige %Rh douche >3% toegenomen, of Rh% > 90%, dus ventilator aan")
  End if

  'ventilator uit bij RH%-afname tot +2% of lager, of onder 50%, en ventilator is minimaal 6 minuten aan, of time-out na 2 uur
  if (((hs.DeviceValue("^21") < (hs.DeviceValue("z96")+3)) or (hs.DeviceTime("b15") > 120) or (hs.DeviceValue("z96") < 50)) and (hs.DeviceStatus("b15") = 2) and (hs.DeviceTime("b15") > 6)) then
    hs.SetDeviceStatus("b15",3)
    hs.WriteLog("Script","ventilator uit")
  end if

  'update referentie elke 10 minuten als ventilator uit is
  if ((hs.DeviceValue("z96") <> hs.DeviceValue("^21")) and (hs.DeviceTime("z96") >= 10) and (hs.DeviceStatus("b15") = 3)) then 
    hs.SetDeviceValue("z96",hs.DeviceValue("^21"))
    hs.WriteLog("Script","Rh% veranderd, huidige waarde %Rh=" & hs.DeviceValue("^21") & "% opgeslagen als referentie")
  end if
End Sub
Dit script wordt elke minuut opgeroepen. Eventueel kunnen langere intervallen genomen worden.

De ventilator wordt uitgeschakeld bij waardes onder 50% RH% omdat dat een goede waarde is voor een gezond leefklimaat envoorkomt dat de ventilator erg lang aan staat. Zeker bij de huidige winterse omstandigheden ligt de (referentie-)luchtvochtigheid soms bij 30%.

Probleem waar ik tegenaan gelopen ben is dat mijn Oregon Scientific RTGR328 niet vaak een nieuwe waarde stuurt. Dat kan wel een uur duren. Bij veranderende RH% is de update sneller, maar nog steeds te groot voor een gooede regeling. Een RFXCom sensor is dus meer geschikt. Die kan zo ingesteld worden dat hij elke x minuten (ik meen 5 minuten) of bij elke waardeverandering een update stuurt.
** Maurice **
Post Reply

Return to “Homeseer algemeen Forum”