DoIf führt Ereignis aus obwohl Trigger noch unwahr ist ist

Begonnen von NinoG, 15 April 2019, 17:12:41

Vorheriges Thema - Nächstes Thema

NinoG

Ich habe ein Verständnisproblem bei dem ich mir den Kopf zerbreche.

([Sen_T_Terr:"open"] or [Sen_T_Seite:"open"] or [Sen_T_Vorn:"open"] and [zuHause] eq "on") (set Security off) DOELSE (set Security on)

Und das Attribut wait 0:600

Wenn einer der Tür Sensoren open ist und jemand zuhause ist, dann wird Security ausgeschaltet und nach 600 sec. Wieder ein.
Klappt wunderbar.

Aber:
Wenn wenn ich z. B.  die Terrassentür im Sommer länger auf stehen lasse und die Security off bleiben soll, wird Security wieder auf on gestellt nach den 600 sec., obwohl die Tür noch Open ist und eigentlich Security off bleiben soll. Solange bis die Tür closed ist und dann soll erst der timer mit 600 sec los laufen und nach 600 sec. Den Statuswechsel auf Security on veranlassen.

Ich hoffe mir kann jemand einen Tipp geben, vielen Dank! Gruß  :)

Ellert

#1
Zitat von: NinoG am 15 April 2019, 17:12:41
Wenn einer der Tür Sensoren open ist und jemand zuhause ist, dann wird Security ausgeschaltet und nach 600 sec. Wieder ein.

In Deiner Bedingung hast Du aber geschrieben: Wenn [Sen_T_Terr:"open"] offen ist, oder wenn [Sen_T_Seite:"open"] offen ist, oder wenn  [Sen_T_Vorn:"open"] offen und [zuHause] eq "on" ist. Für die logischen Operatoren gibt es eine Rangfolge, wie bei der Punkt und Strichrechnung, also solltest Du die Klammern richtig setzen.

Ausprobieren kannst Du es hiermit: https://wiki.fhem.de/wiki/DOIF/Operatorenrangfolge

NinoG

Super vielen Dank Ellert!
Ich habe jetzt die Sensoren mit der or Abfrage in eine Klammer gesetzt und es klappt wie gewünscht  :D