72_FRITZBOX: Sperren/Entsperren von Netzwerkgeräten / DECT Telefonen u weiteres

Begonnen von JoWiemann, 25 Januar 2021, 10:30:32

Vorheriges Thema - Nächstes Thema

Maista

Zitat von: RalfRog am 26 März 2023, 19:20:06
    • get <name> fritzLog table all => Tabelle nur Überschriften, ansonsten leer
    [/list]

    Bei meiner FB 6591 ebenfalls leer.
    Gruss Gerd

    Maista

    @JoWiemann

    Die Beschreibung der DOCSIS-Readings ist noch nicht komplett.
    Im Anhang alle Readings von meiner FB6591.

    Gruss und Danke
    Gerd

    JoWiemann

    Hallo,

    danke für die Rückmeldungen zur VERSION 07.50.10a. Leider kann ich mich erst am Mittwoch wieder darum kümmern, da ich dienstlich unterwegs bin.


    @Jamo, poste doch bitte einmal die Ausgabe von:

    get <name> dataLua xhr 1 lang de page log xhrId log filter sys

    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

    Hast du noch ne Version < 7.50 am Start?

    Unabhängig von @Jamo's 7.51er Problem kann ich dir wenn du brauchst ein komplettes:
    get <name> dataLua xhr 1 lang de page log xhrId log filter sys  => von der 7.29 geben.

    Es sieht ja fast so aus als müsste für get <name> fritzLog als Voraussetzung mindestens FRITZ!OS 7.50 genommen werden.

    Die VERSION 07.50.10 verhält sich an der Stelle natürlich genauso wie 07.50.10a.
    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

    Jamo

    Hallo Joerg,
    der Fehler mit dem Logfile ist nicht wieder aufgetreten, ich habe keine Ahnung was das war, und kann es auch nicht meht reproduzieren, weder mit VPN ueber Wireguard noch mit VPN ueber IPSEC.
    Ich habe oben meinen Eintrag oben korrigiert, es läuft alles. Danke!
    Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

    JoWiemann

    Zitat von: RalfRog am 26 März 2023, 22:28:40Hast du noch ne Version < 7.50 am Start?

    Es sieht ja fast so aus als müsste für get <name> fritzLog als Voraussetzung mindestens FRITZ!OS 7.50 genommen werden.


    Hallo,

    manchmal verstehe ich AVM nicht. Zwischen Fritz!OS 6.80 und 7.29 ist der Filter ein numerischer Wert von 0..5. Danach ein String all | sys | wlan | usb | net | fon. Auch die Änderung des Ergebnis JSON von Array Aufzählung 0,1,usw. zu Array [Objects,...] kann man so machen. Muss man aber nicht.

    Ich habe das jetzt auch für >= 6.80 implementiert. Getestet habe ich mit einer FB 7272, 6.80 und einer 7490 7.29. Die Beta 07.50.11 im Anhang.

    Wenn jemand das für < 6.80 verifizieren möchte, dann bitte einmal im Browser die Entwicklertools einschalten und nachsehen welche data.lua bei Ereignissen erzeugt wird. Die data.lua bei 6.80 & 7.29 sieht so aus:

    xhr:1 lang:de page:log xhrId:log filter:0 bis 5

    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

    JoWiemann

    Zitat von: Maista am 26 März 2023, 21:02:06@JoWiemann

    Die Beschreibung der DOCSIS-Readings ist noch nicht komplett.
    Im Anhang alle Readings von meiner FB6591.

    Gruss und Danke
    Gerd

    Hallo Gerd,

    danke. Kommt dann mit der nächsten Version.

    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

    Zitat von: JoWiemann am 29 März 2023, 13:44:32....manchmal verstehe ich AVM nicht. Zwischen Fritz!OS 6.80 und 7.29 ist der Filter ein numerischer Wert von 0..5. Danach ein String all | sys | wlan | usb | net | fon. Auch die Änderung des Ergebnis JSON von Array Aufzählung 0,1,usw. zu Array [Objects,...] kann man so machen. Muss man aber nicht....

    Das ist wohl wahr


    Du hast es ja schon in der Kombi 7490/7.29 geprüft.
    Ich geb dir noch ne Zweitmeinung für 7490 und 7430 unter 7.29


    BTW. wenn du mal zum Thema Telegram Message schauen magst https://forum.fhem.de/index.php?msg=1269628 (Hoffe der Maintainer meldet sich, oder du hast ne Vorstellung von: Modul FRITZBOX  ruft via Sub eine weiteres Modul TelegramBot auf).
    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 29 März 2023, 14:18:22BTW. wenn du mal zum Thema Telegram Message schauen magst https://forum.fhem.de/index.php?msg=1269628 (Hoffe der Maintainer meldet sich, oder du hast ne Vorstellung von: Modul FRITZBOX  ruft via Sub eine weiteres Modul TelegramBot auf).

    Hallo Ralf,

    das mit Telegram schau ich mir die Tage mal an.

    Anbei noch eine neue Beta. Da war noch ein Fehler mit 6.80.

    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

    Uhhhhh  wollte gerade antworten

    Tabellen haben geklappt aber auf der 7590 mit 7.50 scheint "box_sys_LogNewest" auf "none" zu hängen.
    (für 7.29 kriege ich noch "no hash Reference" => ist ja der Struktr der Daten geschuldet da ich in der myUtils von einem hash am Ende ausgehe)

    Ich fang nochmal an...
    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 29 März 2023, 17:20:46Uhhhhh  wollte gerade antworten

    Tabellen haben geklappt aber auf der 7590 mit 7.50 scheint "box_sys_LogNewest" auf "none" zu hängen.
    (für 7.29 kriege ich noch "no hash Reference" => ist ja der Struktr der Daten geschuldet da ich in der myUtils von einem hash am Ende ausgehe)

    Ich fang nochmal an...

    Dann besser mit der Version. Für sys und fon habe ich beim Härten der Validität komplett gehärtet...

    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

    aarrrrgggh schon wieder..  habe gerade Tests durch...  mach dann nochmal - aber nicht heute.

    VERSION  07.50.11a Beta  leider nicht die Letzte

    Fazit: die *Newest sind nicht alle sauber
    Schau  mal rein wegen deiner weiteren Korrekturen. Aber für fon und sys hört es sich na Änderung an.
    Bevor ich teste schau ich dann erst ob es eine weitere Korrektur gibt.

    • Hochlauf nach shutdown Restart ohne error & warnings.

    • Tests 7430 (per VPN) mit 7.29
    disable = 0
    table sys   => Tabelle wird angezeigt
    table fon   => Tabelle wird angezeigt
    table wlan  => leer -> log ist auch leer

    box_fon_LogNewest  none   => obwohl fon 1 Eintrag
    box_sys_LogNewest  504 29.03.23 21:58:45
    box_wlan_LogNewest none  => keine Einträge in Log

    get fritzlog hash sys
    retStat_fritzLogExPost ->ERROR: Not a HASH reference at ./FHEM/99_myUtils.pm line 86.   => vermutlich ok da array und ich auf den key time zugreife
    retStat_fritzLogInfo done




    • Tests 7490 MeshClient mit 7.29
    disable = 0
    table sys   => Tabelle wird angezeigt
    table fon   => leer -> log ist auch leer
    table wlan  => Tabelle wird angezeigt

    box_fon_LogNewest  none  => keine Einträge in Log
    box_sys_LogNewest  500 29.03.23 22:14:20
    box_wlan_LogNewest 786 29.03.23 08:20:10

    get fritzlog hash sys
    retStat_fritzLogExPost ->ERROR: Not a HASH reference at ./FHEM/99_myUtils.pm line 86.   => vermutlich ok da array und ich auf den key time zugreife
    retStat_fritzLogInfo done




    • Tests 7590 MeshMaster  mit 7.50
    disable = 0
    table sys   => Tabelle wird angezeigt
    table fon   => Tabelle wird angezeigt
    table wlan  => Tabelle wird angezeigt

    box_fon_LogNewest  none   => letzter Eintrag fehlt den gibt es lt. table
    box_sys_LogNewest  none   => letzter Eintrag fehlt den gibt es lt. table
    box_wlan_LogNewest 674 29.03.23 08:35:10    =>  passt

    get fritzlog hash sys
    retStat_fritzLogExPost 5xx gefunden (habe de Parameter beim Return angepasst)
    retStat_fritzLogInfo   done
    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 29 März 2023, 14:18:22BTW. wenn du mal zum Thema Telegram Message schauen magst https://forum.fhem.de/index.php?msg=1269628 (Hoffe der Maintainer meldet sich, oder du hast ne Vorstellung von: Modul FRITZBOX  ruft via Sub eine weiteres Modul TelegramBot auf).

    Hallo,

    könntest Du mir Deinen Code zukommen lassen. Dann könnte einfach 1:1 bei mir testen. Ich habe in keiner Sub, auch nicht in der myUtilsFritzLogExPost, ein Problem mit Telegram.

    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

    Hi zu Testen komm ich heute Abend.

    Hier  der Code (nur die (deine) Sub)) im Prinzip identisch zu den Codeschnipseln.

    Es geht um die Zeile 79 - 81 => analog zu allen 3 Varianten habe ich das in anderen Subs aktiv am Laufen.

    Die drei Varianten zum Test - aktuell Mail (Zl 79) aktiv:
       fhem("msg mail  $name $logidx1->{id} IntruderCheck: $logidx1->{msg}",1);       # Alternative, da msg push hängt       
    #  fhem("msg push -1 IntruderCheck: IntruderCheck: $logidx1->{msg}",1);           # hier geht es aus irgendeinem Grund nicht
    #  fhem("set teleBot message @#UserName IntruderCheck $logidx1->{id}  $logidx1->{msg}",1);   # Alternative TeleBot direkt statt über msg


    ############
    ## Fritzbox-Log auswerten  nonblocking     ######
    ### fester Name der Sub "myUtilsFritzLogExPost" fuer Modul FritzBox
    ### mit der Funtion get <name> fritzLog <hash | table> <all | sys | wlan | usb | net | fon>
    ###
    sub myUtilsFritzLogExPost($$$) {
      my ($hash, $filter, $result) = @_;

      my $name = $hash->{NAME};

      if(defined $result->{Error}) {
        Log3 $name, 2, "$name ERROR: fritzLogInfo: " . $result->{Error};
        return $result->{Error};
      }

    ### zur Ueberprüfung wird hier per Funktion Dumper mal das ganze Ergebnis ausgegeben ###
    ### wenn nicht mehr nötig auskommentieren, oder ich setzt es mir auf debuglevel4     ###
      Log3 $name, 4, "$name INFO: fritzLogInfo: \n" . Dumper $result;

    ### hier wird - ist sinnvoll!- geloggt welche Loginfo abgefragt wurde                ###
    ### eingefügt return "keine Auswertung auf diesen Filter"                            ###
    ###        für Parameter Filter die nicht ausgewertet werden                         ###
    ### hier zunächst nur sys, wlan                                                      ###
      if ($filter eq "all") {
        Log3 $name, 2, "$name INFO: fritzLog Filter: all";
        return "keine Auswertung auf diesen Filter";

      } elsif ($filter eq "sys") {
        Log3 $name, 2, "$name INFO: fritzLog Filter: sys";

      } elsif ($filter eq "wlan") {
        Log3 $name, 2, "$name INFO: fritzLog Filter: wlan";

      } elsif ($filter eq "usb") {
        Log3 $name, 2, "$name INFO: fritzLog Filter: usb";
        return "keine Auswertung auf diesen Filter";

      } elsif ($filter eq "net") {
        Log3 $name, 2, "$name INFO: fritzLog Filter: net";
        return "keine Auswertung auf diesen Filter";

      } elsif ($filter eq "fon") {
        Log3 $name, 2, "$name INFO: fritzLog Filter: fon";
        return "keine Auswertung auf diesen Filter";

      } else {
        Log3 $name, 2, "$name INFO: fritzLog Filter: wrong filter";
        return "keine Auswertung auf diesen Filter";
      }

    #zu debug zwecken wg msg
    # Log3 $name, 2, "$name Test TelegramBot";
    # my $text = "TEST";
    # fhem "msg push |Taegliches DB-Backup| $text" ;
    # fhem("msg push  Filter abgeprueft nun danach Return",1);
    # return "TeleBot Test";
    # fhem("set teleBot message @#FHEM-Sicherheit Filter abgeprueft nun Hash auswerten",1);
    # fhem("set teleBot message \@#FHEM-Sicherheit Filter abgeprueft nun Hash auswerten");

    # so gehts! mit dem Referenzieren auf die Arrays und Hashes
    # my $logidx1 = $result->{data}->{log};   #Referenz auf das ARRAY log in foreach (@{ $result -> {data} -> {log} })
    # direkter Wert $wert = $result->{data}->{log}->[Array 0 bis N]->{msg}; entsprechend n der Zeilen im Fritzbox-Log

    ### Ab hier Auswertung auf bestimmte Einträge                                        ###
    #     Debug $filter;
    my $boxread = "box_sys_LogNewest"  if ($filter eq "sys");           # wenn Filter = sys  OldReading box_sys_LogLast  auslesen
       $boxread = "box_wlan_LogNewest" if ($filter eq "wlan");          # wenn Filter = wlan OldReading box_wlan_LogLast auslesen
    my ($readId,$readDate,$readTime) =  split(' ',OldReadingsVal($name,$boxread,""));  # Zeit des Logeintrages = readTime
    Log3 $name, 2, "$name INFO: OldReading Time: $readTime";

         foreach my $logidx1 (@{$result->{data}->{log}}) {             # alle Elemente im Array durchgehen
    #     Debug $logidx1;

             if ($logidx1->{time} ne $readTime){                       # Element im Array untersuchen wenn "neue" Zeit
    #     Debug $logidx1->{time};

                 if ($logidx1->{id} eq 501||$logidx1->{id} eq 503||$logidx1->{id} eq 505||$logidx1->{id} eq 510) {           # 505 User und falsches Kennwort oder 501, 503, 510
                     Log3 $name, 2, "$name IntruderCheck: $logidx1->{msg}";
                     fhem("msg mail  $name $logidx1->{id} IntruderCheck: $logidx1->{msg}",1);       # Alternative, da msg push hängt       
    #                 fhem("msg push -1 IntruderCheck: IntruderCheck: $logidx1->{msg}",1);           # hier geht es aus irgendeinem Grund nicht
    #                 fhem("set teleBot message @#FHEM-Sicherheit IntruderCheck $logidx1->{id}  $logidx1->{msg}",1);   # Alternative TeleBot direkt statt über msg
                     return "Anmeldung gescheitert (5xx)";
                 }                                      # ende 2. if und -Schluss da id gefunden
     
                 elsif ($logidx1->{id} eq 689||$logidx1->{id} eq 705) {                              # 689 || 705  WLAN-Anmeldung  gescheitert
                     Log3 $name, 2, "$name WLAN-Einbruch: $logidx1->{msg}";
                     fhem("msg mail  $name $logidx1->{id} WLAN-Einbruch: $logidx1->{msg}",1);        # Alternative, da msg push hängt 
                     return "WLAN gescheitert";
                 }                                      # ende eslif von 2. if und -Schluss da id gefunden

             }                                          # ende 1. nächstes Array Element

             else { return "done no match in timewindow";}    # else des 1. if: alte Zeit erreicht daher  schon gesucht also Schluss

                                                        # nächstes Element im Array
         } # ende foreach

      return "done no match in Log";    ### und Schluss

    }                   ### Ende Sub
    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

    blueberry63

    Hallo,

    ich weiß, hier wird ja mächtig "umgebaut" und die RING-Töne funktionieren (noch) nicht. Sind also folgende Meldungen im LOG normal?

    Fritzbox 7490 mit 07.29 (latest Ver.)

    Can't use string ("1") as an ARRAY ref while "strict refs" in use at ./FHEM/72_FRITZBOX.pm line 4454.
    2023.03.30 14:27:20 1: FRITZBOX!7390 [WLANAP2: Set_Cmd_Aborted.3537] - INFO: Timeout reached for: ring 610 News 20 Alert
    Can't use string ("1") as an ARRAY ref while "strict refs" in use at ./FHEM/72_FRITZBOX.pm line 4454.
    2023.03.30 14:32:24 1: FRITZBOX!7390 [WLANAP2: Set_Cmd_Aborted.3537] - INFO: Timeout reached for: ring 610 News 20 Alert
    Can't use string ("1") as an ARRAY ref while "strict refs" in use at ./FHEM/72_FRITZBOX.pm line 4454.
    2023.03.30 14:37:30 1: FRITZBOX!7390 [WLANAP2: Set_Cmd_Aborted.3537] - INFO: Timeout reached for: ring 610 News 20 Alert
    Can't use string ("1") as an ARRAY ref while "strict refs" in use at ./FHEM/72_FRITZBOX.pm line 4454.
    2023.03.30 14:42:03 1: FRITZBOX!7390 [WLANAP2: Set_Cmd_Aborted.3537] - INFO: Timeout reached for: ring 610 News 20 Alert
    Can't use string ("1") as an ARRAY ref while "strict refs" in use at ./FHEM/72_FRITZBOX.pm line 4454.
    2023.03.30 14:47:04 1: FRITZBOX!7390 [WLANAP2: Set_Cmd_Aborted.3537] - INFO: Timeout reached for: ring 610 News 20 Alert

    Gruß
    Blueberry63
    FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower