Autor Thema: Notify reagiert nicht auf Log-Eintrag  (Gelesen 439 mal)

Offline Ralli

  • Hero Member
  • *****
  • Beiträge: 1004
Notify reagiert nicht auf Log-Eintrag
« am: 23 Januar 2023, 07:55:50 »
Hallo zusammen,

ich habe immer mal wieder folgenden Log-Eintrag, den ich mit einem Notify zu erschlagen versuche:

2023.01.20 04:34:55.055 2: UnifiProtect: json error: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "Unauthorized") at ./FHEM/74_UnifiProtect.pm line 833

Wenn dieser Fehler auftritt bzw. aufgetreten ist, hilft nur ein Reconnect vom UnifiProtect-Device, daher habe ich folgendes Notify definiert:

defmod n_RestartUnifiProtect notify n_RestartUnifiProtect:UnifiProtect..?json.error..?malformed.JSON.string.* set UnifiProtect reconnect
attr n_RestartUnifiProtect readLog 1

Wahrscheinlich passt meine (sehr einfache) RegeEx-Definition nicht, denn das Notify wird nicht getriggert bzw. löst nicht aus.

Kann mir jemand meinen Fehler aufzeigen?
Gruß,
Ralli

Intel NUC11TNHi7+NUC7i5BNH mit Proxmox 7.3 und QDevice auf RPi, virtualisiertes fhem 6.2 dev, virtualisierte RaspberryMatic (3.67.10.20230114) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.29), FBDECT, Siri und Alexa

Offline OdfFhem

  • Hero Member
  • *****
  • Beiträge: 1356
Antw:Notify reagiert nicht auf Log-Eintrag
« Antwort #1 am: 23 Januar 2023, 08:32:46 »
Ein notify wird folgendermaßen definiert:
Zitat
define <name> notify <Suchmuster> <command>

Zum Suchmuster gilt lt. Wiki:
Zitat
Das Suchmuster (häufig als Regexp = regular expression = regulärer Ausdruck bezeichnet) ist sehr wichtig: Es ist entweder der Name des auslösenden ("triggernden") Gerätes oder die Kombination aus Gerät und auslösendem Ereignis (Event) Gerätename:Event. Die Events kann man dem Event-Monitor entnehmen.

Der Fehlereintrag im FHEM-Log löst selbst keinerlei Event aus ... Gibt es tatsächlich ein Reading, dass diesen Fehlertext bereitstellt ?

Offline Ralli

  • Hero Member
  • *****
  • Beiträge: 1004
Antw:Notify reagiert nicht auf Log-Eintrag
« Antwort #2 am: 23 Januar 2023, 08:58:23 »
Danke, mir ist die Syntax bekannt.

In der Commandref steht Folgendes:

Zitat
Attribut readLog
Das notify wird für Meldungen, die im FHEM-Log erscheinen, ausgegeführt. Das "Event-Generierende-Gerät" wird auf dem notify selbst gesetzt. Z.Bsp. kann man mit folgendem notify auf die Startup Meldung reagieren:
define n notify n:.*Server.started.* { Log 1, "Wirklich" }
attr n readLog

Sollte also nach meinem Verständnis auf genau diesen Anwendungsfall passen.

Nein, es gibt kein Reading, nur einen Log-Eintrag.
Gruß,
Ralli

Intel NUC11TNHi7+NUC7i5BNH mit Proxmox 7.3 und QDevice auf RPi, virtualisiertes fhem 6.2 dev, virtualisierte RaspberryMatic (3.67.10.20230114) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.29), FBDECT, Siri und Alexa

Offline binford6000

  • Tester
  • Hero Member
  • ****
  • Beiträge: 1579
  • 🏠⚙️💡🛠📱
Antw:Notify reagiert nicht auf Log-Eintrag
« Antwort #3 am: 23 Januar 2023, 09:02:43 »
Moin Ralli,
probier mal:
defmod n_RestartUnifiProtect notify n_RestartUnifiProtect:.*UnifiProtect..?json.error..?malformed.JSON.string.* set UnifiProtect reconnect
VG Sebastian

Offline Ralli

  • Hero Member
  • *****
  • Beiträge: 1004
Antw:Notify reagiert nicht auf Log-Eintrag
« Antwort #4 am: 23 Januar 2023, 09:33:16 »
Danke, ich hab's mal übernommen. Nun heißt es warten, bis der Fehler wieder zuschlägt.
Gruß,
Ralli

Intel NUC11TNHi7+NUC7i5BNH mit Proxmox 7.3 und QDevice auf RPi, virtualisiertes fhem 6.2 dev, virtualisierte RaspberryMatic (3.67.10.20230114) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.29), FBDECT, Siri und Alexa

Offline OdfFhem

  • Hero Member
  • *****
  • Beiträge: 1356
Antw:Notify reagiert nicht auf Log-Eintrag
« Antwort #5 am: 23 Januar 2023, 09:37:44 »
Danke, mir ist die Syntax bekannt.
Tut mir leid für die "Belehrung"; da hat scheinbar mein Mobilgerät das entscheidende Attribut "verheimlicht" ...

Offline Ralli

  • Hero Member
  • *****
  • Beiträge: 1004
Antw:Notify reagiert nicht auf Log-Eintrag
« Antwort #6 am: 23 Januar 2023, 09:44:49 »
Alles gut  ;) Auch ich darf und möchte mich gerne belehren lassen, suche ja nach Rat.

Um es mit dem Sprichwort meiner verstorbenen Großmutter zu sagen: "Dau kanns aaal werden wie ne Kuh, dau lernst immer noch dazu"!
Gruß,
Ralli

Intel NUC11TNHi7+NUC7i5BNH mit Proxmox 7.3 und QDevice auf RPi, virtualisiertes fhem 6.2 dev, virtualisierte RaspberryMatic (3.67.10.20230114) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.29), FBDECT, Siri und Alexa

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 26043
Antw:Notify reagiert nicht auf Log-Eintrag
« Antwort #7 am: 23 Januar 2023, 10:16:12 »
Nach Studium der Programmzeilen in fhem.pl faellt mir auf, dass notify mit readLog die Daten leicht anders formatiert bekommt, als das, was ins Logfile geschrieben wird.
Geschrieben wird "$tim $loglevel: $text\n", benachrichtigt wird mit "$tim $loglevel : $text", d.h. bei notify ist ein zusaetzliches Leerzeichen vor dem Doppelpunkt, und Newline fehlt.

Warum das zusaetzliche Leerzeichen da ist, konnte ich selbst nach Studium der Geschichte (svn blame fhem.pl / svn log fhem.pl / Forumsbeitraege studieren) nicht nachvollziehen.
Ein Fix wuerde das Log2Syslog Modul unbrauchbar machen, und womoeglich einige Benutzer dieses Features veraergern.

An dem Log2Syslog Maintainer (falls Du mitliest): ich wuerde gerne die Unterschiede beheben, es sei denn, jemand begruendet, warum das nicht sinnvoll ist.
Gefällt mir Gefällt mir x 2 Liste anzeigen

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8780
Antw:Notify reagiert nicht auf Log-Eintrag
« Antwort #8 am: 23 Januar 2023, 15:44:17 »
Hallo Rudi,

Zitat
An dem Log2Syslog Maintainer (falls Du mitliest): ich wuerde gerne die Unterschiede beheben, es sei denn, jemand begruendet, warum das nicht sinnvoll ist.
Bin gerade auf den Thread aufmerksam geworden ... gerne können wir das anpassen, ich habe nichts einzuwenden.
Wenn du zu gegebener Zeit die Änderungen postest, kann ich es in  Log2Syslog  nachziehen und im Idealfall zusammen im Update ausliefern lassen.
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf VM
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 26043
Antw:Notify reagiert nicht auf Log-Eintrag
« Antwort #9 am: 23 Januar 2023, 16:16:11 »
Zitat
gerne können wir das anpassen, ich habe nichts einzuwenden.
Angebot angenommen, habe die geaenderte Version von fhem.pl eingecheckt.

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8780
Antw:Notify reagiert nicht auf Log-Eintrag
« Antwort #10 am: 23 Januar 2023, 22:18:31 »
Log2Syslog habe ich auch angepasst, getestet und eingecheckt.

Bei der Gelegenheit habe ich bemerkt, dass Log-Einträge die ich im neuen DbLog aus dem SubProzess heraus ausgebe, nicht an Log2Syslog weitergegeben werden.
Ich habe eine Weile gebraucht um zu verstehen wieso es so ist.
Der Grund liegt m.M. nach darin begründet, dass sich das Log2Syslog-Device erst relativ spät definiert und somit sich erst nach dem fork in den Hash %logInform einträgt. Somit ist im "geforkten" %logInform das Log2Syslog-Device nicht vorhanden.

Für dieses Problem habe ich noch keine Lösung und muss noch darüber nachdenken.
Das hat auch jetzt nicht direkt etwas mit dem Thread-Thema zu tun, wollte die Sache aber mitteilen weil evtl. auch andere Module die Logausgaben im SubProzess verwenden evtl. auf ähnliche Verhalten stoßen je nachdem wann der fork erfolgt. 
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf VM
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 26043
Antw:Notify reagiert nicht auf Log-Eintrag
« Antwort #11 am: 24 Januar 2023, 10:48:40 »
Zitat
Bei der Gelegenheit habe ich bemerkt, dass Log-Einträge die ich im neuen DbLog aus dem SubProzess heraus ausgebe, nicht an Log2Syslog weitergegeben werden.
Wir sollten dieses Problem separat diskutieren, ich fuerchte die Loesung ist nicht trivial, und ich will dieses Thema nicht entfuehren.

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8780
Antw:Notify reagiert nicht auf Log-Eintrag
« Antwort #12 am: 24 Januar 2023, 10:50:32 »
Ja, gerne.
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf VM
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter