Nichtauslösung des DOIF bei Ereignis und Zeit-Kombination

Begonnen von münster, 14 Februar 2019, 20:04:58

Vorheriges Thema - Nächstes Thema

münster

Hallo Gemeinde,

hoffe mein Fall gehört tatsächlich in den Bereich DOIF. Fürchte fast es gehört in den Bereich Anfängerfragen! Bin nun schon seit mehreren Tagen am grübeln und ausprobieren warum mein gewähltes DOIF nicht funktioniert. Habe die Commandref als auch jegliche Bereiche zur Erläuterung des DOIF durchforstet und Beispiele versucht für meinen Fall zu übertragen. Langsam gebe ich auf. Zumal ich mir ziemlich sicher bin nichts falsches definiert zu haben. Aber die Realität sagt, dass nichts zur gegebenen Zeit auslöst.

Internals:
   DEF        (["Fenster_.*:Window.*Open"] and [07:10|Mo Di Mi Do Fr]) (set teleBot msg @FHEM ALARM!!!   FENSTER OFFEN! [@"^Fenster":Window:"Open"])
   FUUID      5c602886-f33f-15ce-3168-fee279a365346b02
   MODEL      FHEM
   NAME       Warnung_FHT_Fenster
   NR         432
   NTFY_ORDER 50-Warnung_FHT_Fenster
   STATE      initialized
   TYPE       DOIF
   READINGS:
     2019-02-14 19:40:16   cmd             0
     2019-02-14 19:40:16   mode            enabled
     2019-02-14 19:40:16   state           initialized
     2019-02-14 19:40:16   timer_01_c01    15.02.2019 07:10:00|MoDiMiDoFr
   Regex:
     cond:
       :
         0:
           "Fenster_.*:Window.*Open" Fenster_.*:Window.*Open
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::EventDoIf('Fenster_.*',$hash,'Window.*Open',0) and ::DOIF_time_once($hash,0,$wday,"MoDiMiDoFr")
   days:
     0          MoDiMiDoFr
   devices:
   do:
     0:
       0          set teleBot msg @FHEM ALARM!!!   FENSTER OFFEN! [@"^Fenster":Window:"Open"]
     1:
   helper:
     globalinit 1
     last_timer 1
     sleeptimer -1
   intervalfunc:
   itimer:
   localtime:
     0          1550211000
   realtime:
     0          07:10:00
   time:
     0          07:10:00
   timeCond:
     0          0
   timer:
     0          0
   timers:
     0           0
   triggertime:
     1550211000:
       localtime  1550211000
       hash:
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*
   do         always
   room       Telegram


define Warnung_FHT_Fenster DOIF (["Fenster_.*:Window.*Open"] and [07:10|Mo Di Mi Do Fr]) (set teleBot msg @FHEM ALARM!!!   FENSTER OFFEN! [@"^Fenster":Window:"Open"])


Ohne das AND funktioniert jedes Ereignis für sich.

define Warnung_FHT_Fenster DOIF (["Fenster_.*:Window.*Open"]) (set teleBot msg @FHEM ALARM!!!   FENSTER OFFEN! [@"^Fenster":Window:"Open"])


Funktioniert --> Nachricht auf Telegram bzw. Handy kommt an mit der entsprechenden Meldung.

define Warnung_FHT_Fenster DOIF ([07:10|Mo Di Mi Do Fr]) (set teleBot msg @FHEM ALARM!!!   FENSTER OFFEN! [@"^Fenster":Window:"Open"])


Funktioniert --> Nachricht auf Telegram bzw. Handy kommt an mit der entsprechenden Meldung.

Hoffe Ihr könnt mir ggfs. den richtigen Schubser geben.

Im Voraus vielen Dank!

micky0867

Bin da jetzt kein Spezialist, aber....

["Fenster_.*:Window.*Open"]
sieht nach einem Event aus...ist also kein Zustand....müsste also um 7:10 Uhr ausgelöst werden, damit es funktioniert.
Ich würde um 7:10 eine Funktion ausführen, die alle Fenster auf den Zustand Open untersucht...


Damian

Es sind zwei punktuelle Abfragen (Eventtrigger und Timer) die nie zum gleichen Zeitpunkt wahr sind. Du kannst um 7:10 über die Aggregatsfunkton abfragen, ob noch ein Fenster offen ist.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF