FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: der_da am 29 April 2016, 12:40:34

Titel: DOIF verzögern und nur auslösen, wenn immer noch Bedingung erfüllt ist.
Beitrag von: der_da am 29 April 2016, 12:40:34
Ich habe folgendes DOIF
([Sensor1] ne "geschlossen" and [Anwesenheit] eq "off") (set Alarmdummy on)
DOELSEIF
([Sensor2] ne "geschlossen" and [Anwesenheit] eq "off") (set Alarmdummy on)
DOELSEIF
([Sensor3] ne "geschlossen" and [Anwesenheit] eq "off") (set Alarmdummy on)

attr wait 90:90:0


Ziel ist es, Alarm auszulösen, wenn keiner anwesend ist und Sensoren ausgelöst werden. Bei Sensor 3 soll der Alarm sofort ausgelöst werden, bei den Sensoren 1 und 2 soll 90 Sekunden gewartet werden, bevor der Alarm ausgelöst wird. Sollte innerhalb der 90 Sekunden die Anwesenheit ihren Status von off auf on ändern, soll KEIN Alarm ausgelöst werden. Leider wird in jedem Fall Alarm ausgelöst (bei Sensor 1 und 2 eben nur um 90 Sekunden verzögert). Habe ich da etwas falsch verstanden. Theoretisch sollte das doch mit DOIF allein machbar sein. Das es das Modul Treshhold gibt, weiß ich, dachte aber verstanden zu haben, das man auch ohne auskäme.
Titel: Antw:DOIF verzögern und nur auslösen, wenn immer noch Bedingung erfüllt ist.
Beitrag von: Per am 29 April 2016, 12:51:46
Zitat von: der_da am 29 April 2016, 12:40:34Habe ich da etwas falsch verstanden.
In deinem DOIF-Konstrukt wird das "on" nicht abgefragt, daher wird auch nix zurückgesetzt.
Titel: Antw:DOIF verzögern und nur auslösen, wenn immer noch Bedingung erfüllt ist.
Beitrag von: der_da am 29 April 2016, 12:57:35
Ah - OK,

also sowas wie
DOELSEIF
([Anwesenheit] eq "on") (tu gar nix)

Kann ich (tu gar nix) auch weg lassen?
Titel: Antw:DOIF verzögern und nur auslösen, wenn immer noch Bedingung erfüllt ist.
Beitrag von: Per am 29 April 2016, 13:15:46
Zweimal "ja".
Wg. gleicher wait-Dauer kannst du Sensor1 und Sensor2 mittels or zusammenfassen.