FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Hi2Helmi am 24 Februar 2019, 08:18:15

Titel: Kein and nach or?
Beitrag von: Hi2Helmi am 24 Februar 2019, 08:18:15
Hallo,
ich baue mir gerade eine Zeitschaltuhr und habe plötzlich ein seltsames Verhalten von DOIF festgestellt.
Wenn ich
([06:00-{sunrise(6000,"8:00","9:00")}] or [{sunset(-1800,"17:00","21:00")}-23:00] and [$SELF:Zeitschaltuhr] eq "An")
()
DOELSE
()

schreibe, dann ignoriert das DOIF [$SELF:Zeitschaltuhr] eq "An"


Sieht meine DEF allerdings so aus:
([$SELF:Zeitschaltuhr] eq "An" and [06:00-{sunrise(6000,"8:00","9:00")}] or [{sunset(-1800,"17:00","21:00")}-23:00])
()
DOELSE
()

Dann funktioniert das DOIF wie es soll.

In der zweiten DEF ist nur das [$SELF:Zeitschaltuhr] eq "An" vor die Zeitangabe gewandert!
Gibt es da eine Regel, die ich beachten muss wie kein and nach or?
Titel: Antw:Kein and nach or?
Beitrag von: CoolTux am 24 Februar 2019, 08:29:28
Es ist wie früher in der Schule. Punkt vor Strich und und vor oder.

Du musst Klammern setzen je nach dem wie Dein and gelten soll


( ([06:00-{sunrise(6000,"8:00","9:00")}] or [{sunset(-1800,"17:00","21:00")}-23:00]) and [$SELF:Zeitschaltuhr] eq "An" )


Zum Beispiel.
Titel: Antw:Kein and nach or?
Beitrag von: Hi2Helmi am 24 Februar 2019, 08:44:38
Alles klar, Danke