Ich habe ein DOIF angelegt, mit folgender Bedingung:
( [HMW_IO12_SW7_DR_LEQ0117187_14:"off"]) ( set HMW_IO_12_Sw7_DR_LEQ0117610_13 off)
Also, wenn der eine Schalter aus ist, so soll auch der andere Schalter deaktiviert werden.
Leider funkioniert es genau umgekehrt:
Wenn ich den Schalter einschalte, dann schaltet der andere Schalter aus.
Es klappt auch nicht wenn ich
( [HMW_IO12_SW7_DR_LEQ0117187_14:"on"]) ( set HMW_IO_12_Sw7_DR_LEQ0117610_13 off)
Was hab ich falsch gemacht?
Ist das DOIF überhaupt das Richtige?
Ein Notify ist aus meiner Sicht nicht richtig, da ich dort auf ein Event des Sensors reagiere kann. Entscheidend ist aber der Zustand verschiedener Aktoren.
Was ist der Hintergrund des Szenarios im Endzustand:
Als Bedingungen soll der Zustand (ausgeschaltet) von 4 Magnetventilen für die Bewässerung geprüft werden. Sind alle 4 ausgeschaltet, so soll auch die Tauchpumpe ausgeschaltet werden. Entsprechend würde die Bedingung noch durch andere Schalter mit "and" verknüpft.
( [HMW_IO12_SW7_DR_LEQ0117187_14:"off" and HMW_IO12_SW7_DR_LEQ0117187_15:"off"]) ( set HMW_IO_12_Sw7_DR_LEQ0117610_13 off)
Wenn du den Zustand auswerten willst, dann muss du auch den Zustand abfragen und nicht das Event:
([HMW_IO12_SW7_DR_LEQ0117187_14:state] eq "off") ( set HMW_IO_12_Sw7_DR_LEQ0117610_13 off)
Danke, hat funktioniert. In der Commandref steht es aber anders oder ich habe es falsch übersetzt.
define di_rc_tv DOIF ([remotecontol:"on"]) (set tv on) DOELSE (set tv off)
https://fhem.de/commandref_DE.html#DOIF
Das ist die Abfrage eines Events:
[remotecontol:"on"]
Das ist die Abfrage eines Zustandes:
[remotecontol] eq "on"
Abfragen von Zuständen kannst Du mit and verknüpfen, Abfragen von Events nicht! Es gibt in FHEM keine gleichzeitigen Events.
Die Idee von Dir ist syntaktisch völlig falsch
( [HMW_IO12_SW7_DR_LEQ0117187_14:"off" and HMW_IO12_SW7_DR_LEQ0117187_15:"off"]) ( set HMW_IO_12_Sw7_DR_LEQ0117610_13 off)
Achtung: Beide Ausdrücke ergeben nicht die gleiche Logik!!! Nur fürs Prinzip. ;)
entweder (Events kann man nur or verknüpfen)
( [HMW_IO12_SW7_DR_LEQ0117187_14:"off"] or [HMW_IO12_SW7_DR_LEQ0117187_15:"off"])
oder
( [HMW_IO12_SW7_DR_LEQ0117187_14] eq "off" and [HMW_IO12_SW7_DR_LEQ0117187_15] eq "off")
Zitat von: Otto123 am 06 Juli 2022, 23:48:32
Das ist die Abfrage eines Events:
[remotecontol:"on"]
Das ist die Abfrage eines Zustandes:
[remotecontol] eq "on"
Ah, danke. Habe den Hinweis auch in der CommandRef gefunden und den Zusammenhang verstanden. Ist halt recht viel beschrieben, wo man nicht immer gleich sieht, dass man genau diesen Teil braucht bzw. dieser wichtig ist.
Ps.: Gruß aus Halle :).