DOIF wird zeitgesteuert ausgeführt?

Begonnen von Ralf.E, 19 April 2016, 11:26:18

Vorheriges Thema - Nächstes Thema

Ralf.E

Moin,

ich bin gerade über ein Verhalten des DOIF's gestolpert, welches ich mir nicht genau erklären kann.

DOELSEIF( [sys_var_SetHeizungHaus] eq "home" and [00:00-16:30] and [sys_var_HeizungHaus] ne "home" )
(
   ( set sys_var_HeizungHaus $EVENT)
)


Obiges DOELSEIF wird jedesmal um 00:00 ausgeführt, was aber nicht beabsichtigt ist. Beabsichtigt ist, dass nur ein Event von 'sys_var_SetHeizungHaus' in der Zeit von 00:00-16:30 und mit der Randbedingung '[sys_var_HeizungHaus] ne "home"' zur Ausführung des Zweiges führt.

'sys_var_SetHeizungHaus = home' und '[sys_var_HeizungHaus] ne "home"' können beim Auslösen des Timers vom aktuellen Status durchaus zutreffen.

Ich denke folgende Änderung (Fragezeichen) könnte zum beabsichtigten Verhalten führen, aber ich möchte gerne verstehen was beim obigen Beispiel passiert:
DOELSEIF( [sys_var_SetHeizungHaus] eq "home" and [?00:00-16:30] and [?sys_var_HeizungHaus] ne "home" )
(
   ( set sys_var_HeizungHaus $EVENT)
)


Danke
Ralf
Rpi4> FHEM, TabletUI, Z-Wave, EnOcean, Hue, HmIP via Debmatic

CoolTux


DOELSEIF( [sys_var_SetHeizungHaus] eq "home" and [?00:00-16:30] and [?sys_var_HeizungHaus] ne "home" ) ( set sys_var_HeizungHaus $EVENT)


Keine Ahnung ob Du Klammergeil bist aber ich habe da mal bisschen gekürzt.
Das Fragezeichen bedeutet das nicht getriggert wird sondern nur eine Abfrage erfolgt.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Per

Zitat von: reb am 19 April 2016, 11:26:18aber ich möchte gerne verstehen was beim obigen Beispiel passiert
0:00 wird ein Event ausgelöst, alle Bedingungen passen und DOELSEIF löst aus.
Allerdings ist $EVENT in dem Moment 0:00 (wobei ich die Schreibweise gerade nicht prüfen kann), wird also nicht das gewünschte Ergebnis bringen.
Bei der Abfrage mit den Fragezeichen ist $EVENT natürlich "home" (darauf prüfst du ja explizit), daher kannst du im Ausführungsteil auch
(set sys_var_HeizungHaus home)
"fest verdrahten".