FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: timtom2000 am 29 Juni 2021, 00:00:18

Titel: Userreading wird aus Notify nicht ausgelöst
Beitrag von: timtom2000 am 29 Juni 2021, 00:00:18
Hallo,

bei mir tritt folgendes Verhalten auf, was ich nicht verstehe (und bis jetzt auch unplausibel finde).

Ich habe ein Userreading u_RDG definiert, das auf ein Geräte-Reading d_RDG reagiert:
attr DEV userReadings u_RDG:d_RDG.* {...}
Userreading und Gerätereading sind als event-on-update-reading definiert.

Wenn ich manuell über
get DEV d_RDG
das Geräte-Reading auslese, wird wie erwartet das o.g. Userreading u_RDG getriggert und aktualisiert.

Ebenso wird das Userreading getriggert und aktualisiert, wenn das Geräte-Reading per "at" ausgelesen wird, z.B. stündlich:
define at_test at +*01:00:00 get DEV d_RDG

Wenn das Geräte-Reading allerdings per Notify ausgelesen wird, wird das Userreading u_RDG entgegen meiner Erwartung NICHT aktualisiert:
define notify_test notify DEV:u_RDG_2.* get DEV d_RDG

Es liegt übrigens nicht daran, dass das notify gar nicht ausgelöst wird. Im Logfile sehe ich das Auslösen des notifys und den Rückgabewert des get.

Kann mir jemand auf die Sprünge helfen, warum das "get" im Zusammenhang mit dem notify das Userreading nicht triggert? Oder wo liegt hier mein Denkfehler?
Titel: Antw:Userreading wird aus Notify nicht ausgelöst
Beitrag von: jhohmann am 29 Juni 2021, 10:58:36
Keine Ahnung, ob es daran liegt, das das Notify vom selben Device ausgelöst worden ist wie dein get.
Versuche mal, das ganze mit einem sleep zu entkoppeln.
define notify_test notify DEV:u_RDG_2.* sleep 0.2;get DEV d_RDG
Titel: Antw:Userreading wird aus Notify nicht ausgelöst
Beitrag von: Elektrolurch am 29 Juni 2021, 11:26:11
Wenn ein reading sich ändert, kann dadurch ja ein notify angestossen werden. Sollte das notify wiederum ein reading ändern, würde dies ja zu einer Endlosschleife führen, daher gibt es wohl diese Einschränkung.

Elekitrolurch
Titel: Antw:Userreading wird aus Notify nicht ausgelöst
Beitrag von: timtom2000 am 29 Juni 2021, 20:27:26
Danke für die Anregungen!

sleep habe ich probiert, bringt leider keine Änderung :(

Zur Idee mit der vermiedenen Endlosschleife...ist das irgendwo dokumentiert? Dann müsste ich gar nicht weiter nach möglichen Lösungen suchen.
Grundsätzlich könnte das zwar sein, fände ich persönlich aber unverständlich. Endlosschleifen bekommt man trotzdem hin, wenn man blöd programmiert. Das müsste man m.E. durch solche Einschränkungen nicht unbedingt verhindern, mein Usecase ist ja nicht so ungewöhnlich, denke ich?!

Oder denke ich zu quer und es gibt sinnvollere Umsetzungen für meine Idee?
Titel: Antw:Userreading wird aus Notify nicht ausgelöst
Beitrag von: amenomade am 29 Juni 2021, 21:03:08
Was ist u_RDG_2 ?

Zitat von: jhohmann am 29 Juni 2021, 10:58:36
define notify_test notify DEV:u_RDG_2.* sleep 0.2;get DEV d_RDG
Sowas in der Kommandozeile führt nicht zu einem notify mit einem sleep + ein Kommando, sondern definiert ein notify mit nur sleep.

Wäre es möglich ein "list DEV" und ein "list notify_test" zu sehen? Ein Blick im Eventmonitor könnte auch helfen.
Titel: Antw:Userreading wird aus Notify nicht ausgelöst
Beitrag von: timtom2000 am 29 Juni 2021, 22:20:30
Das u_RDG_2 ist ein beliebiges anderes Userreading des Device, das das notify auslöst.
Ich hatte das sleep auch mit "sleep 0.2;;" versehen, dann tauchte auch das folgende get mit auf.

Aber was soll ich sagen...gerade funktioniert es wie erwartet. Und das, obwohl ich dasselbe mache wie seit 2-3 Tagen... ::) ich weiß, kann nicht sein, es ist eine Maschine...aber ich habe grad keine Erklärung. In jedem Fall erstmal sorry für den wsl. unnötigen Aufwand. Wobei, jetzt funktioniert es ja, auch wenn ich nicht weiß warum.
Titel: Antw:Userreading wird aus Notify nicht ausgelöst
Beitrag von: timtom2000 am 03 Juli 2021, 15:27:30
Update...ich weiß nun warum es plötzlich ging und ein anderes Mal nicht.

Ist aber ein EXTREM merkwürdiges Verhalten, aber es ist reproduzierbar. Kann eigentlich nur ein Bug sein.

1) Definiere ich das notify wie folgt, funktioniert es:
define Compr notify Mythz:sGlobal:.* get Mythz sHeatDHWDay

2) Lasse ich den Namen des notifys mit "N" anfangen, funktioniert es nicht:
define NCompr notify Mythz:sGlobal:.* get Mythz sHeatDHWDay

Im ersten Fall wird
- das notify ausgelöst
- das reading sHeatDHWDay gelesen
- der get-Befehl im Event-Monitor angezeigt
- der Wert des readings sHeatDHWDay im Logfile protokolliert

Im zweiten Fall wird
- das notify ausgelöst
- das reading sHeatDHWDay gelesen
- der get-Befehl im Event-Monitor angezeigt
- der Wert des readings sHeatDHWDay im Logfile nicht protokolliert

Hört sich unglaubhaft an, aber es ist so...

Ich habe meine notifys alle umbenannt und kann damit leben. Aber gewollt ist sicher was anderes?!

Anmerkung: Hier wurde das auch mal thematisiert (aber nicht auf die Ursache zurückgeführt):
https://forum.fhem.de/index.php/topic,74347.0.html
Titel: Antw:Userreading wird aus Notify nicht ausgelöst
Beitrag von: amenomade am 03 Juli 2021, 17:45:17
ZitatIm ersten Fall wird
- das notify ausgelöst
- das reading sHeatDHWDay gelesen
- der Wert des readings sHeatDHWDay im Logfile protokolliert

Im zweiten Fall wird
- das notify ausgelöst
- das reading sHeatDHWDay gelesen
- der Wert des readings sHeatDHWDay im Logfile nicht protokolliert

Wenn in beiden Fällen das reading gelesen wird, funktioniert doch das notify und das get. Dann ist die Ursache eher in Mythz zu suchen.
Titel: Antw:Userreading wird aus Notify nicht ausgelöst
Beitrag von: timtom2000 am 03 Juli 2021, 22:08:42
Wieso Ursache in Mythz? Das Logfile hat mit dem Device doch gar nichts zutun?!

So ist es definiert:
define FileLog_HeatDHWDay FileLog /var/media/ftp/usb_data/log_signals/HeatDHWDay-%Y-KW%W.log Mythz:sHeatDHWDay.*
Titel: Antw:Userreading wird aus Notify nicht ausgelöst
Beitrag von: amenomade am 03 Juli 2021, 23:47:31
Zitat von: timtom2000 am 03 Juli 2021, 22:08:42
Wieso Ursache in Mythz? Das Logfile hat mit dem Device doch gar nichts zutun?!

Natürlich doch. Das Device generiert (oder nicht) die Events, die ggf in der Logfile landen.
Was siehst Du im EventMonitor?
Titel: Antw:Userreading wird aus Notify nicht ausgelöst
Beitrag von: timtom2000 am 04 Juli 2021, 14:08:18
Im Event-Monitor sieht in beiden Fällen alles identisch aus, da taucht das get immer zuverlässig auf (habe ich oben im Text grad mal ergänzt). Genau deswegen denke ich, dass es mit dem Device nichts zutun hat.
Titel: Antw:Userreading wird aus Notify nicht ausgelöst
Beitrag von: amenomade am 04 Juli 2021, 17:48:33
Kommt ein Event "Mythz sHeatDHWDay" in beiden Fällen oder nicht? Zeig bitte wie es aussieht wenn es geht und wenn es nicht geht
Titel: Antw:Userreading wird aus Notify nicht ausgelöst
Beitrag von: timtom2000 am 04 Juli 2021, 18:11:06
Gerne. Unten ein durchgehender Auszug aus Event-Monitor sowie Auszug aus Logfile.

Ich habe einmal ein notify "NCompr_Not_Ok" (17:56:31) und einmal ein notify "Compr_Ok" definiert (17:57:58).
Das triggernde sGlobal kommt zu 17:57:18 bzw. 17:59:15, sHeatDHWDay wird zeitgleich ausgelesen (sGlobal triggert noch weitere Readings).
Im Logfile taucht aber nur der Eintrag von 17:59:15 auf.

2021-07-04 17:56:31 notify NCompr_Not_Ok active
2021-07-04 17:56:31 Global global DEFINED NCompr_Not_Ok
2021-07-04 17:57:18 THZ Mythz sGlobal: outsideTemp: 20.3 flowTemp: 30.4 returnTemp: 31 hotGasTemp: 31.7 dhwTemp: 47.3 flowTempHC2: -60 evaporatorTemp: 31.2 condenserTemp: 27.4 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 0 solarPump: 0 compressor: 0 boosterStage3: 0 boosterStage2: 0 boosterStage1: 0 highPressureSensor: 0 lowPressureSensor: 0 evaporatorIceMonitor: 0 signalAnode: 0 evuRelease: 1 ovenFireplace: 1 STB: 0 outputVentilatorPower: 0 inputVentilatorPower: 0 mainVentilatorPower: 0 outputVentilatorSpeed: 0 inputVentilatorSpeed: 0 mainVentilatorSpeed: 0 outside_tempFiltered: 21.7 relHumidity: 0 dewPoint: 0 P_Nd: 10.76 P_Hd: 11.01 actualPower_Qc: 0.000 actualPower_Pel: 0.000 collectorTemp: -60 insideTemp: 25.6 windowOpen: 0 quickAirVent: 0 flowRate: 0 p_HCw: 1.66 humidityAirOut: 41.27
2021-07-04 17:57:18 THZ Mythz uOutsideTemp: 20.3
2021-07-04 17:57:18 THZ Mythz uFlowTemp: 30.4
2021-07-04 17:57:18 THZ Mythz uDHWTemp: 47.3
2021-07-04 17:57:18 THZ Mythz uAussenTFilt: 21.7
2021-07-04 17:57:18 THZ Mythz uHumidityAirOut: 41.27
2021-07-04 17:57:18 THZ Mythz uSpreizung: -0.600000000000001
2021-07-04 17:57:18 THZ Mythz sHeatDHWDay: 7458 Wh
2021-07-04 17:57:44 Global global DELETED NCompr_Not_Ok
2021-07-04 17:57:58 notify Compr_Ok active
2021-07-04 17:57:58 Global global DEFINED Compr_Ok
2021-07-04 17:58:09 THZ Mythz sHC1: outsideTemp: 20.3 x08: 0 returnTemp: 31 integralHeat: 0 flowTemp: 30.4 heatSetTemp: 8 heatTemp: 30.8 seasonMode: summer integralSwitch: 200 hcOpMode: setback roomSetTemp: 15 x60: 0 x64: 0 insideTempRC: 21.5 x72: 0 x76: 0 onHysteresisNo: 0 offHysteresisNo: 0 hcBoosterStage: 0
2021-07-04 17:58:09 THZ Mythz uInsideTemp: 21.5
2021-07-04 17:59:15 THZ Mythz sGlobal: outsideTemp: 20.3 flowTemp: 30.5 returnTemp: 31.1 hotGasTemp: 31.6 dhwTemp: 47.3 flowTempHC2: -60 evaporatorTemp: 31.2 condenserTemp: 27.4 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 0 solarPump: 0 compressor: 0 boosterStage3: 0 boosterStage2: 0 boosterStage1: 0 highPressureSensor: 0 lowPressureSensor: 0 evaporatorIceMonitor: 0 signalAnode: 0 evuRelease: 1 ovenFireplace: 1 STB: 0 outputVentilatorPower: 0 inputVentilatorPower: 0 mainVentilatorPower: 0 outputVentilatorSpeed: 0 inputVentilatorSpeed: 0 mainVentilatorSpeed: 0 outside_tempFiltered: 21.7 relHumidity: 0 dewPoint: 0 P_Nd: 10.81 P_Hd: 11.01 actualPower_Qc: 0.000 actualPower_Pel: 0.000 collectorTemp: -60 insideTemp: 25.5 windowOpen: 0 quickAirVent: 0 flowRate: 0 p_HCw: 1.66 humidityAirOut: 40.95
2021-07-04 17:59:15 THZ Mythz uFlowTemp: 30.5
2021-07-04 17:59:15 THZ Mythz uReturnTemp: 31.1
2021-07-04 17:59:15 THZ Mythz uHumidityAirOut: 40.95
2021-07-04 17:59:15 THZ Mythz sHeatDHWDay: 7458 Wh
2021-07-04 17:59:29 THZ Mythz sDHW: dhwTemp: 47.3 outsideTemp: 20.2 dhwSetTemp: 41 compBlockTime: 0 out: 0000 heatBlockTime: 1123 dhwBoosterStage: 0 pasteurisationMode: 0 dhwOpMode: normal x36: 3C4C
2021-07-04 17:59:31 at at_Handbetrieb Next: 18:04:30
2021-07-04 17:59:39 Global global DELETED Compr_Ok


2021-07-04_09:30:14 sHeatDHWDay: 3776 Wh
2021-07-04_14:18:11 sHeatDHWDay: 3777 Wh
2021-07-04_14:53:14 sHeatDHWDay: 7458 Wh
2021-07-04_17:59:14 sHeatDHWDay: 7458 Wh
Titel: Antw:Userreading wird aus Notify nicht ausgelöst
Beitrag von: amenomade am 04 Juli 2021, 19:00:31
Hmm. In der Tat merkwürdig.
Hättest Du bitte ein komplettes "list" vom FileLog Device?
Titel: Antw:Userreading wird aus Notify nicht ausgelöst
Beitrag von: timtom2000 am 04 Juli 2021, 19:12:31
Ja, wenn ich das nicht selber sehen würde, würde ich es auch nicht glauben...unten das list.

Hast du dir mal den Spaß gemacht und solche zwei notifys + logfile definiert? Der Trigger kann irgendwas sein, ebenso das per get ausgelesene reading. Wäre mal interessant, ob du das nachstellen kannst...

Internals:
   DEF        /var/media/ftp/usb_data/log_signals/HeatDHWDay-%Y-KW%W.log Mythz:sHeatDHWDay.*
   FD         34
   FUUID      60d4f670-f33f-a459-4002-3c2df15cdfcfa936
   NAME       FileLog_HeatDHWDay
   NOTIFYDEV  Mythz
   NR         136
   NTFY_ORDER 50-FileLog_HeatDHWDay
   REGEXP     Mythz:sHeatDHWDay.*
   STATE      active
   TYPE       FileLog
   currentlogfile /var/media/ftp/usb_data/log_signals/HeatDHWDay-2021-KW26.log
   logfile    /var/media/ftp/usb_data/log_signals/HeatDHWDay-%Y-KW%W.log
   READINGS:
     2021-07-04 17:59:14   linesInTheFile  79
Attributes:
   archivedir /var/media/ftp/usb_data/log_signals/archive/
   nrarchive  2
   outputFormat "$TIMESTAMP $EVENT\n"
Titel: Antw:Userreading wird aus Notify nicht ausgelöst
Beitrag von: amenomade am 04 Juli 2021, 20:10:20
Ich mach mal später in der Nacht einen Test mit dummies und melde mich.
Titel: Antw:Userreading wird aus Notify nicht ausgelöst
Beitrag von: amenomade am 04 Juli 2021, 21:38:54
Also... ich kann das mit dummies zumindest nicht reproduzieren:

define Mythz dummy

define logMythz FileLog %L/mythz.log Mythz:sHeatDHWDay.*

define NCompr_Not_Ok notify Mythz:sGlobal.* setreading Mythz sHeatDHWDay 7458 Wh


Jedes mal wenn ich ein
setreading Mythz sGlobal test2mache, wird sHeatDHWDay mutig in der FileLog protokolliert.

Hast Du schon in der fhem-Log mit verbose 5 geguckt?
Titel: Antw:Userreading wird aus Notify nicht ausgelöst
Beitrag von: timtom2000 am 04 Juli 2021, 22:59:07
Danke fürs Testen! Dein Beispiel funktioniert bei mir aber auch zuverlässig, sowas blödes...
Ich mache morgen mal ein verbose 5. Die Ausgaben verstehe ich aber nicht wirklich, so weit reicht es dann bei mir leider nicht...
Titel: Antw:Userreading wird aus Notify nicht ausgelöst
Beitrag von: timtom2000 am 04 Juli 2021, 23:15:27
Kommando zurück, hab beim Übernehmen einen Fehler gemacht, weil ich die Variablen ändern musste, damit mein "echtes Gerät" nicht durcheinander kommt.
Auch dein Beispiel funktioniert nicht.

Ich habe es wie folgt abstrahiert
defmod DummyDev dummy

defmod FileLogDummy FileLog /var/media/ftp/usb_prog/dummylog.log DummyDev:DummyReading.*

defmod NCompr_Not_Ok notify DummyDev:DummyTrigger.* setreading DummyDev DummyReading 7458 Wh


Und so getriggert
setreading DummyDev DummyTrigger test2

Hier das Logfile mit verbose 5
2021.07.04 23:08:41 5: Starting notify loop for global, 1 event(s), first is ATTR global verbose 5
2021.07.04 23:08:41 5: End notify loop for global
2021.07.04 23:08:41 4: WEB: /fhem?cmd=attr%20global%20verbose%205&XHR=1&fwcsrf=csrf_674554963456321&fw_id=511 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/ Cache-Control: no-cache, no-store, must-revalidate

2021.07.04 23:08:41 5: POST /fhem?cmd=defmod%20DummyDev%20dummy&XHR=1&fwcsrf=csrf_674554963456321&fw_id=511 HTTP/1.1
Host: 192.168.188.20:8083
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0
Accept: text/plain, */*; q=0.01
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
cache-control: no-cache
X-Requested-With: XMLHttpRequest
Origin: http://192.168.188.20:8083
DNT: 1
Connection: keep-alive
Referer: http://192.168.188.20:8083/fhem/dashboard/MyDashboard
Content-Length: 0
2021.07.04 23:08:42 4: WEB_192.168.188.54_65475 POST /fhem?cmd=defmod%20DummyDev%20dummy&XHR=1&fwcsrf=csrf_674554963456321&fw_id=511; BUFLEN:0
2021.07.04 23:08:42 5: Cmd: >defmod DummyDev dummy<
2021.07.04 23:08:42 5: Starting notify loop for global, 1 event(s), first is MODIFIED DummyDev
2021.07.04 23:08:42 5: End notify loop for global
2021.07.04 23:08:42 4: WEB: /fhem?cmd=defmod%20DummyDev%20dummy&XHR=1&fwcsrf=csrf_674554963456321&fw_id=511 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/ Cache-Control: no-cache, no-store, must-revalidate

2021.07.04 23:08:42 5: POST /fhem?cmd=defmod%20FileLogDummy%20FileLog%20%2Fvar%2Fmedia%2Fftp%2Fusb_prog%2Fdummylog.log%20DummyDev%3ADummyReading.*&XHR=1&fwcsrf=csrf_674554963456321&fw_id=511 HTTP/1.1
Host: 192.168.188.20:8083
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0
Accept: text/plain, */*; q=0.01
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
cache-control: no-cache
X-Requested-With: XMLHttpRequest
Origin: http://192.168.188.20:8083
DNT: 1
Connection: keep-alive
Referer: http://192.168.188.20:8083/fhem/dashboard/MyDashboard
Content-Length: 0
2021.07.04 23:08:42 4: WEB_192.168.188.54_65475 POST /fhem?cmd=defmod%20FileLogDummy%20FileLog%20%2Fvar%2Fmedia%2Fftp%2Fusb_prog%2Fdummylog.log%20DummyDev%3ADummyReading.*&XHR=1&fwcsrf=csrf_674554963456321&fw_id=511; BUFLEN:0
2021.07.04 23:08:42 5: Cmd: >defmod FileLogDummy FileLog /var/media/ftp/usb_prog/dummylog.log DummyDev:DummyReading.*<
2021.07.04 23:08:42 5: Starting notify loop for global, 1 event(s), first is MODIFIED FileLogDummy
2021.07.04 23:08:42 5: createNotifyHash
2021.07.04 23:08:42 5: End notify loop for global
2021.07.04 23:08:42 4: WEB: /fhem?cmd=defmod%20FileLogDummy%20FileLog%20%2Fvar%2Fmedia%2Fftp%2Fusb_prog%2Fdummylog.log%20DummyDev%3ADummyReading.*&XHR=1&fwcsrf=csrf_674554963456321&fw_id=511 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/ Cache-Control: no-cache, no-store, must-revalidate

2021.07.04 23:08:42 5: POST /fhem?cmd=defmod%20NCompr_Not_Ok%20notify%20DummyDev%3ADummyTrigger.*%20setreading%20DummyDev%20DummyReading%207458%20Wh&XHR=1&fwcsrf=csrf_674554963456321&fw_id=511 HTTP/1.1
Host: 192.168.188.20:8083
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0
Accept: text/plain, */*; q=0.01
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
cache-control: no-cache
X-Requested-With: XMLHttpRequest
Origin: http://192.168.188.20:8083
DNT: 1
Connection: keep-alive
Referer: http://192.168.188.20:8083/fhem/dashboard/MyDashboard
Content-Length: 0
2021.07.04 23:08:42 4: WEB_192.168.188.54_65475 POST /fhem?cmd=defmod%20NCompr_Not_Ok%20notify%20DummyDev%3ADummyTrigger.*%20setreading%20DummyDev%20DummyReading%207458%20Wh&XHR=1&fwcsrf=csrf_674554963456321&fw_id=511; BUFLEN:0
2021.07.04 23:08:42 5: Cmd: >defmod NCompr_Not_Ok notify DummyDev:DummyTrigger.* setreading DummyDev DummyReading 7458 Wh<
2021.07.04 23:08:42 5: Starting notify loop for NCompr_Not_Ok, 1 event(s), first is active
2021.07.04 23:08:42 5: createNotifyHash
2021.07.04 23:08:43 5: End notify loop for NCompr_Not_Ok
2021.07.04 23:08:43 5: Starting notify loop for global, 1 event(s), first is MODIFIED NCompr_Not_Ok
2021.07.04 23:08:43 5: End notify loop for global
2021.07.04 23:08:43 4: WEB: /fhem?cmd=defmod%20NCompr_Not_Ok%20notify%20DummyDev%3ADummyTrigger.*%20setreading%20DummyDev%20DummyReading%207458%20Wh&XHR=1&fwcsrf=csrf_674554963456321&fw_id=511 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/ Cache-Control: no-cache, no-store, must-revalidate

2021.07.04 23:08:47 5: POST /fhem?cmd=setreading%20DummyDev%20DummyTrigger%20test2&XHR=1&fwcsrf=csrf_674554963456321&fw_id=540 HTTP/1.1
Host: 192.168.188.20:8083
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0
Accept: text/plain, */*; q=0.01
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
cache-control: no-cache
X-Requested-With: XMLHttpRequest
Origin: http://192.168.188.20:8083
DNT: 1
Connection: keep-alive
Referer: http://192.168.188.20:8083/fhem/dashboard/MyDashboard
Content-Length: 0
2021.07.04 23:08:47 4: WEB_192.168.188.54_65475 POST /fhem?cmd=setreading%20DummyDev%20DummyTrigger%20test2&XHR=1&fwcsrf=csrf_674554963456321&fw_id=540; BUFLEN:0
2021.07.04 23:08:47 5: Cmd: >setreading DummyDev DummyTrigger test2<
2021.07.04 23:08:47 5: Starting notify loop for DummyDev, 1 event(s), first is DummyTrigger: test2
2021.07.04 23:08:47 5: createNotifyHash
2021.07.04 23:08:47 5: Triggering NCompr_Not_Ok
2021.07.04 23:08:47 4: NCompr_Not_Ok exec setreading DummyDev DummyReading 7458 Wh
2021.07.04 23:08:47 5: Cmd: >setreading DummyDev DummyReading 7458 Wh<
2021.07.04 23:08:47 5: End notify loop for DummyDev
2021.07.04 23:08:47 4: WEB: /fhem?cmd=setreading%20DummyDev%20DummyTrigger%20test2&XHR=1&fwcsrf=csrf_674554963456321&fw_id=540 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/ Cache-Control: no-cache, no-store, must-revalidate

2021.07.04 23:08:47 5: THZ_Get: Try to get 'sFan'
2021.07.04 23:08:47 5: THZ_Get_Comunication: Check if port is open. State = '(opened)'
2021.07.04 23:08:47 5: Mythz sending 02
2021.07.04 23:08:47 5: SW: 02
2021.07.04 23:08:47 5: Mythz start Function THZ_ReadAnswer
2021.07.04 23:08:47 5: THZ_ReadAnswer: uc unpack: '10'
2021.07.04 23:08:47 5: Mythz sending 0100E9E81003
2021.07.04 23:08:47 5: SW: 0100E9E81003
2021.07.04 23:08:47 5: Mythz start Function THZ_ReadAnswer
2021.07.04 23:08:47 5: THZ_ReadAnswer: uc unpack: '1002'
2021.07.04 23:08:47 5: Mythz sending 10
2021.07.04 23:08:47 5: SW: 10
2021.07.04 23:08:48 5: Mythz start Function THZ_ReadAnswer
2021.07.04 23:08:48 5: THZ_ReadAnswer: uc unpack: '01006BE80000000000000000000000000000000000000000000000000000002E32006E006E2323001003'
2021.07.04 23:08:48 5: Mythz sending 10
2021.07.04 23:08:48 5: SW: 10
2021.07.04 23:08:48 5: Parse message: 6BE80000000000000000000000000000000000000000000000000000002E32006E006E232300
2021.07.04 23:08:48 5: Message length: 76
2021.07.04 23:09:01 4: Connection closed for WEB_192.168.188.54_65447: EOF
2021.07.04 23:09:01 5: POST /fhem HTTP/1.1
Host: 192.168.188.20:8083
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 72
Origin: http://192.168.188.20:8083
DNT: 1
Connection: keep-alive
Referer: http://192.168.188.20:8083/fhem?room=all
Upgrade-Insecure-Requests: 1
2021.07.04 23:09:01 4: WEB_192.168.188.54_65475 POST /fhem&fw_id=557&room=all&fwcsrf=csrf_674554963456321&cmd=attr+global+verbose+2; BUFLEN:0
2021.07.04 23:09:01 5: Cmd: >attr global verbose 2<
Titel: Antw:Userreading wird aus Notify nicht ausgelöst
Beitrag von: amenomade am 05 Juli 2021, 01:17:46
Und wenn Du das notify umbenennst, funktioniert es wieder?

Kannst Du auch das Ergebnis von "version" posten?
Titel: Antw:Userreading wird aus Notify nicht ausgelöst
Beitrag von: timtom2000 am 05 Juli 2021, 21:10:32
Ja, wenn ich es umbenenne funktioniert es wieder, verrückt.

Gerade nochmal klinisch rein hintereinander getestet mit genau diesem Ablauf:
attr global verbose 5
defmod DummyDev dummy
defmod FileLogDummy FileLog /var/media/ftp/usb_prog/dummylog.log DummyDev:DummyReading.*
defmod NCompr_Not_Ok notify DummyDev:DummyTrigger.* setreading DummyDev DummyReading 7458 Wh
setreading DummyDev DummyTrigger test2
attr global verbose 2


Einmal natürlich mit "Compr_Ok", aber ansonsten völlig identisch. Dazwischen die vormaligen defines mit delete gelöscht, genau so wie das Logfile. Einmal wird geloggt, einmal nicht.
Im Anhang die beiden Logfiles dazu (mit verbose 5) und auch mal das Ergebnis von version. Ich bin aber eigentlich einigermaßen up-to-date, denke ich.
Titel: Antw:Userreading wird aus Notify nicht ausgelöst
Beitrag von: rudolfkoenig am 06 Juli 2021, 10:04:54
ZitatEinmal wird geloggt, einmal nicht.
Setreading erzeugt ein Event, Notify ein Zweites, fuer das gleiche Geraet, in der gleichen "Event-Abarbeitungs-Kette".
Events fuer das gleiche Geraet aus der "eigenen" Event-Kette zu erzeugen ist was Spezielles, und wird davon abgeraten, da FHEM die Moeglichkeit der Rekursion in einer Event-Kette unterbindet, und man deswegen auf Feinheiten (s.u.) achten muss.

Die Kette wird in der NTFY_ORDER Reihenfolge abgearbeitet, was (unter anderem) aus dem Namen gebildet wird:
fhem> l .* NTFY_ORDER
FileLogDummy             50-FileLogDummy
NCompr_Not_Ok            50-NCompr_Not_Ok

Wenn FileLogs NTFY_ORDER vor der Notifys kommt, dann gibt es noch kein Event zum Loggen, sonst schon.

Die Loesung ist (wie schon vorgeschlagen), im notify das Event in einer neuen Event-Kette, mit sleep zu starten:
defmod NCompr_Not_Ok notify DummyDev:DummyTrigger.* sleep 0.001;; setreading DummyDev DummyReading 7458 Wh


Nachtrag: diese Besonderheit ist auch der eigentliche Grund, warum UserReadings eingefuehrt wurden: diese werden vor der Abarbeitung der Event-Kette berechnet/gesetzt.
Titel: Antw:Userreading wird aus Notify nicht ausgelöst
Beitrag von: amenomade am 06 Juli 2021, 12:10:45
Hehe  ;) Das hat sich gelohnt, dass ich dich auf dem Thema gebracht habe ! Vielen Dank Rudi für die ausführliche Erklärung. Das ist wirklich tricky. Die Vermutung von jhohmann war dann schon richtig. Da habe ich selbst auch viel gelernt.
Titel: Antw:Userreading wird aus Notify nicht ausgelöst
Beitrag von: timtom2000 am 06 Juli 2021, 20:51:39
Ach, die Reihenfolge der Abarbeitung hängt vom Namen ab...da muss Otto-Normal-User mal drauf kommen ;) im Falle dieses FileLog's hätte also jedes notify von A-Fi wie erwartet geklappt, von Fj-Z nicht (oder man lässt das FileLog mit z anfangen, dann ist man auf der relativ sicheren Seite; genau das werde ich jetzt mal tun, sicher ist sicher). Daran hätte ich nie gedacht, eher dass im Sinne fifo, ganz simpel, die Reihenfolge der Abarbeitung von der Reihenfolge des Auftretens abhängt. Aber das geht wsl. aus anderen Gründen nicht, da stecke ich zugegebenermaßen viel zu wenig drin!

Vielen Dank nochmal für die Erklärung! Ich habe ja bis zum Schluss befürchtet, dass ich selber irgendeinen Mist gebaut habe...zum Glück nicht, wenn man mal davon absieht, dass ich ein Konstrukt gewählt habe, wovon abgeraten wird, was aber total praktisch ist in dem Fall (und den Code vereinfacht).

P.S. Besonderen Dank an amenomade für dein Durchhaltevermögen, super!