Folgendes ist klar und verwende ich viel:
{ if (Value("Aktor_A") eq "on" || Value("Dummy_B") eq "irgendwas") { fhem("...
{ if (Value("ktor_A") eq "off" && Value("Dummy_C") ne "blabla") { fhem("...
Ich habe aber jetzt eine Aufgabe, wo ich gerne Folgendes machen würde:
Wenn (A oder B) und C, dann...
if (Value("Aktor_A") eq "on" || Value("Dummy_B") eq "irgendwas" && Value("Dummy_C") ne "blabla") { fhem("...
scheint mir nicht okay, weil da ja nicht klar ist, ob
(A oder B) und C
oder
A oder (B und C)
zutreffen soll.
Wie mach ich das eindeutig? Kann nicht genug Perl...
Hallo,
ich vermute mal so ähnlich wie in Mathe.
Die Klammern richtig setzen ;-)
if (((Value("Aktor_A") eq "on" || Value("Dummy_B")) eq "irgendwas" && Value("Dummy_C")) ne "blabla") { fhem("...
Ungetestet und nur aus dem Kopf.
grüße
Diese Vermutung hatte ich auch, sowas ist aber bei Perl und FHEM öfters mal falsch.
Das Austesten ist bei solchen Sachen nicht ganz unkomplex, daher bin ich eigentlich auf der suche nach jemand der es ... ehem ... weiß, bevor ich das austesten muss.
Du mußte klammern! : (A oder B) und C
&& bindet stärker als ||. Wenn du sie fort lässt wird eine implizite Klammer um b und C gesetzt