notify Problem: Event wird getriggert aber das notify reagiert nicht

Begonnen von Hackstall, 24 August 2021, 20:54:33

Vorheriges Thema - Nächstes Thema

Hackstall

Hallo.

ich habe folgendes kurioses Problem:

Ich erhalte während des Betriebs folgende Events:

2021-08-24 20:51:32.179 MQTT_DEVICE ESP32_CAM_IoT_KG_VK_Gas SENSOR: 5581534
2021-08-24 20:51:32.179 MQTT_DEVICE ESP32_CAM_IoT_KG_VK_Gas SENSOR_IDENTICAL_COUNT: 11


Wie Ihr seht kommen die Events nahezu gleichzeitig.
Der SENSOR triggert auch den notify (s.u.)
Der SENSOR_IDENTICAL_COUNT triggers aber nicht!!!!

Meine Notify´s sehen so aus:

define ESP32_CAM_IoT_KG_VK_Gas MQTT_DEVICE ESP32_CAM_IoT_GAS
setuuid ESP32_CAM_IoT_KG_VK_Gas 6123defd-f33f-7267-c832-30367468230f105b
attr ESP32_CAM_IoT_KG_VK_Gas IODev MosquittoServer
attr ESP32_CAM_IoT_KG_VK_Gas event-on-change-reading SENSOR_IDENTICAL_COUNT
attr ESP32_CAM_IoT_KG_VK_Gas event-on-update-reading SENSOR
attr ESP32_CAM_IoT_KG_VK_Gas room Keller,MQTT
attr ESP32_CAM_IoT_KG_VK_Gas subscribeReading_CONNECTION tele/ESP32_CAM_IoT_GAS/connection
attr ESP32_CAM_IoT_KG_VK_Gas subscribeReading_ERROR tele/ESP32_CAM_IoT_GAS/main/error
attr ESP32_CAM_IoT_KG_VK_Gas subscribeReading_FREEMEM tele/ESP32_CAM_IoT_GAS/freeMem
attr ESP32_CAM_IoT_KG_VK_Gas subscribeReading_JSON tele/ESP32_CAM_IoT_GAS/main/json
attr ESP32_CAM_IoT_KG_VK_Gas subscribeReading_RATE tele/ESP32_CAM_IoT_GAS/main/rate
attr ESP32_CAM_IoT_KG_VK_Gas subscribeReading_SENSOR tele/ESP32_CAM_IoT_GAS/main/value
attr ESP32_CAM_IoT_KG_VK_Gas subscribeReading_TIMESTAMP tele/ESP32_CAM_IoT_GAS/main/timestamp
attr ESP32_CAM_IoT_KG_VK_Gas subscribeReading_UPTIME tele/ESP32_CAM_IoT_GAS/uptime


define ntfy_ESP32_CAM_GAS_SENSOR notify ESP32_CAM_IoT_KG_VK_Gas:SENSOR:.* { \
my $myOldReading = ReadingsNum("ESP32_CAM_IoT_KG_VK_Gas","prevSENSOR",1);; \
my $myActReading = ReadingsNum("ESP32_CAM_IoT_KG_VK_Gas","SENSOR",1) ;; \
fhem ("setreading ESP32_CAM_IoT_KG_VK_Gas prevSENSOR $myActReading");; \
         if ( $myOldReading == $myActReading) \
    { \
  my $count = ReadingsNum("ESP32_CAM_IoT_KG_VK_Gas","SENSOR_IDENTICAL_COUNT",0) + 1;; \
        fhem ("setreading ESP32_CAM_IoT_KG_VK_Gas SENSOR_IDENTICAL_COUNT $count");; \
} \
     else \
    { \
        fhem ("setreading ESP32_CAM_IoT_KG_VK_Gas SENSOR_IDENTICAL_COUNT 0");; \
} \
}
   

define ntfy_ESP32_CAM_GAS notify ESP32_CAM_IoT_KG_VK_Gas:SENSOR_IDENTICAL_COUNT:.* {\
    my $myTime = time();;\
my $gas=ReadingsNum("ESP32_CAM_IoT_KG_VK_Gas","SENSOR",0) * 100.0;;\
my $gasm3Count = AttrNum("GasVerb_GC","GasCubicPerCounts", 1.0);;\
my $gasCount = $gas * $gasm3Count;;\
my $cmd="/?E3=".$gasCount;;\
    Log 1,"GAS m3 at $myTime with $gas m3, m3Count=$gasm3Count, gasCount=$gasCount, Instr=$cmd $EVTPART1";;\
if ($EVTPART1 == 10) \
   { \
    do something
   } \
}
attr ntfy_ESP32_CAM_GAS room System



Habt Ihr eine Idee?
Liegt das vielleicht an der Gleichzeitigkeit?

Danke Andreas

Otto123

Hallo Andreas,

es gibt keine Gleichzeitigkeit bei FHEM. Ich würde diese Kombination hinterfragen:

attr ESP32_CAM_IoT_KG_VK_Gas event-on-change-reading SENSOR_IDENTICAL_COUNT
attr ESP32_CAM_IoT_KG_VK_Gas event-on-update-reading SENSOR


Woran machst Du das nicht triggern fest?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

frank

ich denke, dass es am setreading im notify liegt.
ein sicherheitsfeature zur verhinderung von dead loops.
ich glaube, dass ein vorangestelltes sleep cmd das "problem" beseitigt.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz