Timer / Nach ablauf von x Minuten eine Aktion ausführen

Begonnen von Andreas74, 24 Januar 2016, 11:46:25

Vorheriges Thema - Nächstes Thema

Andreas74

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

marvin78

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.

stromer-12

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
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

Andreas74

Danke!!


der Watchdog hat mir gefehlt. Damit wird's einfach.


Viele Grüße

Andreas

Joker

Vermutlich würde auch beim DOIF das Attribut "wait" funktionieren.

kasslerks

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