DOIF zur Haustürverriegelung mit Homematic Keymatic HM-SEC-KEY-S

Begonnen von neo_28, 04 Mai 2017, 15:07:43

Vorheriges Thema - Nächstes Thema

neo_28

Hallo zusammen,

ich habe seit einigen Wochen ein Problem mit meiner DOIF-Anweisung zur Haustürverriegelung. Das merkwürdige ist, dass sie davor über ein Jahr lang einwandfrei funktioniert hat. :-\

Es handelt sich um folgende Anweisung:

define di_EG.FL_Tuerschloss_Autoverriegelung DOIF ([HM.EG.FL_Tuerschloss:lock] eq "unlocked" and [20:55-07:00]) (set HM.EG.FL_Tuerschloss lock) DOELSEIF ([Balken] eq "absent" and [HM.EG.FL_Tuerschloss:lock] eq "unlocked") (set HM.EG.FL_Tuerschloss lock) \
DOELSEIF ([Balken] eq "gone" and [HM.EG.FL_Tuerschloss:lock] eq "unlocked") (set HM.EG.FL_Tuerschloss lock)\
DOELSE
attr di_EG.FL_Tuerschloss_Autoverriegelung do always
attr di_EG.FL_Tuerschloss_Autoverriegelung group Türen und Fenster
attr di_EG.FL_Tuerschloss_Autoverriegelung icon security
attr di_EG.FL_Tuerschloss_Autoverriegelung room 0.02_Erdgeschoss,9.02_Steuerung
attr di_EG.FL_Tuerschloss_Autoverriegelung wait 300:300:300


Die Anweisung soll dafür sorgen, dass die Keymatic zwischen 21:00 und 07:00 verriegelt und beim Abwesenheitszustand über das RESIDENTS-Modul (Balken) soll ebenfalls verriegelt werden.

Wie gesagt, dass hat so über ein Jahr wunderbar funktioniert... Seit ein paar Wochen wird zwar um 21:00 verriegelt, wenn jedoch danach zwischen 21:00 und 07:00 Uhr die Tür geöffnet oder entriegelt wurde, wird sie nicht mehr verriegelt.

Das DOIF setzt zwar nach der Zustandsänderung der keymatic auf den wait_timer:cmd_1, dieser wird aber nach kurzer Zeit durch cmd_4 überschrieben.

Wenn ich das DOELSE rausnehme und das Attribut do always setze funktioniert es zwar, aber das Log wird mir dann alle 5 Minuten zugemüllt....

Hat sich in den letzten Wochen dahingehend etwas in dem DOIF-Modul geändert?

Viele Grüße

Neo

Thorsten Pferdekaemper

Hi,
Deine Frage scheint mir speziell auf DOIF abzuzielen. Vielleicht solltest Du diesen Thread in den DOIF-Bereich verschieben.
Gruß,
   Thorsten
FUIP

Ellert

Es sieht so aus, dass es Events gibt, die für alle Bedingungen unwahr sind und daher DOELSE triggern. Entweder die Events sind neu oder das DOIF hatte das Verhalten schon voher.

Schau Dir die störenden Ereignisse im Eventmonitor an und filtere sie mit den üblichen Methoden, z.B. "event-on-change-reading" in der Quelle, checkReadingEvent/addStateEvent im DOIF oder verwende statt der Auslösung über Readings, die über Events.

Siehe auch: https://wiki.fhem.de/wiki/DOIF/Tools_und_Fehlersuche