DOIF reagiert nicht bei Statuswechsel

Begonnen von choetzu, 26 Dezember 2018, 22:37:17

Vorheriges Thema - Nächstes Thema

choetzu

Hallo,

ich habe bei mir ein DOIF gesetzt um meine Gateways zu überwachen. Ich habe dies wie folgt gemacht:

Internals:
   DEF        ([TCM_ESP3_0] ne "initialized") 
(set Monitoring_Dummy Gateway warning)
(set Pushover msg title="Gateway" message="Warning: EnOcean")

DOELSEIF
([CUL] ne "Initialized") 
(set Monitoring_Dummy Gateway warning)
(set Pushover msg title="Gateway" message="Warning: CUL")

DOELSEIF
([LGW_Gateway] ne "opened") 
(set Monitoring_Dummy Gateway warning)
(set Pushover msg title="Gateway" message="Warning: LGW")

DOELSEIF
([ZWDongle_1] ne "initialized") 
(set Monitoring_Dummy Gateway warning)
(set Pushover msg title="Gateway" message="Warning: ZWDongle")

DOELSEIF
([mqtt] ne "active") 
(set Monitoring_Dummy Gateway warning)
(set Pushover msg title="Gateway" message="Warning: MqTT")

DOELSEIF
([Netatmo] ne "ok") 
(set Monitoring_Dummy Gateway warning)
(set Pushover msg title="Gateway" message="Warning: Netatmo")

DOELSEIF
([SIP] ne "initialized") 
(set Monitoring_Dummy Gateway warning)
(set Pushover msg title="Gateway" message="Warning: SIP")

DOELSEIF
([PoolController] ne "OK") 
(set Monitoring_Dummy Gateway warning)
(set Pushover msg title="Gateway" message="Warning: PoolController")

DOELSEIF
([GardenaSystem] ne "connected to cloud") 
(set Monitoring_Dummy Gateway warning)
(set GardenaSystem getToken)
(set Pushover msg title="Gateway" message="Warning: GardenaSystem")

DOELSE 
(set Monitoring_Dummy Gateway OK)
(set Pushover msg title="Gateway" message="ALLES OK")
   MODEL      FHEM
   NAME       Gateway_Check_DOIF
   NR         658
   NTFY_ORDER 50-Gateway_Check_DOIF
   STATE      Alles OK
   TYPE       DOIF
   READINGS:
     2018-12-26 22:29:39   Device          mqtt
     2018-12-16 17:32:54   cmd             10.2
     2018-12-16 17:32:54   cmd_event       set_cmd_10
     2018-12-16 17:32:54   cmd_nr          10
     2018-12-16 17:32:54   cmd_seqnr       2
     2018-12-26 22:18:41   e_GardenaSystem_STATE no token available
     2018-12-26 22:13:44   e_LGW_Gateway_STATE opened
     2018-12-26 22:15:07   e_Netatmo_STATE Connected
     2018-12-26 22:28:39   e_PoolController_STATE OK
     2018-12-26 22:13:39   e_SIP_STATE     initialized
     2018-12-26 22:13:38   e_TCM_ESP3_0_STATE initialized
     2018-12-26 22:29:39   e_mqtt_STATE    active
     2018-12-16 17:30:41   mode            enabled
     2018-12-16 17:32:54   state           Alles OK
     2018-12-26 22:19:39   wait_timer      no timer
   Regex:
   attr:
     cmdState:
       0:
         EnOcean
       1:
         CUL
       2:
         LGW
       3:
         ZWDongle
       4:
         mqtt
       5:
         Netatmo
       6:
         SIP
       7:
         PoolController
       8:
         GardenaSystem
       9:
         Alles OK
     wait:
       0:
         600
         0
       1:
         600
         0
       2:
         600
         0
       3:
         600
         0
       4:
         600
         0
       5:
         600
         0
       6:
         600
         0
       7:
         600
         0
       8:
         900
         0
         0
       9:
         600
         0
     waitdel:
   condition:
     0          ::InternalDoIf($hash,'TCM_ESP3_0','STATE') ne "initialized"
     1          ::InternalDoIf($hash,'CUL','STATE') ne "Initialized"
     2          ::InternalDoIf($hash,'LGW_Gateway','STATE') ne "opened"
     3          ::InternalDoIf($hash,'ZWDongle_1','STATE') ne "initialized"
     4          ::InternalDoIf($hash,'mqtt','STATE') ne "active"
     5          ::InternalDoIf($hash,'Netatmo','STATE') ne "ok"
     6          ::InternalDoIf($hash,'SIP','STATE') ne "initialized"
     7          ::InternalDoIf($hash,'PoolController','STATE') ne "OK"
     8          ::InternalDoIf($hash,'GardenaSystem','STATE') ne "connected to cloud"
   devices:
     0           TCM_ESP3_0
     1           CUL
     2           LGW_Gateway
     3           ZWDongle_1
     4           mqtt
     5           Netatmo
     6           SIP
     7           PoolController
     8           GardenaSystem
     all         TCM_ESP3_0 CUL LGW_Gateway ZWDongle_1 mqtt Netatmo SIP PoolController GardenaSystem
   do:
     0:
       0          set Monitoring_Dummy Gateway warning
       1          set Pushover msg title="Gateway" message="Warning: EnOcean"
     1:
       0          set Monitoring_Dummy Gateway warning
       1          set Pushover msg title="Gateway" message="Warning: CUL"
     2:
       0          set Monitoring_Dummy Gateway warning
       1          set Pushover msg title="Gateway" message="Warning: LGW"
     3:
       0          set Monitoring_Dummy Gateway warning
       1          set Pushover msg title="Gateway" message="Warning: ZWDongle"
     4:
       0          set Monitoring_Dummy Gateway warning
       1          set Pushover msg title="Gateway" message="Warning: MqTT"
     5:
       0          set Monitoring_Dummy Gateway warning
       1          set Pushover msg title="Gateway" message="Warning: Netatmo"
     6:
       0          set Monitoring_Dummy Gateway warning
       1          set Pushover msg title="Gateway" message="Warning: SIP"
     7:
       0          set Monitoring_Dummy Gateway warning
       1          set Pushover msg title="Gateway" message="Warning: PoolController"
     8:
       0          set Monitoring_Dummy Gateway warning
       1          set GardenaSystem getToken
       2          set Pushover msg title="Gateway" message="Warning: GardenaSystem"
     9:
       0          set Monitoring_Dummy Gateway OK
       1          set Pushover msg title="Gateway" message="ALLES OK"
   helper:
     event      connection: active
     globalinit 1
     last_timer 0
     sleepdevice GardenaSystem
     sleepsubtimer 0
     sleeptimer -1
     timerdev   mqtt
     timerevent connection: active
     triggerDev mqtt
     bm:
       DOIF_Get:
         cnt        2
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        26.12. 22:24:23
         max        1.9073486328125e-05
         tot        3.69548797607422e-05
         mAr:
           HASH(0x551c6b8)
           Gateway_Check_DOIF
           ?
       DOIF_Notify:
         cnt        670
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        26.12. 22:15:07
         max        0.0464432239532471
         tot        0.244683027267456
         mAr:
           HASH(0x551c6b8)
           HASH(0x349ea18)
       DOIF_Set:
         cnt        11
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        26.12. 22:21:29
         max        0.000237941741943359
         tot        0.00128865242004395
         mAr:
           HASH(0x551c6b8)
           Gateway_Check_DOIF
           ?
     timerevents:
       connection: active
     timereventsState:
       connection: active
     triggerEvents:
       connection: active
     triggerEventsState:
       connection: active
   internals:
     0           TCM_ESP3_0:STATE
     1           CUL:STATE
     2           LGW_Gateway:STATE
     3           ZWDongle_1:STATE
     4           mqtt:STATE
     5           Netatmo:STATE
     6           SIP:STATE
     7           PoolController:STATE
     8           GardenaSystem:STATE
     all         TCM_ESP3_0:STATE CUL:STATE LGW_Gateway:STATE ZWDongle_1:STATE mqtt:STATE Netatmo:STATE SIP:STATE PoolController:STATE GardenaSystem:STATE
   itimer:
   perlblock:
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:
   alias      Gateway DOIF
   cmdState   EnOcean|CUL|LGW|ZWDongle|mqtt|Netatmo|SIP|PoolController|GardenaSystem|Alles OK
   group      04_Monitoring
   icon       monitoring-system
   room       01_Automatisierung
   wait       600,0:600,0:600,0:600,0:600,0:600,0:600,0:600,0:900,0,0:600,0:


Das Problem ist nun, und ich verstehe es nicht, dass einige Gateways einen anderen Wert haben, aber leider reagiert das DOIF nicht darauf. Also z.B. das Device GardenaSystem wird auf "connected to cloud" getriggert, aber es hat nun den Wert "no token available" und nix passiert. Das selbe beim Device Netatmo. Triggert auf "ok", hat aber den Wert "connected"...

Komme irgendwie nicht auf den Fehler....

danke für die Sichthilfe.. ;) Lg c
Raspi3, EnOcean, Zwave, Homematic

Ellert

Das Problem bei Deinem DOIF ist, dass die Timer eines Zweiges abgebrochen werden, wenn ein anderer Zweig schaltet.
Zitat2018-12-26 22:18:41   e_GardenaSystem_STATE no token available
Der zu diesem Zeitpunkt startende Timer wird um
Zitat2018-12-26 22:28:39   e_PoolController_STATE OK
abgebrochen.
Lösung: Für jedes Gateway ein DOIF erstellen.

choetzu

Hallo Ellert, hmm, wieder was gelernt.. Danke. Ok, dann muss halt pro Gateway ein DOIF hin.. ;)

Raspi3, EnOcean, Zwave, Homematic