Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. (solved) FRITZ!Box - Ereignisse bzw. Log auslesen

    NEWS

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    (solved) FRITZ!Box - Ereignisse bzw. Log auslesen

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      Megawaldi @gammler2003 last edited by

      @gammler2003
      Das sollte dir weiterhelfen:

      var lastQueryLog = undefined;
      
      async function getFritzboxLogs(){
          var command = {
              "service": "urn:dslforum-org:service:DeviceInfo:1",
              "action": "GetDeviceLog",
              "params": {"NewDeviceLog":""}
          };
      
          var commandID = 'tr-064.0.states.command'/*command*/;
          var commandResultID = 'tr-064.0.states.commandResult'/*commandResult*/;
          
          console.log( "Query Fritzbox Log");
      
          setState(commandID,JSON.stringify(command));
          var resultJSON = (await getStateAsync(commandResultID)).val;
          var resultObj = JSON.parse(resultJSON);
          var result = resultObj.NewDeviceLog;
          
          var resArray = result.split(/\r\n|\r|\n/);
          resArray.reverse();
      
          for(var msg of resArray){
              //console.log(msg);
              if (lastQueryLog != undefined && lastQueryLog.includes(msg)) {
                  console.log( "Alter Log: "+msg);
              } else {
      	        console.log("Neuer Log: "+msg);
      			// Hier muss dein Filter rein 
      			// sendMsgTo....
              }
          }
          lastQueryLog = resArray.slice();
      
      }
      
      
      schedule('*/3 * * * *', async function () {
          getFritzboxLogs();
      });
      getFritzboxLogs();
      
      G 1 Reply Last reply Reply Quote 0
      • G
        gammler2003 @Megawaldi last edited by

        @megawaldi genial, vielen Dank dir! Funktioniert auch soweit alles, bis auf dass ich beim Speichert/Neustart des Skripts direkt mehrere Telegramm-Benachrichtigungen erhalte. Gibt es eine Möglichkeit, dies beim Neustart des Skripts einmalig zu unterbinden?

        So sieht nun meine um die Telegramm-Benachrichtigung erweiterte Version:

        var lastQueryLog = undefined;
         
        async function getFritzboxLogs(){
            var command = {
                "service": "urn:dslforum-org:service:DeviceInfo:1",
                "action": "GetDeviceLog",
                "params": {"NewDeviceLog":""}
            };
         
            var commandID = 'tr-064.0.states.command'/*command*/;
            var commandResultID = 'tr-064.0.states.commandResult'/*commandResult*/;
            
            console.log( "Query Fritzbox Log");
         
            setState(commandID,JSON.stringify(command));
            var resultJSON = (await getStateAsync(commandResultID)).val;
            var resultObj = JSON.parse(resultJSON);
            var result = resultObj.NewDeviceLog;
            
            var resArray = result.split(/\r\n|\r|\n/);
            resArray.reverse();
         
            for(var msg of resArray){
                //console.log(msg);
                if (lastQueryLog != undefined && lastQueryLog.includes(msg)) {
                   //console.log( "Alter Log: "+msg);
                } else {
        	        //console.log("Neuer Log: "+msg);
        			// Hier muss dein Filter rein 
        			// sendMsgTo....
                    if (msg.includes('Internetverbindung wurde getrennt') == true)
                    {
                        var text = "Fritz! DSL Verbindung getrennt";
                        telegram (text);
                    }
                }
            }
            lastQueryLog = resArray.slice();
         
        }
         
         
        schedule('*/3 * * * *', async function () {
            getFritzboxLogs();
        });
        getFritzboxLogs();
        
        
        M 1 Reply Last reply Reply Quote 0
        • M
          Megawaldi @gammler2003 last edited by

          @gammler2003
          Du kannst die Zeile 46 rausnehmen. Dann wird es nicht sofort beim Neustart ausgeführt. Aber beim ersten Durchlauf wird immer das ganze log als "neu" betrachtet. Danach nur noch die Logs die vorher noch nicht da waren...

          Q 1 Reply Last reply Reply Quote 1
          • Q
            quotschmacher @Megawaldi last edited by

            @megawaldi oder halt einfach ne bool-variable mit rein die dann beim ersten durchlauf eben nicht gesetzt ist, log wird quasi ignoriert und dann wird die variable gesetzt und das log ausgewertet.

            M 1 Reply Last reply Reply Quote 1
            • M
              Megawaldi @quotschmacher last edited by

              @quotschmacher
              Das muste mir nicht sagen. Ich wollte explizit, das beim ersten Durchgang alle Logs als neu betrachtet werden.

              G 1 Reply Last reply Reply Quote 1
              • G
                gammler2003 @Megawaldi last edited by

                Vielen Dank für eure Rückmeldungen!

                M 1 Reply Last reply Reply Quote 0
                • M
                  moeff @gammler2003 last edited by

                  Hi,

                  das selbe suche ich für Ereignisse im Log für VPN "hergestellt" "getrennt" - gibt es hierzu ein gewisses DeviceQuery?

                  Grüße Marco

                  1 Reply Last reply Reply Quote 0
                  • R
                    reinhard-boehm last edited by

                    @moeff sagte in (solved) FRITZ!Box - Ereignisse bzw. Log auslesen:

                    DeviceQuery

                    Ich möchte auf dem oben beschriebenen Weg einen "Login" überwachen.
                    Welchen Befehl muss ich dann in den 'Command' in 'tr-064-ioBroker absetzen?

                    Gibt es eine Übersicht der möglichen Befehle ?
                    SuFu hat mir nichts gebracht.

                    iobroker_Rainer 1 Reply Last reply Reply Quote 0
                    • iobroker_Rainer
                      iobroker_Rainer @reinhard-boehm last edited by

                      @reinhard-boehm ... schau mal hier https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/AVM_TR-064_first_steps.pdf.
                      Ich denke, da wirst du fündig ...

                      R 1 Reply Last reply Reply Quote 0
                      • R
                        reinhard-boehm @iobroker_Rainer last edited by reinhard-boehm

                        @iobroker_rainer Super, Danke.

                        Ich komme trotzdem nicht weiter.
                        Diese Meldung ( von einem externem falschen User ) möchte ich sofort wissen:

                        01.02.23 11:45:42
                        Anmeldung des Benutzers hse an der FRITZ!Box-Benutzeroberfläche von IP-Adresse 2.57.121.75 gescheitert (falsches Kennwort). [2 Meldungen seit 01.02.23 06:50:48]

                        Ich bekomme es nicht in "commandResultID" geschrieben 😞

                        1 Reply Last reply Reply Quote 0
                        • iobroker_Rainer
                          iobroker_Rainer last edited by iobroker_Rainer

                          hmmm. Ist der tr-064-Adapter für diese Fritzbox richtig konfiguriert? Gibt es IRGENDEIN Kommando, was ein plausibles Ergebnis liefert in commandresult? Versuch mal, das in command einzutragen. Was bekommst Du als Ergebnis?

                          {
                          "service": "urn:dslforum-org:service:DeviceInfo:1",
                          "action": "GetDeviceLog",
                          "params": {}
                          }

                          R 1 Reply Last reply Reply Quote 0
                          • R
                            reinhard-boehm @iobroker_Rainer last edited by reinhard-boehm

                            @iobroker_rainer Hallo Rainer,
                            ich bekomme dann:

                            {
                            "NewDeviceLog": "01.02.23 05:45:54 Internetverbindung wurde erfolgreich hergestellt. IP-Adresse: 87.122.217.243, DNS-Server: 62.220.18.8 und 89.246.64.8, Gateway: 62.214.63.87, Breitband-PoP: dor1901aihr001, LineID:1UND1.DEU.NETCO.291692\n01.02.23 05:45:52 IPv6-Präfix wurde erfolgreich bezogen. Neues Präfix: 2001:16b8:a89:3a00::/56\n01.02.23 05:45:52 Internetverbindung IPv6 wurde erfolgreich hergestellt. IP-Adresse: 2001:16b8:b00:76fc:e228:6dff:fefc:f48c\n01.02.23 05:45:47 Internetverbindung wurde getrennt.\n01.02.23 05:45:47 Internetverbindung IPv6 wurde getrennt, Präfix nicht mehr gültig.\n01.02.23 05:45:43 Die Internetverbindung wird kurz unterbrochen, um der Zwangstrennung durch den Anbieter zuvorzukommen.\n31.01.23 16:58:59 Internettelefonie mit +498004763803 über Versatel.de war nicht erfolgreich. Ursache: Decline (603)\n31.01.23 10:40:29 Internettelefonie mit +498004763803 über Versatel.de war nicht erfolgreich. Ursache: Decline (603)\n31.01.23 05:46:54 Internetverbindung wurde erfolgreich hergestellt. IP-Adresse: 87.122.211.50, DNS-Server: 62.220.18.8 und 89.246.64.8, Gateway: 62.214.63.87, Breitband-PoP: dor1901aihr001, LineID:1UND1.DEU.NETCO.291692\n31.01.23 05:46:52 IPv6-Präfix wurde erfolgreich bezogen. Neues Präfix: 2001:16b8:a75:e700::/56\n31.01.23 05:46:52 Internetverbindung IPv6 wurde erfolgreich hergestellt. IP-Adresse: 2001:16b8:b03:ea80:e228:6dff:fefc:f48c\n31.01.23 05:46:47 Internetverbindung wurde getrennt.\n31.01.23 05:46:47 Internetverbindung IPv6 wurde getrennt, Präfix nicht mehr gültig.\n31.01.23 05:46:43 Die Internetverbindung wird kurz unterbrochen, um der Zwangstrennung durch den Anbieter zuvorzukommen."
                            }

                            Da sind aber keine Anmeldeversuche drin.

                            Möglicherweise kann der TR064-Adapter nicht alle Daten aus den LogFiles auslesen, die FritzBox gibt sie aber her. Schade.

                            iobroker_Rainer 1 Reply Last reply Reply Quote 0
                            • iobroker_Rainer
                              iobroker_Rainer @reinhard-boehm last edited by

                              @reinhard-boehm ... das ist wirklich eigenartig, Reinhard. Kann tatsächlich sein, dass nicht alles in das Log-file reingeschrieben wird. An der Stelle kann ich dann leider nicht weiterhelfen 😞

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              775
                              Online

                              31.6k
                              Users

                              79.5k
                              Topics

                              1.3m
                              Posts

                              blockly
                              6
                              21
                              10752
                              Loading More Posts
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes
                              Reply
                              • Reply as topic
                              Log in to reply
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                              The ioBroker Community 2014-2023
                              logo