Hi,
ich zerbreche mir seit einigen Tagen den Kopf über folgendes Problem:
Wenn die Balkontür mehr als 3 Minuten offen ist (HM-SEC-SC-2) dann senke mir die desired-temp (HM-TC-IT-WM-W-EU / HM-CC-RT-DN) auf X Grad ab. Ist die Balkontür dann wieder zu, stelle mir die desired-temp wieder auf den letzten Wert, der vor Türöffnung eingestellt war.
Ich hab schon mit diversen DOIF / notify Kombinationen gespielt, komme aber nicht weiter.
Zum einen ist mir nicht klar, wie ich mir den alten desired-temp Wert merken kann, (mal abgesehen von system tail /opt/fhem/log/logfile Geschichten) und zum zweiten scheitere ich an "tue erst nach drei Minuten etwas".
Kann mir evtl. jemand auf die Sprünge helfen?
Viele Grüße aus Wien
Andreas
Letzten Wert merken kannst du bspw. mit setreading oder mit set in einem dummy (ersteres ist eleganter). Aber auch die Register in HM Devices sind hier evtl. hilfreich). Direktes peeren wäre möglich und sinnvoll.
Das habe ich bei mir mit einen virtuellen Fensterkontakt, einen Watchdog und einem Notify gelöst.
Die Thermostate sind mit dem virtuellen Fensterkontakt gepeert.
Der Watchdog trigger auf die Öffnungszeit und das Notify ist für das Schliessen der Balkontür zuständig.
define w_balkontuer watchdog sc_balkontuer:contact:.open.* 00:03 sc_balkontuer:contact:.closed.* trigger w_balkontuer . ;set vt_balkontuer postEvent open
define n_balkontuer notify sc_balkontuer:contact:.closed.* set vt_balkontuer postEvent closed
Danke!!
der Watchdog hat mir gefehlt. Damit wird's einfach.
Viele Grüße
Andreas
Vermutlich würde auch beim DOIF das Attribut "wait" funktionieren.
Ich hab das so gelöst
([Wz.Fenster] eq "open")
(setreading WZ.Heizung_Clima VorherTemp [WZ.Heizung_Clima:desired-temp])
(set WZ.Heizung_Clima desired-temp off) (set WZ.Heizung_Clima burstXmit)
(setreading EZ.Heizung_Clima VorherTemp [EZ.Heizung_Clima:desired-temp])
(set EZ.Heizung_Clima desired-temp off) (set EZ.Heizung_Clima burstXmit)
(set PushNachricht msg 'Fenster' 'seit 15min offen' ''0'')
DOELSEIF
([Wz.Fenster] eq "closed") (set WZ.Heizung_Clima desired-temp [WZ.Heizung_Clima:VorherTemp],
set EZ.Heizung_Clima desired-temp [EZ.Heizung_Clima:VorherTemp])
Dann noch das wait 15,1,1,1,1,1,900:0
lg