FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: accessburn am 11 November 2016, 09:35:31

Titel: Frage zu AND und OR
Beitrag von: accessburn am 11 November 2016, 09:35:31
Moinsen.

Ich möchte realisieren das doif auslöst wenn der MAX open anzeigt und der HomeStatus LangeWeg oder Schlafen ist.

([MAX_132a2c] eq "opened" and [HomeStatus] eq "LangeWeg" or [HomeStatus] eq "Schlafen")(set tueralarm start;{system("sudo bash /opt/fhem/tueralarm_start.sh &")}) DOELSE (set tueralarm stop;{system("sudo bash /opt/fhem/tueralarm_stop.sh &")})

Das macht mir jetzt etwas Kopfweh ob das so stimmt. Greift das "oder" auf den HomeStatus oder auf auf den MAX?
Verwirrung macht sich breit.
Titel: Antw:Frage zu AND und OR
Beitrag von: Ellert am 11 November 2016, 10:07:40
Wegen der Operatorenreihenfolge (https://wiki.selfhtml.org/wiki/Perl/Operatoren#Operatorenrangfolge) gilt für Deine Definition

A and B or C  entspricht (A and B) or C
Titel: Antw:Frage zu AND und OR
Beitrag von: accessburn am 11 November 2016, 10:14:47
([MAX_132a2c] eq "opened" and ([HomeStatus] eq "LangeWeg" or [HomeStatus] eq "Schlafen"))(set tueralarm start;{system("sudo bash /opt/fhem/tueralarm_start.sh &")}) DOELSE (set tueralarm stop;{system("sudo bash /opt/fhem/tueralarm_stop.sh &")})


Macht das dann so mehr Sinn?
Titel: Antw:Frage zu AND und OR
Beitrag von: Ellert am 11 November 2016, 11:11:22
So könnte man Deine Formulierung verstehen.
Zitatwenn der MAX open anzeigt und der HomeStatus LangeWeg oder Schlafen ist.
Falls es nicht Deinen Erwartungen entspricht, kannst Du immer noch das Auslösen des Homestatus unterbinden.