FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: rallye am 01 April 2021, 13:07:32

Titel: DOELSEIF-Zweig während WAIT im DOIF-Zweig
Beitrag von: rallye am 01 April 2021, 13:07:32
Ich habe folgendes DOIF definiert:
defmod EZ_Fenster_Heizung DOIF (["^Tuere.BalkonEZ:open"] and [?"HCAutomatik:Winter"]) (set Therm.EZ_Climate desired-temp 12) DOELSEIF (["^Tuere.BalkonEZ:closed"] and [?"HCAutomatik:Winter"]) (set HC_EZ enable)
attr EZ_Fenster_Heizung group Heizung-Fenster
attr EZ_Fenster_Heizung room Server
attr EZ_Fenster_Heizung wait 30:30

setstate EZ_Fenster_Heizung cmd_1
setstate EZ_Fenster_Heizung 2021-04-01 12:26:03 Device Tuere.BalkonEZ
setstate EZ_Fenster_Heizung 2021-04-01 11:36:16 cmd 1
setstate EZ_Fenster_Heizung 2021-04-01 11:36:16 cmd_event Tuere.BalkonEZ
setstate EZ_Fenster_Heizung 2021-04-01 11:36:16 cmd_nr 1
setstate EZ_Fenster_Heizung 2021-04-01 10:24:46 mode enabled
setstate EZ_Fenster_Heizung 2021-04-01 11:36:16 state cmd_1
setstate EZ_Fenster_Heizung 2021-04-01 11:36:16 wait_timer no timer


Nun stelle ich mir die Frage was passiert, wenn ich die Balkontüre aufmache und in weniger als 30 Sekunden die Türe wieder geschlossen wird. Wird dann das
(set Therm.EZ_Climate desired-temp 12)
gecancelled und der DOELSEIF (da der Status "closed" als Event auftritt) ausgeführt
(set HC_EZ enable)
oder wird der DOELSEIF in diesem Fall nicht ausgeführt (was mir lieber wäre, da die Temperatur ohnehin noch nicht abgesenkt ist und unnötig Funklast generiert wird

Danke !
Titel: Antw:DOELSE-Zweig während WAIT im DOIF-Zweig
Beitrag von: rabehd am 01 April 2021, 13:11:16
Lösung 1: Lesen der Doku. Ich bin der Meinung da steht, dass Wait abgebrochen wird.
Lösung 2: Mal ausprobieren.
Titel: Antw:DOELSEIF-Zweig während WAIT im DOIF-Zweig
Beitrag von: rallye am 01 April 2021, 13:33:53
Zitat von: rabehd am 01 April 2021, 13:11:16
Lösung 1: Lesen der Doku. Ich bin der Meinung da steht, dass Wait abgebrochen wird.
Lösung 2: Mal ausprobieren.
Ja, das steht so in der Doku Für Kommandos, die nicht verzögert werden sollen, werden Sekundenangaben ausgelassen oder auf Null gesetzt. Die Verzögerungen werden nur auf Events angewandt und nicht auf Zeitsteuerung. Eine bereits ausgelöste Verzögerung wird zurückgesetzt, wenn während der Wartezeit ein Kommando eines anderen DO-Falls, ausgelöst durch ein neues Ereignis, ausgeführt werden soll.
Ich habe allerdings gehofft, dass ich einen Hinweis in die Richtung bekomme wie ich den Ausführungsteil des DOELSE (der ja nun obsolete ist) verhindern kann

Danke
Titel: Antw:DOELSE-Zweig während WAIT im DOIF-Zweig
Beitrag von: rabehd am 01 April 2021, 16:40:29
Dein DOIF hat kein DOELSE