FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: ocin4 am 05 November 2022, 14:45:08

Titel: [Gelöst] Notify soll URL aufrufen - Logfile zugemüllt
Beitrag von: ocin4 am 05 November 2022, 14:45:08
Hallo Experten,

ich hab folgendes notify:
Internals:
   CFGFN     
   DEF        MQTT2_inFactory_TH_229:temperature_C:.* {system("curl -s -o /dev/null http://192.168.178.50/ext_t?temp=$EVTPART1")}
   FUUID      6366552d-f33f-f0f2-f894-ee468600d771fd8a
   NAME       nKuecheTemp
   NOTIFYDEV  MQTT2_inFactory_TH_229
   NR         524
   NTFY_ORDER 50-nKuecheTemp
   REGEXP     MQTT2_inFactory_TH_229:temperature_C:.*
   STATE      2022-11-05 14:14:47
   TRIGGERTIME 1667654087.441
   TYPE       notify
   eventCount 4
   READINGS:
     2022-11-05 14:10:10   state           active
     2022-11-05 14:14:47   triggeredByDev  MQTT2_inFactory_TH_229
     2022-11-05 14:14:47   triggeredByEvent temperature_C: 22.3
Attributes:

Dieses notify informiert das Heikörperthermostat über die Raumtemperatur.
Es funktioniert auch alles soweit.
Nur der Temperatur-Sensor ist was billiges. Er sendet alle 70 Sekunden die Temperatur mehrfach und jetzt wird mir mein Logfile zugemüllt:
2022.11.05 14:36:42 3: nKuecheTemp return value: -1
2022.11.05 14:36:42 3: nKuecheTemp return value: -1
2022.11.05 14:36:42 3: nKuecheTemp return value: -1
2022.11.05 14:36:42 3: nKuecheTemp return value: -1
2022.11.05 14:36:42 3: nKuecheTemp return value: -1
2022.11.05 14:36:42 3: nKuecheTemp return value: -1
2022.11.05 14:36:42 3: nKuecheTemp return value: -1
2022.11.05 14:36:42 3: nKuecheTemp return value: -1
2022.11.05 14:36:42 3: nKuecheTemp return value: -1
2022.11.05 14:36:42 3: nKuecheTemp return value: -1
2022.11.05 14:36:43 3: nKuecheTemp return value: -1
2022.11.05 14:36:43 3: nKuecheTemp return value: -1
2022.11.05 14:36:43 3: nKuecheTemp return value: -1
2022.11.05 14:36:43 3: nKuecheTemp return value: -1
2022.11.05 14:36:43 3: nKuecheTemp return value: -1
2022.11.05 14:36:43 3: nKuecheTemp return value: -1
2022.11.05 14:36:43 3: nKuecheTemp return value: -1
2022.11.05 14:36:43 3: nKuecheTemp return value: -1
2022.11.05 14:36:43 3: nKuecheTemp return value: -1
2022.11.05 14:36:43 3: nKuecheTemp return value: -1
2022.11.05 14:36:43 3: nKuecheTemp return value: -1
2022.11.05 14:36:43 3: nKuecheTemp return value: -1
2022.11.05 14:36:43 3: nKuecheTemp return value: -1
2022.11.05 14:36:44 3: nKuecheTemp return value: -1
2022.11.05 14:36:44 3: nKuecheTemp return value: -1
2022.11.05 14:36:44 3: nKuecheTemp return value: -1
2022.11.05 14:36:44 3: nKuecheTemp return value: -1
2022.11.05 14:36:44 3: nKuecheTemp return value: -1
2022.11.05 14:36:44 3: nKuecheTemp return value: -1
2022.11.05 14:36:44 3: nKuecheTemp return value: -1
2022.11.05 14:36:44 3: nKuecheTemp return value: -1
2022.11.05 14:36:44 3: nKuecheTemp return value: -1
2022.11.05 14:36:44 3: nKuecheTemp return value: -1
2022.11.05 14:36:44 3: nKuecheTemp return value: -1
2022.11.05 14:36:44 3: nKuecheTemp return value: -1
2022.11.05 14:36:44 3: nKuecheTemp return value: -1
2022.11.05 14:36:45 3: nKuecheTemp return value: -1
2022.11.05 14:36:45 3: nKuecheTemp return value: -1
2022.11.05 14:36:45 3: nKuecheTemp return value: -1
2022.11.05 14:36:45 3: nKuecheTemp return value: -1
2022.11.05 14:36:45 3: nKuecheTemp return value: -1
2022.11.05 14:36:45 3: nKuecheTemp return value: -1
2022.11.05 14:36:45 3: nKuecheTemp return value: -1
2022.11.05 14:36:45 3: nKuecheTemp return value: -1
2022.11.05 14:36:45 3: nKuecheTemp return value: -1
2022.11.05 14:36:45 3: nKuecheTemp return value: -1
2022.11.05 14:36:45 3: nKuecheTemp return value: -1
2022.11.05 14:36:45 3: nKuecheTemp return value: -1
2022.11.05 14:37:55 3: nKuecheTemp return value: -1
2022.11.05 14:37:57 3: nKuecheTemp return value: -1
2022.11.05 14:37:57 3: nKuecheTemp return value: -1
2022.11.05 14:37:57 3: nKuecheTemp return value: -1
2022.11.05 14:37:57 3: nKuecheTemp return value: -1
2022.11.05 14:37:57 3: nKuecheTemp return value: -1
2022.11.05 14:37:57 3: nKuecheTemp return value: -1
2022.11.05 14:37:58 3: nKuecheTemp return value: -1
2022.11.05 14:37:58 3: nKuecheTemp return value: -1
2022.11.05 14:37:58 3: nKuecheTemp return value: -1
2022.11.05 14:37:58 3: nKuecheTemp return value: -1
2022.11.05 14:37:58 3: nKuecheTemp return value: -1
2022.11.05 14:37:58 3: nKuecheTemp return value: -1
2022.11.05 14:37:58 3: nKuecheTemp return value: -1
2022.11.05 14:37:59 3: nKuecheTemp return value: -1
2022.11.05 14:37:59 3: nKuecheTemp return value: -1
2022.11.05 14:37:59 3: nKuecheTemp return value: -1
2022.11.05 14:37:59 3: nKuecheTemp return value: -1
2022.11.05 14:38:00 3: nKuecheTemp return value: -1
2022.11.05 14:38:00 3: nKuecheTemp return value: -1
2022.11.05 14:38:00 3: nKuecheTemp return value: -1
2022.11.05 14:38:00 3: nKuecheTemp return value: -1
2022.11.05 14:38:02 3: nKuecheTemp return value: -1
2022.11.05 14:38:02 3: nKuecheTemp return value: -1
2022.11.05 14:38:02 3: nKuecheTemp return value: -1
2022.11.05 14:38:02 3: nKuecheTemp return value: -1
2022.11.05 14:38:02 3: nKuecheTemp return value: -1
2022.11.05 14:38:02 3: nKuecheTemp return value: -1
2022.11.05 14:38:02 3: nKuecheTemp return value: -1
2022.11.05 14:38:03 3: nKuecheTemp return value: -1
2022.11.05 14:38:03 3: nKuecheTemp return value: -1
2022.11.05 14:38:03 3: nKuecheTemp return value: -1
2022.11.05 14:38:03 3: nKuecheTemp return value: -1
2022.11.05 14:38:03 3: nKuecheTemp return value: -1
2022.11.05 14:38:03 3: nKuecheTemp return value: -1
2022.11.05 14:38:03 3: nKuecheTemp return value: -1
2022.11.05 14:38:03 3: nKuecheTemp return value: -1
2022.11.05 14:38:03 3: nKuecheTemp return value: -1
2022.11.05 14:38:03 3: nKuecheTemp return value: -1
2022.11.05 14:38:03 3: nKuecheTemp return value: -1
2022.11.05 14:38:03 3: nKuecheTemp return value: -1
2022.11.05 14:38:04 3: nKuecheTemp return value: -1
2022.11.05 14:38:04 3: nKuecheTemp return value: -1
2022.11.05 14:38:04 3: nKuecheTemp return value: -1
2022.11.05 14:38:04 3: nKuecheTemp return value: -1
2022.11.05 14:38:04 3: nKuecheTemp return value: -1
2022.11.05 14:38:04 3: nKuecheTemp return value: -1
2022.11.05 14:38:04 3: nKuecheTemp return value: -1
2022.11.05 14:39:07 3: nKuecheTemp return value: -1
2022.11.05 14:39:07 3: nKuecheTemp return value: -1
2022.11.05 14:39:07 3: nKuecheTemp return value: -1
2022.11.05 14:39:07 3: nKuecheTemp return value: -1
2022.11.05 14:39:07 3: nKuecheTemp return value: -1
2022.11.05 14:39:07 3: nKuecheTemp return value: -1
2022.11.05 14:39:07 3: nKuecheTemp return value: -1
2022.11.05 14:39:07 3: nKuecheTemp return value: -1
2022.11.05 14:39:07 3: nKuecheTemp return value: -1
2022.11.05 14:39:09 3: nKuecheTemp return value: -1
2022.11.05 14:39:09 3: nKuecheTemp return value: -1
2022.11.05 14:39:09 3: nKuecheTemp return value: -1
2022.11.05 14:39:09 3: nKuecheTemp return value: -1
2022.11.05 14:39:11 3: nKuecheTemp return value: -1
2022.11.05 14:39:11 3: nKuecheTemp return value: -1
2022.11.05 14:39:14 3: nKuecheTemp return value: -1
2022.11.05 14:39:16 3: nKuecheTemp return value: -1
2022.11.05 14:39:16 3: nKuecheTemp return value: -1
2022.11.05 14:39:16 3: nKuecheTemp return value: -1
2022.11.05 14:39:16 3: nKuecheTemp return value: -1
2022.11.05 14:39:16 3: nKuecheTemp return value: -1
2022.11.05 14:39:16 3: nKuecheTemp return value: -1
2022.11.05 14:39:16 3: nKuecheTemp return value: -1
2022.11.05 14:39:16 3: nKuecheTemp return value: -1
2022.11.05 14:39:16 3: nKuecheTemp return value: -1
2022.11.05 14:39:17 3: nKuecheTemp return value: -1
2022.11.05 14:39:17 3: nKuecheTemp return value: -1
2022.11.05 14:39:17 3: nKuecheTemp return value: -1
2022.11.05 14:39:19 3: nKuecheTemp return value: -1
2022.11.05 14:39:19 3: nKuecheTemp return value: -1
2022.11.05 14:39:21 3: nKuecheTemp return value: -1
2022.11.05 14:39:24 3: nKuecheTemp return value: -1
2022.11.05 14:39:24 3: nKuecheTemp return value: -1
2022.11.05 14:39:24 3: nKuecheTemp return value: -1
2022.11.05 14:39:26 3: nKuecheTemp return value: -1
2022.11.05 14:39:26 3: nKuecheTemp return value: -1
2022.11.05 14:39:26 3: nKuecheTemp return value: -1
2022.11.05 14:39:28 3: nKuecheTemp return value: -1
2022.11.05 14:39:31 3: nKuecheTemp return value: -1
2022.11.05 14:39:31 3: nKuecheTemp return value: -1
2022.11.05 14:39:31 3: nKuecheTemp return value: -1
2022.11.05 14:39:31 3: nKuecheTemp return value: -1
2022.11.05 14:39:31 3: nKuecheTemp return value: -1
2022.11.05 14:39:31 3: nKuecheTemp return value: -1
2022.11.05 14:39:31 3: nKuecheTemp return value: -1
2022.11.05 14:39:33 3: nKuecheTemp return value: -1
2022.11.05 14:39:35 3: nKuecheTemp return value: -1
2022.11.05 14:39:36 3: nKuecheTemp return value: -1

Eigentlich wollte ich die Ausgabe von curl mit "-s -o /dev/null" zum Schweigen bringen, deswegen kommt wohl auch -1 zurück. Kann man den Log-Müll irgendwie verhindern? Eigentlich wäre es am Besten, wenn nur eine Temperaturänderung gesendet wird, und diese dann (evtl.) trotzdem nicht ins Logfile kommt.

TIA, Nico
Titel: Antw:Notify soll URL aufrufen - Logfile zugemüllt
Beitrag von: MadMax-FHEM am 05 November 2022, 14:54:29
system() liefert IMMER -1 zurück.

https://heinz-otto.blogspot.com/2018/02/in-fhem-externe-programme-aufrufen.html

Also einfach "wget ... > 2>&1 > /dev/null" inkl. Anführungszeichen.
Weiterer Vorteil: blockiert nicht.

Aber es gibt auch was in fhem: HTTPUtils
https://wiki.fhem.de/wiki/HttpUtils
https://wiki.fhem.de/wiki/HttpUtils#HttpUtils_NonblockingGet

Und ich würde beim Sensor noch über event-on-change-reading nachdenken, dann gibt es Events auch nur, wenn sich der Wert geändert hat...
https://wiki.fhem.de/wiki/Event-on-change-reading

Gruß, Joachim
Titel: Antw:Notify soll URL aufrufen - Logfile zugemüllt
Beitrag von: Otto123 am 05 November 2022, 14:57:56
Hi,

die Meldung liefert der Systemaufruf. Das sollte abhelfen.
{system("curl -s -o /dev/null http://192.168.178.50/ext_t?temp=$EVTPART1");; return undef}
Aber Du solltest das Sperrfeuer unterbinden, im Interesse für Dein System.
Der sendet 14 mal die Sekunde!
erste Maßnahme :attr event-on-change-reading setzen.
Dann schauen ob Du den MQTT Traffic verringern kannst.

Edit: zu langsam  ;D

Gruß Otto
Titel: Antw:Notify soll URL aufrufen - Logfile zugemüllt
Beitrag von: MadMax-FHEM am 05 November 2022, 15:01:28
Zitat von: Otto123 am 05 November 2022, 14:57:56
Edit: zu langsam  ;D

:)

Irgendwann muss ich ja auch mal schneller sein ;)

Gruß, Joachim
Titel: Antw:Notify soll URL aufrufen - Logfile zugemüllt
Beitrag von: betateilchen am 05 November 2022, 15:35:27
Warum macht man sowas überhaupt über einen Systemaufruf anstatt mit FHEM Bordmitteln aus den HttpUtils?
Titel: Antw:Notify soll URL aufrufen - Logfile zugemüllt
Beitrag von: ocin4 am 05 November 2022, 15:42:25
Super Sache, Danke!

event-on-change-reading war das, was ich gesucht hab. Musste mich da erstmal reinfuchsen, aber das Attribut mit "temperature_C,humidity,battery_ok" gefüllt sollte jetzt nur noch ein Ereignis auslösen, wenn sich einer der Werte ändert (die Werte werden in die DB geschrieben und im Dashboard schön grafisch dargestellt).
Und mit
Zitat von: Otto123 am 05 November 2022, 14:57:56
{system("curl -s -o /dev/null http://192.168.178.50/ext_t?temp=$EVTPART1");; return undef}
ist jetzt auch das Logfile nicht mehr vom Bersten bedroht.

Zitat von: MadMax-FHEM am 05 November 2022, 14:54:29
Also einfach "wget ... > 2>&1 > /dev/null" inkl. Anführungszeichen.
Das hab ich irgendwie alles probiert (wget -q zB). Ohne system() ist nichts beim Thermostat angekommen.
Zitat von: MadMax-FHEM am 05 November 2022, 14:54:29
https://wiki.fhem.de/wiki/HttpUtils
https://wiki.fhem.de/wiki/HttpUtils#HttpUtils_NonblockingGet
scheint mir für den Fall übertrieben. Ich hab zumindest nichts einfaches gefunden, um die Erstellung des Hashs mit Funktionsaufruf in einen lesbaren Einzeiler in das DEF vom Notify zu bekommen. Schau ich mir aber nochmal genauer an. (Perl ist irgendwie nicht so meins...)

Danke nochmal!
Nico
Titel: Antw:Notify soll URL aufrufen - Logfile zugemüllt
Beitrag von: betateilchen am 05 November 2022, 15:47:14
Du musst ja nicht gleich die komplizierteste Funktion verwenden, GetFileFromURL() wäre für Deinen Zweck völlig ausreichend. Da musst Du nur die url angeben.
Titel: Antw:Notify soll URL aufrufen - Logfile zugemüllt
Beitrag von: MadMax-FHEM am 05 November 2022, 15:50:50
Zitat von: ocin4 am 05 November 2022, 15:42:25
Das hab ich irgendwie alles probiert (wget -q zB). Ohne system() ist nichts beim Thermostat angekommen.

Dann war der Aufruf eben falsch.
Stand etwas im Log?

Und es ging hier nicht um -q quiet sondern darum, dass man System-Aufrufe OHNE system() (was -1 liefert) NONBLOCKING ausführen lassen kann, indem man den Aufruf einfach in Anführungszeichen packt...
Den Link hast du verfolgt/gelesen?

Und wenn du NonBlockingGet für übertrieben hälsts: musst du wissen. Bzw. siehe die Antwort von betateilchen...

Wäre halt auch NONBLOCKING...
EDIT: GetFileFromUrl aber nicht?

Der Aufruf, wie du ihn (immer noch) hast blockiert halt...

Gruß, Joachim
Titel: Antw:Notify soll URL aufrufen - Logfile zugemüllt
Beitrag von: betateilchen am 05 November 2022, 16:25:29
Zitat von: MadMax-FHEM am 05 November 2022, 15:50:50
Der Aufruf, wie du ihn (immer noch) hast blockiert halt...

Das ist doch in diesem Einsatzszenario völlig bedeutungslos.
Lasst doch mal die Kirche im Dorf.

???


---
Titel: Antw:Notify soll URL aufrufen - Logfile zugemüllt
Beitrag von: MadMax-FHEM am 05 November 2022, 16:34:16
Zitat von: betateilchen am 05 November 2022, 16:25:29
Das ist doch in diesem Einsatzszenario völlig bedeutungslos.
Lasst doch mal die Kirche im Dorf.

???


---

Das kommt ja wohl auf die Gegenstelle an...

Ja, sollte (ist verm. in dem Fall) kein Problem sein...
...aber es gibt ja auch andere Gegenstellen.

Und: der Hinweis darf ja auch (und wird ja wohl auch) (gerne) "ignoriert" werden... ;)

EDIT: korrekt ist er allemal... 8)

Gruß, Joachim
Titel: Antw:Notify soll URL aufrufen - Logfile zugemüllt
Beitrag von: Otto123 am 05 November 2022, 16:47:05
Mir macht eher Sorge, warum dieser Sensor jede Minute 48 mal das notify triggert.  :o :o :o
Vor allem mit einem Suchmuster, was mir ok scheint: MQTT2_inFactory_TH_229:temperature_C:.*
event-on-change-reading beseitigt jetzt das symptom - aber wo ist die Ursache.

Kannst Du Dir das Device mal im Eventmonitor anschauen?
Was ist das für eine Büchse?
Titel: Antw:Notify soll URL aufrufen - Logfile zugemüllt
Beitrag von: ocin4 am 05 November 2022, 16:50:05
Hallo,

die Definition des Notifys sieht jetzt so aus:
MQTT2_inFactory_TH_229:temperature_C:.* {GetFileFromURL("http://192.168.178.50/ext_t?temp=$EVTPART1", 1);; return undef}
Also mit fhem-Bordmitteln gelöst. Das "return undef" gefällt mir nicht so, aber sonst hab ich bei jeder Temperaturänderung einen Log-Eintrag
2022.11.05 16:38:25 3: nKuecheTemp return value: {"ok": true}
Loglevel 0 ändert daran auch nix. Mir würde es gefallen, wenn er einen Eintrag schreibt, wenn was schief gegangen ist, aber ob das was nützt, wenn ich nicht regelmäßig ins Logfile schaue... Eher beschwert sich meine Frau, dass es in der Küche kalt bleibt...

Ich hab den Timeout auf eine Sekunde gestellt. Wenn mein fhem-System also eine Sekunde steht, weil zB das Thermostat nicht erreichbar ist, komm ich damit zurecht. Oder hab ich bzgl Blockieren was falsch verstanden?

Danke nochmal!
Nico
Titel: Antw:Notify soll URL aufrufen - Logfile zugemüllt
Beitrag von: ocin4 am 05 November 2022, 16:58:47
Zitat von: Otto123 am 05 November 2022, 16:47:05
Mir macht eher Sorge, warum dieser Sensor jede Minute 48 mal das notify triggert.  :o :o :o
Kannst Du Dir das Device mal im Eventmonitor anschauen?
Der Senor hängt via MQTT an fhem.
mosquitto_sub -v -t sensors/# |grep inFactory-TH/229
liefert mit jedem Blinken des Sensors

sensors/rtl_433/inFactory-TH/229/C2/time 2022-11-05T16:55:21
sensors/rtl_433/inFactory-TH/229/C2/protocol 91
sensors/rtl_433/inFactory-TH/229/C2/id 229
sensors/rtl_433/inFactory-TH/229/C2/channel 2
sensors/rtl_433/inFactory-TH/229/C2/battery_ok 1
sensors/rtl_433/inFactory-TH/229/C2/temperature_F 69.8
sensors/rtl_433/inFactory-TH/229/C2/humidity 52
sensors/rtl_433/inFactory-TH/229/C2/mic CRC
sensors/rtl_433/inFactory-TH/229/C2/time 2022-11-05T16:55:21
sensors/rtl_433/inFactory-TH/229/C2/protocol 91
sensors/rtl_433/inFactory-TH/229/C2/id 229
sensors/rtl_433/inFactory-TH/229/C2/channel 2
sensors/rtl_433/inFactory-TH/229/C2/battery_ok 1
sensors/rtl_433/inFactory-TH/229/C2/temperature_F 69.8
sensors/rtl_433/inFactory-TH/229/C2/humidity 52
sensors/rtl_433/inFactory-TH/229/C2/mic CRC
sensors/rtl_433/inFactory-TH/229/C2/time 2022-11-05T16:55:21
sensors/rtl_433/inFactory-TH/229/C2/protocol 91
sensors/rtl_433/inFactory-TH/229/C2/id 229
sensors/rtl_433/inFactory-TH/229/C2/channel 2
sensors/rtl_433/inFactory-TH/229/C2/battery_ok 1
sensors/rtl_433/inFactory-TH/229/C2/temperature_F 69.8
sensors/rtl_433/inFactory-TH/229/C2/humidity 52
sensors/rtl_433/inFactory-TH/229/C2/mic CRC
sensors/rtl_433/inFactory-TH/229/C2/time 2022-11-05T16:55:22
sensors/rtl_433/inFactory-TH/229/C2/protocol 91
sensors/rtl_433/inFactory-TH/229/C2/id 229
sensors/rtl_433/inFactory-TH/229/C2/channel 2
sensors/rtl_433/inFactory-TH/229/C2/battery_ok 1
sensors/rtl_433/inFactory-TH/229/C2/temperature_F 69.8
sensors/rtl_433/inFactory-TH/229/C2/humidity 52
sensors/rtl_433/inFactory-TH/229/C2/mic CRC
sensors/rtl_433/inFactory-TH/229/C2/time 2022-11-05T16:55:22
sensors/rtl_433/inFactory-TH/229/C2/protocol 91
sensors/rtl_433/inFactory-TH/229/C2/id 229
sensors/rtl_433/inFactory-TH/229/C2/channel 2
sensors/rtl_433/inFactory-TH/229/C2/battery_ok 1
sensors/rtl_433/inFactory-TH/229/C2/temperature_F 69.8
sensors/rtl_433/inFactory-TH/229/C2/humidity 52
sensors/rtl_433/inFactory-TH/229/C2/mic CRC
sensors/rtl_433/inFactory-TH/229/C2/time 2022-11-05T16:55:22
sensors/rtl_433/inFactory-TH/229/C2/protocol 91
sensors/rtl_433/inFactory-TH/229/C2/id 229
sensors/rtl_433/inFactory-TH/229/C2/channel 2
sensors/rtl_433/inFactory-TH/229/C2/battery_ok 1
sensors/rtl_433/inFactory-TH/229/C2/temperature_F 69.8
sensors/rtl_433/inFactory-TH/229/C2/humidity 52
sensors/rtl_433/inFactory-TH/229/C2/mic CRC

Also alles sechs Mal.
Zitat von: Otto123 am 05 November 2022, 16:47:05
Was ist das für eine Büchse?
inFactory Funk-Außensensor für Funkwetterstationen der FWS-Serie, IP44, 60 m, war mal bei Pearl (https://www.pearl.de/a-NC3982.shtml (https://www.pearl.de/a-NC3982.shtml)) für 5 € das Stück in der Werbung. Ich hab davon 6 im Haus.
Titel: Antw:Notify soll URL aufrufen - Logfile zugemüllt
Beitrag von: Otto123 am 05 November 2022, 17:01:49
Zeigst Du mal ein list MQTT2_inFactory_TH_229
Annahme: Du erzeugst temperature_C mit einem userReadings ohne trigger?
Titel: Antw:Notify soll URL aufrufen - Logfile zugemüllt
Beitrag von: ocin4 am 05 November 2022, 17:04:20
Zitat von: Otto123 am 05 November 2022, 17:01:49
Zeigts Du mal ein list MQTT2_inFactory_TH_229

Internals:
   CID        inFactory-TH_229
   DEF        inFactory-TH_229
   FUUID      632c1033-f33f-f0f2-0436-cf4a98c92162affa
   IODev      myMQTTBroker
   LASTInputDev myMQTTBroker
   MSGCNT     165152
   NAME       MQTT2_inFactory_TH_229
   NR         58
   STATE      21.0 °C, 52% rH
   TYPE       MQTT2_DEVICE
   eventCount 161692
   myMQTTBroker_MSGCNT 165152
   myMQTTBroker_TIME 2022-11-05 17:01:28
   Helper:
     DBLOG:
       humidity:
         fhemDbLog:
           TIME       1667663723.78012
           VALUE      52
       temperature_C:
         fhemDbLog:
           TIME       1667663722.75794
           VALUE      21.0
   READINGS:
     2022-11-02 12:38:45   IODev           myMQTTBroker
     2022-09-22 09:35:16   associatedWith  MQTT2_myMQTTBridge
     2022-11-05 17:01:28   battery_ok      1
     2022-11-05 17:01:28   channel         2
     2022-11-05 17:01:28   humidity        52
     2022-11-05 17:01:28   id              229
     2022-11-05 17:01:28   mic             CRC
     2022-11-05 17:01:28   protocol        91
     2022-11-05 17:01:28   temperature_C   21.0
     2022-11-05 17:01:28   temperature_F   69.8
     2022-11-05 17:01:28   time            2022-11-05T17:01:27
Attributes:
   DbLogExclude temperature_F
   alias      Küche
   devStateStyle style="text-align:right;"
   event-on-change-reading temperature_C,humidity,battery_ok
   group      Innen
   readingList sensors/rtl_433/inFactory-TH/229/C2/time:.* time
sensors/rtl_433/inFactory-TH/229/C2/protocol:.* protocol
sensors/rtl_433/inFactory-TH/229/C2/id:.* id
sensors/rtl_433/inFactory-TH/229/C2/channel:.* channel
sensors/rtl_433/inFactory-TH/229/C2/battery_ok:.* battery_ok
sensors/rtl_433/inFactory-TH/229/C2/temperature_F:.* temperature_F
sensors/rtl_433/inFactory-TH/229/C2/humidity:.* humidity
sensors/rtl_433/inFactory-TH/229/C2/mic:.* mic
   room       MQTT2_DEVICE,Temperaturen
   sortby     3020
   stateFormat {
    return ReadingsVal($name,'temperature_C','') . " °C, " . ReadingsVal($name,'humidity','') . "% rH"; ##. "$wday $4";
}
   userReadings temperature_C { sprintf("%.1f", (ReadingsVal("MQTT2_inFactory_TH_229", "temperature_F", 0) - 32) * 5/9) }

Zitat von: Otto123 am 05 November 2022, 17:01:49
Annahme: Du erzeugst temperature_C mit einem userReadings ohne trigger?
Ja, weil der Sensor zwar °C anzeigen kann aber nicht übermittelt.
Titel: Antw:Notify soll URL aufrufen - Logfile zugemüllt
Beitrag von: Otto123 am 05 November 2022, 17:06:39
Dann mal ändern in
userReadings temperature_C:temperature_F.* { sprintf("%.1f", (ReadingsVal("MQTT2_inFactory_TH_229", "temperature_F", 0) - 32) * 5/9) }

Ein schönes Beispiel dafür, dass man userReadings immer mit trigger anlegen sollte
ZitatuserReadings
Komma getrennte Liste von benutzerdefinierten Readings. Jede Definition hat folgendes Format:
<reading>[:<trigger>] [<modifier>] { <perl code> }
Diese benutzerdefinierte Readings werden bei jeder Aktualisierung der Gerätereadings gesetzt, indem das spezifizierte perl code { <perl code> } ausgeführt wird, und dessen Wert dem Reading zugewiesen wird. Falls <trigger> spezifiziert ist, dann findet diese Ausführung nur dann statt, falls einer der aktualisierten Readings dem regexp <trigger> entspricht (matched).

Und schau Dir bitte vorher / nachher im Eventmonitor an  ;D https://wiki.fhem.de/wiki/Event_monitor
Titel: Antw:Notify soll URL aufrufen - Logfile zugemüllt
Beitrag von: ocin4 am 05 November 2022, 17:12:28
Versteh ich das jetzt richtig, dass das userReading bisher bei jeder Änderung eines Wertes (Zeit, humidity, ...) genieriert wurde und jetzt nur noch generiert wird, wenn sich temperature_F ändert?

Cool, wieder was gelernt. Danke!
Titel: Antw:Notify soll URL aufrufen - Logfile zugemüllt
Beitrag von: Otto123 am 05 November 2022, 17:15:05
so ist es ;)
Titel: [Gelöst] Notify soll URL aufrufen - Logfile zugemüllt
Beitrag von: ocin4 am 05 November 2022, 17:32:23
Mit dieser Änderung und dem event-on-change-reading sieht mein Event-Monitor viel übersichtlicher aus. 6 solche Sensoren, die alles 6-fach schicken und dazu unter jedem Wert die temerature_C - das scrollte nur so durch. Jetzt ists ruhig. Ich sollte öfter im Forum nachfragen...

Danke nochmal!
Titel: Antw:Notify soll URL aufrufen - Logfile zugemüllt
Beitrag von: Otto123 am 05 November 2022, 18:43:04
Zitat von: ocin4 am 05 November 2022, 16:50:05
Also mit fhem-Bordmitteln gelöst. Das "return undef" gefällt mir nicht so, aber sonst hab ich bei jeder Temperaturänderung einen Log-Eintrag
Zum Abschluss ;)
Du kannst die Rückgabe auswerten und normal ein undef und bei Fehler die Rückgabe zurückgeben.
Vorschlag prinzipiell getestet, geht sicher besser:
{my $ret = GetFileFromURL("http://192.168.178.50/ext_t?temp=$EVTPART1", 1);; return $ret eq '{"ok": true}' ? undef : $ret}