[gelöst] Fritzbox Log auswerten und für ausgewählten Eintrag MSG schicken

Begonnen von RalfRog, 20 März 2023, 15:43:59

Vorheriges Thema - Nächstes Thema

RalfRog

#15
Hi neuer Test

Dass der Log3 dahin gehört hätte ich vielleicht selber drauf kommen könnnen. Mir fehlt einfach ein Gefühl für Perl und wo man ansetzt. Naja  ???

VERSION  07.50.10d Beta

  • shutdown restart
2023.03.22 12:53:15.193 0: Server shutdown
2023.03.22 12:53:20.861 1: Including fhem.cfg

2023.03.22 12:53:52.580 2: FRITZBOX!0000 [fritzzbox: Define.304] - The support for telnet and operation on a Fritz!Box has been discontinued. The functions are disabled.
2023.03.22 12:53:52.583 2: FRITZBOX!0000 [fritzzbox: Define.310] - The following attributes are not longer supported:
useGuiHack, ringWithIntern, defaultCallerName, allowTR064Command,
forceTelnetConnection, telnetUser, telnetTimeOut
Use deleteattr to delete from Attributes.

2023.03.22 12:53:52.861 2: FRITZBOX!0000 [fritzclient: Define.304] - The support for telnet and operation on a Fritz!Box has been discontinued. The functions are disabled.
2023.03.22 12:53:52.864 2: FRITZBOX!0000 [fritzclient: Define.310] - The following attributes are not longer supported:
useGuiHack, ringWithIntern, defaultCallerName, allowTR064Command,
forceTelnetConnection, telnetUser, telnetTimeOut
Use deleteattr to delete from Attributes.

2023.03.22 12:53:53.737 2: FRITZBOX!0000 [fritzkat: Define.304] - The support for telnet and operation on a Fritz!Box has been discontinued. The functions are disabled.
2023.03.22 12:53:53.740 2: FRITZBOX!0000 [fritzkat: Define.310] - The following attributes are not longer supported:
useGuiHack, ringWithIntern, defaultCallerName, allowTR064Command,
forceTelnetConnection, telnetUser, telnetTimeOut
Use deleteattr to delete from Attributes.

2023.03.22 12:53:59.474 1: Including ./log/fhem.save
2023.03.22 12:54:00.009 1: Messages collected while initializing FHEM:SecurityCheck:
  WEB is not password protected
  telnetPort is not password protected

Protect this FHEM installation by configuring the allowed device allowed
You can disable this message with attr global motd none

2023.03.22 12:55:03.291 0: Featurelevel: 6.2
2023.03.22 12:55:03.295 0: Server started with 23 defined entities (fhem.pl:27110/2023-01-23 perl:5.032001 os:linux user:fhem pid:1096)

2023.03.22 12:55:08.732 3: FRITZBOX!0000 [fritzzbox: API_Check_Run.1607] - INFO: Created m3u file './www/images/fritzzbox.m3u'.
nix wird angemeckert  :)

  • get <name> fritzLog hash fon
2023.03.22 12:56:10.551 3: FRITZBOX!7590 [fritzzbox: Run_fritzloginfo.3481] - DEBUG: fritzlog -> fritzloginfo, hash, fon
2023.03.22 12:56:10.558 3: FRITZBOX!7590 [fritzzbox: Run_fritzloginfo.3491] - DEBUG: data.lua:
xhr 1 lang de page log xhrId log filter fon useajax 1 no_sidrenew
2023.03.22 12:56:11.831 2: FRITZBOX!7590 [fritzzbox: Run_fritzloginfo.3505] - ERROR: fritzLogExPost: Can't call method "Dumper" on unblessed reference at ./FHEM/99_myUtils.pm line 34.
Nach einmal Edit 72_FRITZBOX.pm geht es.

Macht ein use Data::Dumper; Sinn?
Ja geht, habe es versucht - zumindest aus meiner Sicht funktioniertes dann auf Anhieb da Dumper bekannt ist.
Oder gehört das im Sinne eines ordentlichen Aufbaus der 72_FRITZBOX.pm woanders hin. Im Standard feht das use ja.


  • get <name> fritzLog table fon 
    => ID ist jetzt Fehlernummer = {'id'}, ich glaube das macht Sinn, die Tabelle ist ja zeitlich geordnet



FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

JoWiemann

Zitat von: RalfRog am 22 März 2023, 13:13:16Macht ein use Data::Dumper; Sinn?
Ja geht, habe es versucht - zumindest aus meiner Sicht funktioniertes dann auf Anhieb da Dumper bekannt ist.
Oder gehört das im Sinne eines ordentlichen Aufbaus der 72_FRITZBOX.pm woanders hin. Im Standard feht das use ja.

Ich werde das Beispiel nochmal überarbeiten. Es ist "nur" als Einstieg gedacht. Sozusagen für den, der gar keinen Anfang findet.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

RalfRog

Nochmal einen dicken Daumen hoch für die Funktion get <name> fritzLog

Auch wenn wenn es hier im Bereich vielleicht leicht OT geraten ist, war es doch ein guter Einstieg.
Ich denke wenn das das Modul offiziell in die neue Version geht und meine Auswertung steht mach ich einen Beitrag in den Codeschnipseln für eine Auswertung auf z.B. 505 "fehlerhaften Anmeldeversuche".

Gruß Ralf

Zitat von: JoWiemann am 22 März 2023, 14:25:23...
Ich werde das Beispiel nochmal überarbeiten. Es ist "nur" als Einstieg gedacht. Sozusagen für den, der gar keinen Anfang findet.
...

Prima
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

JoWiemann

#18
Hallo Ralf,

möchte Dich nicht ärgern. Habe in der angehängten Beta das Reading box_sys_LogLast und da ich die Daten sowieso habe auch noch box_wlan_LogLast implementiert. Sie enthalten das letzte SYS/WLAN-Ereignis mit ID Datum Uhrzeit: box_sys_LogLast 500 22.03.23 16:28:14 / box_wlan_LogLast 750 22.03.23 19:15:35

Damit können jetzt alle ohne Programmierung mit einem notify / DOIF darauf reagieren.

Folgende ID und Meldungen habe ich mal aufgelistet:
# 500 Anmeldung an der FRITZ!Box-Benutzeroberfläche von von IP-Adresse ...
# 501 Anmeldung an der FRITZ!Box-Benutzeroberfläche von IP-Adresse ... gescheitert (falsches Kennwort).
# 504 Anmeldung des Benutzers FhemUser an der FRITZ!Box-Benutzeroberfläche von IP-Adresse ...
# 505 fehlerhafter Anmeldeversuch ???
# 506 Anmeldung einer App des Benutzers FhemUser von IP-Adresse
# 510 Anmeldung einer App mit unbekanntem Anmeldenamen von IP-Adresse ... gescheitert.
# 2364 Ein neues Gerät wurde an der FRITZ!Box angemeldet (Schnurlostelefon)
# 2358 Einstellungen wurden gesichert. Diese Änderung erfolgte von Ihrem Heimnetzgerät ... (IP-Adresse: ...)

Grüße Jörg

Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

RalfRog

Ne alles gut. Aktuell machst du das Meiste. Bin auch für ne gute und durchdachte Lösung.
Vermutlich habe ich morgen keine Zeit weil ich unterwege bin.
Reaktion daher vermutlich frühestens am Freitag.

Klingt aber gut. Hatte mir grob auch schon ein paar interessante IDs rausgesucht, deine Liste ist gut.
Prio 1
Der Grund für die Logauswertung, kommt bei fehlerhafter Anmeldung wenn externer HTTPS Zugang offen ist.
505 Anmeldung des Benutzers xx an der FRITZ!Box-Benutzeroberfläche von IP-Adresse yy gescheitert (falsches Kennwort)

Prio 2
501 Anmeldung an der FRITZ!Box-Benutzeroberfläche von IP-Adresse yy gescheitert (falsches Kennwort)
503 Anmeldung an der FRITZ!Box-Benutzeroberfläche von IP-Adresse yy gescheitert (ungültige Sitzungskennung). Zur Sicherheit werden
510 Anmeldung einer App mit unbekanntem Anmeldenamen von IP-Adresse yy gescheitert.

Prio3
689 WLAN-Anmeldung ist gescheitert : Die MAC-Adresse des WLAN-Geräts ist gesperrt. MAC-Adresse
692 WLAN-Anmeldung ist gescheitert : Verbindungsaufbau fehlgeschlagen. MAC-Adresse
705 WLAN-Gerät Anmeldung gescheitert (5 GHz): ungültiger WLAN-Schlüssel. MAC-Adresse
782 WLAN-Anmeldung ist gescheitert : Die erneute Anmeldung ist aufgrund aktiver "Unterstützung für geschützte Anmeldungen von WLAN-Geräten (PMF)

Nice to know
504 Anmeldung des Benutzers x an der FRITZ!Box-Benutzeroberfläche von IP-Adresse
506 Anmeldung einer App des Benutzers xx von IP-Adresse yy



ZitatReading box_sys_LogLast und da ich die Daten sowieso habe auch noch box_wlan_LogLast implementiert. Sie enthalten das letzte SYS/WLAN-Ereignis mit ID Datum Uhrzeit:

Mal schauen wie das ist und wie schnell das überschrieben wird. Aber ja man kann per notify natürlich auf spezielle Werte reagieren.
Ich habe aktuell wegen dem Testsystem mit Intervall 900 das Problem, dass ständig Anmeldungen geloggt werden (schicke deswegen dafür auch keine EMails mehr).

22.03.23 23:16:13 Anmeldung an der FRITZ!Box-Benutzeroberfläche von IP-Adresse
22.03.23 23:09:54 Anmeldung an der FRITZ!Box-Benutzeroberfläche von IP-Adresse  [80 Meldungen seit 22.03.23 18:24:47]
22.03.23 18:09:53 Anmeldung an der FRITZ!Box-Benutzeroberfläche von IP-Adresse  [48 Meldungen seit 22.03.23 15:24:47]
22.03.23 15:09:53 Anmeldung an der FRITZ!Box-Benutzeroberfläche von IP-Adresse  [4 Meldungen seit 22.03.23 15:09:47]
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

JoWiemann

Hallo Ralf,

anbei eine neue Beta 07.50.10g. Sofern Du nichts mehr findest, würde ich diese Version gerne einchecken.

Danke und Grüße

Jörg

Anmerkungen:

Alle Readings, die eine Rückmeldung zu non Blocking Aufrufen geben, beginnen jetzt mit retStat_...

Sofern noch das Attribut fritzBoxIP gesetzt ist, wird das Define geändert und der Inhalt des Attributs als Parameter im Define gesetzt. Hierzu kommt dann eine Info in den Internals. Das Attribut wird dann gelöscht.

Ich habe die DefFn "FRITZBOX_Define" so geändert, dass ein neues Define nur mit IP/DNS Name funktioniert, das Laden einer alten Definition aber nicht abgebrochen wird.

Bei Angabe eine DNS Namen wird dieser auf Auflösbarkeit geprüft.

Die commandRef erweitert und nochmal auf Umlaute geprüft.

Die beiden neuen Readings: box_sysLogLast und box_wlan_LogLast sind jetzt auch dokumentiert.

Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

RalfRog

Habe mal schnell ein paar Tests erledigen können und mich auf die neuen Funktionen konzentriet.
=> Thema IP/Host und define nicht angefasst. Auch keine Gegencheck bisheriger Funktioen.

VERSION  07.50.10g

  • shutdown restart: (der Vollständigkeit halber der LOG dazu
2023.03.23 18:46:29.749 0: Server shutdown
2023.03.23 18:46:35.812 1: Including fhem.cfg

2023.03.23 18:47:09.188 2: FRITZBOX!0000 [fritzzbox: Attr.470] - INFO:The attribute fritzBoxIP is not longer supported!
May be you have to use deleteattr to delete fritzBoxIP from Attributes.
The definition of the device has been adjusted. Please use 'Save config'
2023.03.23 18:47:09.217 3: The Attribute 'fritzBoxIP' is depreciated. The definition of the device has been adjusted.

2023.03.23 18:47:09.463 2: FRITZBOX!0000 [fritzclient: Attr.470] - INFO:The attribute fritzBoxIP is not longer supported!
May be you have to use deleteattr to delete fritzBoxIP from Attributes.
The definition of the device has been adjusted. Please use 'Save config'
2023.03.23 18:47:09.495 3: The Attribute 'fritzBoxIP' is depreciated. The definition of the device has been adjusted.

2023.03.23 18:47:15.976 1: Including ./log/fhem.save

2023.03.23 18:47:16.510 1: Messages collected while initializing FHEM:configfile: The Attribute 'fritzBoxIP' is depreciated. The definition of the device has been adjusted.
The Attribute 'fritzBoxIP' is depreciated. The definition of the device has been adjusted.

2023.03.23 18:48:19.425 0: Featurelevel: 6.2

2023.03.23 18:48:25.381 3: FRITZBOX!0000 [fritzzbox: API_Check_Run.1625] - INFO: Created m3u file './www/images/fritzzbox.m3u'

Tatsächlich haben bei mir "fritzzbox" & "fritzclient" das Attribut "fritzBoxIP" in der Config gesetzt und es ist nach dem "Save Config" aus der Config gelöscht.
Vermute allerdings, dass die Wenigsten das mitbekommen. Die INFO3 hilft dann hoffentlich irgendwann :-)

  • Die beiden alten Reading händisch gelöscht "deletereading fritzzbox fritzLog.*" .

  • Neue Reading sind da
    retstat_fritzLogExPost   done   2023-03-23 19:08:56
    retstat_fritzLogInfo      done   2023-03-23 19:08:56

Achtung die Readings und Doku sind nicht durchgängig gleich.
Ganz unten in der Auflistung steht: retStat_* (so soll es sein)


=> Beide Readings "retstat_fritzLogExPost" & "retstat_fritzLogInfo" mit KLEINEM s
=> doku beim GET
    Rückmeldung in den Readings:
    retStat_fritzLogExPost = Status des Funktionsaufrufes myUtilsFritzLogExPost
    retstat_fritzLogInfo = Status der Log Informations Abfrage.

Ich denke der Sinn ist es an allen Stellen gleich zu halten mit "S"

  • Frage
    Wann genau werden box_sys_LogLast & box_wlan_LogLast aktualisiert. Immer dann wenn die Fuktion get <name> fritzLog hash sys|wlan aufgerufen wird?

So weit so gut. So so aus als könnte das Ding nach den Kleinigkeiten in die Welt  8)
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

JoWiemann

Zitat von: RalfRog am 23 März 2023, 19:39:43Ich denke der Sinn ist es an allen Stellen gleich zu halten mit "S"

  • Frage
    Wann genau werden box_sys_LogLast & box_wlan_LogLast aktualisiert. Immer dann wenn die Fuktion get <name> fritzLog hash sys|wlan aufgerufen wird?

Hallo Ralf,

danke Dir. Das retstat werde ich noch durch retStat ersetzen.

box_sys_LogLast & box_wlan_LogLast werden bei jedem Timerdurchlauf (Intervall) aktualisiert. Sind somit notify tauglich. Zeigen allerdings immer den jüngsten Eintrag. Da innerhalb des definierten Intervall mehrere Ereignisse auftreten können, sind sie aber auch gute Trigger für get <name> fritzLog sys oder wlan und Deine weitere Verarbeitung.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

RalfRog

Normaler Support Thread oder hier, das ist die Frage.

Folgende Readings erzeugtst du doppelt bzw. hast eine Namensänderung vorgenommen? Absicht?
box_wlanCount   7     2023-03-23 18:39:56
box_wlan_Count  8     2023-03-23 22:21:38

box_wlanLogEx   off   2023-03-23 18:39:56
box_wlan_LogEx  off   2023-03-23 22:21:38
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

JoWiemann

Hallo Ralf,

ich habe die Namen nochmal angepasst und sie versucht etwas einheitlicher zu gestallten.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

RalfRog

Ich setze das Ding mal auf gelöst.

Wesentliche Umsetzung ist im Modul erfolgt in Kombination mit der Sub "myUtilsFritzLogExPost($$$)" und das wurde heute bereits eingecheckt und ist daher über das Update verfügbar
=> ModulVersion = 07.50.10

Grundsätzlicher BeispielCode von Jo Wiemann für die 99_myUtils.pm in #14 (use Data::Dumper noch nötig)
https://forum.fhem.de/index.php?msg=1269178

Zugriff auf einzelne Daten aus dem Log $wert = $result->{data}->{log}->[array-index 0 bis n]->{id|date|time|msg}
(0 bis n = Zeilen in der Fritz-Box Logdatei)


Wenn meine Logauswertung fertig ist packe ich sie in die Codeschnipsel.



Edit 26.03.2023: auf Basis dieses Beitrags  ist ein Codeschnipsel https://forum.fhem.de/index.php?topic=132856.0 entstanden.
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder