Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. [gelöst] - Zabbix (FritzBox etc.)

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.1k

[gelöst] - Zabbix (FritzBox etc.)

Geplant Angeheftet Gesperrt Verschoben Off Topic
42 Beiträge 7 Kommentatoren 4.7k Aufrufe 8 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • CodierknechtC Offline
    CodierknechtC Offline
    Codierknecht
    Developer Most Active
    schrieb am zuletzt editiert von Codierknecht
    #20

    Wenn jemand hierzu noch Input liefern kann: Jederzeit gerne!

    Unter der Adresse http://192.168.178.1:49000/tr64desc.xml lässt sich der Fritte eine Liste der unterstützten Services entlocken.
    Nur bei diesen bekomme ich allerdings ein Ergebnis:

    • urn:schemas-upnp-org:service:WANIPConnection:1#GetStatusInfo
    • urn:schemas-upnp-org:service:WANIPConnection:1#GetConnectionTypeInfo
    • urn:schemas-upnp-org:service:WANIPConnection:1#GetExternalIPAddress
    • urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1#GetCommonLinkProperties
    • urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1#GetTotalBytesReceived
    • urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1#GetTotalBytesSent

    Bei allen anderen Service bin ich bislang gescheitert und erhalte lediglich einen HTTP 500 - Internal server error zurück.
    Dabei ist es egal, ob ich das über http mit Port 49000 oder mit https über Port 49443 (langsamer) versuche.
    Auch muss der URL zu den Service mittlerweile /igdupnp/ lauten und nicht wie in fast allen Dokus /upnp/.

    Edit
    Scheint so, als käme man nicht so ohne Weiteres einfach nur mit Benutzername/Kennwort an die gewünschten Informationen.
    https://www.msxfaq.de/tools/prtg/getfritzmactable.htm
    Das Ganze muss dann in mehreren Schritten über Authenticate: Digest laufen.
    Habe ich allerdings bislang noch nicht zum Fliegen gebracht. Ich wüsste jetzt auch gar nicht wie ich Zabbix sowas beibringen könnte.

    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

    Proxmox 9.1.1 LXC|8 GB|Core i7-6700
    HmIP|ZigBee|Tasmota|Unifi
    Zabbix Certified Specialist
    Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

    BananaJoeB 1 Antwort Letzte Antwort
    0
    • CodierknechtC Codierknecht

      Wenn jemand hierzu noch Input liefern kann: Jederzeit gerne!

      Unter der Adresse http://192.168.178.1:49000/tr64desc.xml lässt sich der Fritte eine Liste der unterstützten Services entlocken.
      Nur bei diesen bekomme ich allerdings ein Ergebnis:

      • urn:schemas-upnp-org:service:WANIPConnection:1#GetStatusInfo
      • urn:schemas-upnp-org:service:WANIPConnection:1#GetConnectionTypeInfo
      • urn:schemas-upnp-org:service:WANIPConnection:1#GetExternalIPAddress
      • urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1#GetCommonLinkProperties
      • urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1#GetTotalBytesReceived
      • urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1#GetTotalBytesSent

      Bei allen anderen Service bin ich bislang gescheitert und erhalte lediglich einen HTTP 500 - Internal server error zurück.
      Dabei ist es egal, ob ich das über http mit Port 49000 oder mit https über Port 49443 (langsamer) versuche.
      Auch muss der URL zu den Service mittlerweile /igdupnp/ lauten und nicht wie in fast allen Dokus /upnp/.

      Edit
      Scheint so, als käme man nicht so ohne Weiteres einfach nur mit Benutzername/Kennwort an die gewünschten Informationen.
      https://www.msxfaq.de/tools/prtg/getfritzmactable.htm
      Das Ganze muss dann in mehreren Schritten über Authenticate: Digest laufen.
      Habe ich allerdings bislang noch nicht zum Fliegen gebracht. Ich wüsste jetzt auch gar nicht wie ich Zabbix sowas beibringen könnte.

      BananaJoeB Online
      BananaJoeB Online
      BananaJoe
      Most Active
      schrieb am zuletzt editiert von
      #21

      @codierknecht Als Item kann man ein Script benutzen - das ist dann ein JavaScript wo du das dann so ähnlich wie in ioBroker machen kannst, also erst Anmelden und dann mit dem Token die daten holen.
      Irgendwo gibt es ein Beispiel dafür ... ich meine bei HPE Storage per API

      ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

      1 Antwort Letzte Antwort
      0
      • CodierknechtC Offline
        CodierknechtC Offline
        Codierknecht
        Developer Most Active
        schrieb am zuletzt editiert von Codierknecht
        #22

        @BananaJoe Der Tipp war Gold wert :-D

        Falls es jemanden interessiert:
        Ich hab's jetzt hinbekommen, über die TR-064 Schnittstelle der Fritte auch geschützte Daten auszulesen.

        const axios = require('axios');
        const crypto = require('crypto');
        const xml = require('xmldom');
        const parser = new xml.DOMParser();
        
        async function getForwardedPortsCount(username, password) {
        
            const requestHeader = {
                'Content-Type': 'text/xml; charset="utf-8"',
                'SoapAction': 'urn:dslforum-org:service:Layer3Forwarding:1' + '#' + 'GetForwardNumberOfEntries'
            };
            
            var requestBody = '<?xml version="1.0" encoding="utf-8"?>' +
            '<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">' +
            '    <s:Header>' +
            '        <h:InitChallenge xmlns:h="http://soap-authentication.org/digest/2001/10/" s:mustUnderstand="1">' +
            '            <UserID>' + username + '</UserID>' +
            '        </h:InitChallenge>' +
            '    </s:Header>' +
            '    <s:Body>' +
            '        <u:' + 'GetForwardNumberOfEntries' + ' xmlns:u="' + 'urn:dslforum-org:service:Layer3Forwarding:1' + '" />' +
            '    </s:Body>' +
            '</s:Envelope>';
        
            // Initialize challenge with Fritz!Box
            var uri = 'http://' + '192.168.178.1' + ':49000' + '/upnp/control/layer3forwarding';
            var response = await axios.post(uri, requestBody, { headers: requestHeader });
        
            // Calculate authentication
            var doc = parser.parseFromString(response.data, 'text/xml');
            const nonce = doc.getElementsByTagName('Nonce')[0].childNodes[0].nodeValue;
            const realm = doc.getElementsByTagName('Realm')[0].childNodes[0].nodeValue;
            const secret = crypto.createHash('md5').update(username + ':' + realm + ':' + password).digest('hex');
            const auth = crypto.createHash('md5').update(secret + ':' + nonce).digest('hex');
        
            // Get values with authentication
            requestBody = '<?xml version="1.0" encoding="utf-8"?>' +
            '<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">' +
            '    <s:Header>' +
            '        <h:ClientAuth xmlns:h="http://soap-authentication.org/digest/2001/10/" s:mustUnderstand="1">' +
            '            <Nonce>' + nonce + '</Nonce>' +
            '            <Auth>' + auth + '</Auth>' +
            '            <UserID>' + username + '</UserID>' +
            '            <Realm>' + realm + '</Realm>' +
            '        </h:ClientAuth>' +
            '    </s:Header>' +
            '    <s:Body>' +
            '        <u:' + 'GetForwardNumberOfEntries' + ' xmlns:u="' + 'urn:dslforum-org:service:Layer3Forwarding:1' + '" />' +
            '    </s:Body>' +
            '</s:Envelope>';
        
            response = await axios.post(uri, requestBody, { headers: requestHeader });
        
            // return result
            var doc = parser.parseFromString(response.data, 'text/xml');
            const ports = doc.getElementsByTagName('NewForwardNumberOfEntries')[0].childNodes[0].nodeValue;
            return(ports);
        
        }
        

        Allerdings erst einmal nur direkt im ioBroker und nicht als Zabbix-Script-Item.
        Das liefert mir blöderweise beim POST-Request einen 404 :-(
        Alles was ich dort mit GET-Requests mache, funktioniert tadellos.
        Warum GET funktioniert und POST nicht, ist mir (noch) schleierhaft.

        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

        Proxmox 9.1.1 LXC|8 GB|Core i7-6700
        HmIP|ZigBee|Tasmota|Unifi
        Zabbix Certified Specialist
        Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

        CodierknechtC 1 Antwort Letzte Antwort
        2
        • CodierknechtC Codierknecht

          @BananaJoe Der Tipp war Gold wert :-D

          Falls es jemanden interessiert:
          Ich hab's jetzt hinbekommen, über die TR-064 Schnittstelle der Fritte auch geschützte Daten auszulesen.

          const axios = require('axios');
          const crypto = require('crypto');
          const xml = require('xmldom');
          const parser = new xml.DOMParser();
          
          async function getForwardedPortsCount(username, password) {
          
              const requestHeader = {
                  'Content-Type': 'text/xml; charset="utf-8"',
                  'SoapAction': 'urn:dslforum-org:service:Layer3Forwarding:1' + '#' + 'GetForwardNumberOfEntries'
              };
              
              var requestBody = '<?xml version="1.0" encoding="utf-8"?>' +
              '<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">' +
              '    <s:Header>' +
              '        <h:InitChallenge xmlns:h="http://soap-authentication.org/digest/2001/10/" s:mustUnderstand="1">' +
              '            <UserID>' + username + '</UserID>' +
              '        </h:InitChallenge>' +
              '    </s:Header>' +
              '    <s:Body>' +
              '        <u:' + 'GetForwardNumberOfEntries' + ' xmlns:u="' + 'urn:dslforum-org:service:Layer3Forwarding:1' + '" />' +
              '    </s:Body>' +
              '</s:Envelope>';
          
              // Initialize challenge with Fritz!Box
              var uri = 'http://' + '192.168.178.1' + ':49000' + '/upnp/control/layer3forwarding';
              var response = await axios.post(uri, requestBody, { headers: requestHeader });
          
              // Calculate authentication
              var doc = parser.parseFromString(response.data, 'text/xml');
              const nonce = doc.getElementsByTagName('Nonce')[0].childNodes[0].nodeValue;
              const realm = doc.getElementsByTagName('Realm')[0].childNodes[0].nodeValue;
              const secret = crypto.createHash('md5').update(username + ':' + realm + ':' + password).digest('hex');
              const auth = crypto.createHash('md5').update(secret + ':' + nonce).digest('hex');
          
              // Get values with authentication
              requestBody = '<?xml version="1.0" encoding="utf-8"?>' +
              '<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">' +
              '    <s:Header>' +
              '        <h:ClientAuth xmlns:h="http://soap-authentication.org/digest/2001/10/" s:mustUnderstand="1">' +
              '            <Nonce>' + nonce + '</Nonce>' +
              '            <Auth>' + auth + '</Auth>' +
              '            <UserID>' + username + '</UserID>' +
              '            <Realm>' + realm + '</Realm>' +
              '        </h:ClientAuth>' +
              '    </s:Header>' +
              '    <s:Body>' +
              '        <u:' + 'GetForwardNumberOfEntries' + ' xmlns:u="' + 'urn:dslforum-org:service:Layer3Forwarding:1' + '" />' +
              '    </s:Body>' +
              '</s:Envelope>';
          
              response = await axios.post(uri, requestBody, { headers: requestHeader });
          
              // return result
              var doc = parser.parseFromString(response.data, 'text/xml');
              const ports = doc.getElementsByTagName('NewForwardNumberOfEntries')[0].childNodes[0].nodeValue;
              return(ports);
          
          }
          

          Allerdings erst einmal nur direkt im ioBroker und nicht als Zabbix-Script-Item.
          Das liefert mir blöderweise beim POST-Request einen 404 :-(
          Alles was ich dort mit GET-Requests mache, funktioniert tadellos.
          Warum GET funktioniert und POST nicht, ist mir (noch) schleierhaft.

          CodierknechtC Offline
          CodierknechtC Offline
          Codierknecht
          Developer Most Active
          schrieb am zuletzt editiert von
          #23

          @codierknecht
          @Garfonso @fastfoot
          Ich hab' die Diskussion aus Discord mal hier weitergetrieben.
          Hier kriegen das mehr User mit ... falls es wen interessiert.

          Das "fehlerhafte" Script in Zabbix sieht so aus:

          const params = JSON.parse(value);
          
          const requestBody = '<?xml version="1.0" encoding="utf-8"?>' +
          '<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">' +
          '    <s:Header>' +
          '        <h:InitChallenge xmlns:h="http://soap-authentication.org/digest/2001/10/" s:mustUnderstand="1">' +
          '            <UserID>' + params.username + '</UserID>' +
          '        </h:InitChallenge>' +
          '    </s:Header>' +
          '    <s:Body>' +
          '        <u:' + params.action + ' xmlns:u="' + params.urn + '" />' +
          '    </s:Body>' +
          '</s:Envelope>';
          
          const action = params.urn + '#' + params.action;
          
          // Initialize challenge with Fritz!Box
          var url = 'http://' + params.ip + ':49000' + params.url;
          const request = new HttpRequest();
          request.addHeader('Content-Type', 'text/xml; charset="utf-8"');
          request.addHeader('SoapAction', action);
          var response = request.post(url, requestBody);
          
          return JSON.stringify(response);
          

          Der POST-Request liefert ein 404.
          Teste ich das mit einem GET gegen die Fritte (z.B. http://192.168.178.1:49000/tr64desc.xml), funktioniert das einwandfrei ... auch mit Port 49000.

          Wenn ich den hier verwendeten Header und den URL in Postman einsetze, funktioniert das auch problemlos.

          e6711c35-7202-40db-a29d-5648b80c557a-image.png

          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

          Proxmox 9.1.1 LXC|8 GB|Core i7-6700
          HmIP|ZigBee|Tasmota|Unifi
          Zabbix Certified Specialist
          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

          1 Antwort Letzte Antwort
          0
          • CodierknechtC Offline
            CodierknechtC Offline
            Codierknecht
            Developer Most Active
            schrieb am zuletzt editiert von
            #24

            Ich habe mir mal einen kleinen Test-Service gebaut, der bei gleichem Endpunkt & Port sowohl auf GET als auch auf POST horcht.
            Ergebnis: Funktioniert einwandfrei.
            Es ist also nicht Zabbix, das hier das Problem verursacht, sondern die Fritte selbst.
            Irgend etwas fehlt bei meinem Request oder ist falsch.

            Bin für jede Idee zu haben ...

            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

            Proxmox 9.1.1 LXC|8 GB|Core i7-6700
            HmIP|ZigBee|Tasmota|Unifi
            Zabbix Certified Specialist
            Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

            arteckA 1 Antwort Letzte Antwort
            0
            • CodierknechtC Codierknecht

              Ich habe mir mal einen kleinen Test-Service gebaut, der bei gleichem Endpunkt & Port sowohl auf GET als auch auf POST horcht.
              Ergebnis: Funktioniert einwandfrei.
              Es ist also nicht Zabbix, das hier das Problem verursacht, sondern die Fritte selbst.
              Irgend etwas fehlt bei meinem Request oder ist falsch.

              Bin für jede Idee zu haben ...

              arteckA Offline
              arteckA Offline
              arteck
              Developer Most Active
              schrieb am zuletzt editiert von
              #25

              @codierknecht dann nimm doch den GET

              zigbee hab ich, zwave auch, nuc's genauso und HA auch

              CodierknechtC 1 Antwort Letzte Antwort
              0
              • arteckA arteck

                @codierknecht dann nimm doch den GET

                CodierknechtC Offline
                CodierknechtC Offline
                Codierknecht
                Developer Most Active
                schrieb am zuletzt editiert von
                #26

                @arteck sagte in [gelöst] - Zabbix (FritzBox etc.):

                dann nimm doch den GET

                Das funktioniert nur bei meinem Test-Service.
                Die Fritte erwartet für TR-064 schon einen POST und einen entsprechenden body.

                6211c640-da5d-41ba-8d0f-2068b3c79151-image.png

                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                HmIP|ZigBee|Tasmota|Unifi
                Zabbix Certified Specialist
                Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                1 Antwort Letzte Antwort
                0
                • CodierknechtC Offline
                  CodierknechtC Offline
                  Codierknecht
                  Developer Most Active
                  schrieb am zuletzt editiert von
                  #27

                  Des Rätsels Lösung:

                  Die Header für den Request müssen so gesetzt werden:

                  request.setHeader('Content-Type: text/xml');
                  

                  und nicht so:

                  request.setHeader('Content-Type', 'text/xml');
                  

                  Dummerweise wirft die JS-Enginge von Zabbix hier keinen Fehler.

                  Es kann jetzt also an der Ecke weitergehen.
                  Als erstes soll ein Check auf die Portfreigaben eingerichtet werden.
                  Das Abfragen der Fritte über TR-064 ist nämlich deutlich schneller als der Kram über .../xyz.lua.

                  Was fällt euch so alles ein, was sich mit Zabbix an der Fritte monitoren lässt?

                  "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                  Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                  HmIP|ZigBee|Tasmota|Unifi
                  Zabbix Certified Specialist
                  Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                  BananaJoeB 1 Antwort Letzte Antwort
                  0
                  • CodierknechtC Codierknecht

                    Des Rätsels Lösung:

                    Die Header für den Request müssen so gesetzt werden:

                    request.setHeader('Content-Type: text/xml');
                    

                    und nicht so:

                    request.setHeader('Content-Type', 'text/xml');
                    

                    Dummerweise wirft die JS-Enginge von Zabbix hier keinen Fehler.

                    Es kann jetzt also an der Ecke weitergehen.
                    Als erstes soll ein Check auf die Portfreigaben eingerichtet werden.
                    Das Abfragen der Fritte über TR-064 ist nämlich deutlich schneller als der Kram über .../xyz.lua.

                    Was fällt euch so alles ein, was sich mit Zabbix an der Fritte monitoren lässt?

                    BananaJoeB Online
                    BananaJoeB Online
                    BananaJoe
                    Most Active
                    schrieb am zuletzt editiert von
                    #28

                    @codierknecht das Problem mit Zabbix ist ja das man manchmal einfach in eine Sammelwut verfällt. Ist zwar schön was man alles abrufen kann, aber ob man das braucht ...

                    Up- und Download Auslastung frage ich zum Beispiel meinen Switch hinter der Fritte per SNMP statt der Fritte selbst.

                    Trotzdem nehme ich nur zu gerne dann dein fertiges Template, zum einen als schönes Beispiel, zum anderen weil man das dann auch schön zeigen kann und die Leute damit etwas anfangen können.

                    Du kannst noch die DECT Geräte abfragen usw. Dann bist du irgendwann bei allem was der TR064 und/oder FritzDECT Adapter raussaugt, nur ohne steuern. Kannst dir ja bei den Adapter Inspiration holen.
                    Statistiken zur Verbindung / Fehlerrate werden auch immer gerne genommen. Wobei es da ja DSL, Glasfaser und LTE gäbe.

                    Das Muster-Template kann gerne alles herausholen was es gibt - man kann dann ja das deaktivieren was man nicht braucht bzw. das Template klonen und zusammenstreichen ...

                    ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                    1 Antwort Letzte Antwort
                    0
                    • CodierknechtC Offline
                      CodierknechtC Offline
                      Codierknecht
                      Developer Most Active
                      schrieb am zuletzt editiert von
                      #29

                      Der Vollständigkeit halber hier nun das komplette Script in Zabbix, um die Anzahl der Portweiterleitungen zu ermitteln:

                      const params = JSON.parse(value);
                      
                      var requestBody = '<?xml version="1.0" encoding="utf-8"?>' +
                      '<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">' +
                      '    <s:Header>' +
                      '        <h:InitChallenge xmlns:h="http://soap-authentication.org/digest/2001/10/" s:mustUnderstand="1">' +
                      '            <UserID>' + params.username + '</UserID>' +
                      '        </h:InitChallenge>' +
                      '    </s:Header>' +
                      '    <s:Body>' +
                      '        <u:' + params.action + ' xmlns:u="' + params.urn + '" />' +
                      '    </s:Body>' +
                      '</s:Envelope>';
                      
                      const action = params.urn + '#' + params.action;
                      
                      // Initialize challenge with Fritz!Box
                      var url = 'http://' + params.ip + ':49000' + params.url;
                      const request = new HttpRequest();
                      request.addHeader('Content-Type: text/xml; charset="utf-8"');
                      request.addHeader('User-Agent: AVM UPnP/1.0 Client 1.0');
                      request.addHeader('SoapAction: ' + action);
                      var response = request.post(url, requestBody);
                      
                      var statusCode = request.getStatus();
                      if (statusCode != 200) {
                          throw 'Error ' + statusCode + ' initializing authentication!';
                      } else {
                          // Calculate authentication
                          const nonce = XML.query(response, '//Nonce/text()');
                          const realm = XML.query(response, '//Realm/text()');
                          const secret = md5(params.username + ':' + realm + ':' + params.password);
                          const auth = md5(secret + ':' + nonce);
                      
                          // Get values with authentication
                          requestBody = '<?xml version="1.0" encoding="utf-8"?>' +
                          '<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">' +
                          '    <s:Header>' +
                          '        <h:ClientAuth xmlns:h="http://soap-authentication.org/digest/2001/10/" s:mustUnderstand="1">' +
                          '            <Nonce>' + nonce + '</Nonce>' +
                          '            <Auth>' + auth + '</Auth>' +
                          '            <UserID>' + params.username + '</UserID>' +
                          '            <Realm>' + realm + '</Realm>' +
                          '        </h:ClientAuth>' +
                          '    </s:Header>' +
                          '    <s:Body>' +
                          '        <u:' + params.action + ' xmlns:u="' + params.urn + '" />' +
                          '    </s:Body>' +
                          '</s:Envelope>';
                      
                          response = request.post(url, requestBody);
                          var statusCode = request.getStatus();
                          if (statusCode != 200) {
                              throw 'Error ' + statusCode + ' sending authenticated request!';
                          } else {
                              return(XML.query(response, 'number(//NewForwardNumberOfEntries/text())'));
                          }
                      }
                      

                      Die Parameter "ip", "username" und "password" sollten klar sein.
                      Was zusätzlich noch benötigt wird:
                      "action" = "GetForwardNumberOfEntries"
                      "url" = "/upnp/control/layer3forwarding"
                      "urn" = "urn:dslforum-org:service:Layer3Forwarding:1"

                      Jetzt werde ich nach und nach die Doku von AVM durchgehen, und sehen was da sinnvoll nutzbar ist.
                      Das Ganze werde ich dann als Template für Zabbix veröffentlichen.
                      Wie gesagt: Wer Vorschläge hat, darf die gerne äußern.

                      Aktueller Zwischenstand:
                      840cb744-a6b8-47c2-a467-1e6bae7c8a60-grafik.png

                      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                      HmIP|ZigBee|Tasmota|Unifi
                      Zabbix Certified Specialist
                      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                      1 Antwort Letzte Antwort
                      2
                      • CodierknechtC Offline
                        CodierknechtC Offline
                        Codierknecht
                        Developer Most Active
                        schrieb am zuletzt editiert von
                        #30

                        Here it is:

                        https://github.com/DEV2DEV-DE/zabbix-templates/blob/main/zbx_template_fritzbox.xml

                        04037cb0-8e7d-4c51-a4f1-9686c1042750-image.png

                        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                        Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                        HmIP|ZigBee|Tasmota|Unifi
                        Zabbix Certified Specialist
                        Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                        BananaJoeB 1 Antwort Letzte Antwort
                        1
                        • CodierknechtC Codierknecht

                          Here it is:

                          https://github.com/DEV2DEV-DE/zabbix-templates/blob/main/zbx_template_fritzbox.xml

                          04037cb0-8e7d-4c51-a4f1-9686c1042750-image.png

                          BananaJoeB Online
                          BananaJoeB Online
                          BananaJoe
                          Most Active
                          schrieb am zuletzt editiert von
                          #31

                          @codierknecht argh, Version 6.4. Da müsste ich noch eben warten bis 7.0 raus ist ... ich setze in dem Bereich nur die LTS-Versionen ein.

                          ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                          CodierknechtC 2 Antworten Letzte Antwort
                          0
                          • BananaJoeB BananaJoe

                            @codierknecht argh, Version 6.4. Da müsste ich noch eben warten bis 7.0 raus ist ... ich setze in dem Bereich nur die LTS-Versionen ein.

                            CodierknechtC Offline
                            CodierknechtC Offline
                            Codierknecht
                            Developer Most Active
                            schrieb am zuletzt editiert von
                            #32

                            @bananajoe sagte in [gelöst] - Zabbix (FritzBox etc.):

                            Version 6.4

                            Lässt sich das unter 6.0 importieren, wenn man einfach im XML die Versionsnummer runterdreht?
                            Oder hat sich zu 6.4 das Format maßgebend geändert?

                            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                            Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                            HmIP|ZigBee|Tasmota|Unifi
                            Zabbix Certified Specialist
                            Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                            BananaJoeB 1 Antwort Letzte Antwort
                            0
                            • CodierknechtC Codierknecht

                              @bananajoe sagte in [gelöst] - Zabbix (FritzBox etc.):

                              Version 6.4

                              Lässt sich das unter 6.0 importieren, wenn man einfach im XML die Versionsnummer runterdreht?
                              Oder hat sich zu 6.4 das Format maßgebend geändert?

                              BananaJoeB Online
                              BananaJoeB Online
                              BananaJoe
                              Most Active
                              schrieb am zuletzt editiert von
                              #33

                              @codierknecht Kollege testet gerade :-) Könnte reichen, ansonsten sagt er einem was ihn stört

                              ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                              1 Antwort Letzte Antwort
                              1
                              • CodierknechtC Offline
                                CodierknechtC Offline
                                Codierknecht
                                Developer Most Active
                                schrieb am zuletzt editiert von
                                #34

                                Wenn man einmal weiß wie es geht ... wer einen Hammer hat, sieht eine Welt voller Nägel :grinning:

                                Mittlerweile sind's > 80 Items ;-)
                                Obwohl so eine Fritte eigentlich recht "unkommunikativ" ist. Kein SNMP, kein Telnet, kein SSH.

                                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                                Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                                HmIP|ZigBee|Tasmota|Unifi
                                Zabbix Certified Specialist
                                Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                                1 Antwort Letzte Antwort
                                0
                                • BananaJoeB BananaJoe

                                  @codierknecht argh, Version 6.4. Da müsste ich noch eben warten bis 7.0 raus ist ... ich setze in dem Bereich nur die LTS-Versionen ein.

                                  CodierknechtC Offline
                                  CodierknechtC Offline
                                  Codierknecht
                                  Developer Most Active
                                  schrieb am zuletzt editiert von
                                  #35

                                  @bananajoe sagte in [gelöst] - Zabbix (FritzBox etc.):

                                  Da müsste ich noch eben warten bis 7.0 raus ist

                                  Just for info:
                                  7.0 LTS ist draußen ... :-D

                                  "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                                  Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                                  HmIP|ZigBee|Tasmota|Unifi
                                  Zabbix Certified Specialist
                                  Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                                  1 Antwort Letzte Antwort
                                  1
                                  • BananaJoeB Online
                                    BananaJoeB Online
                                    BananaJoe
                                    Most Active
                                    schrieb am zuletzt editiert von
                                    #36

                                    Was ist neu in Zabbix 7.0?
                                    https://www.youtube.com/watch?v=60Zy3bw-wOs

                                    ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                                    1 Antwort Letzte Antwort
                                    0
                                    • arteckA Offline
                                      arteckA Offline
                                      arteck
                                      Developer Most Active
                                      schrieb am zuletzt editiert von
                                      #37

                                      die honeycomb find ich cool

                                      zigbee hab ich, zwave auch, nuc's genauso und HA auch

                                      1 Antwort Letzte Antwort
                                      0
                                      • S Offline
                                        S Offline
                                        schittl
                                        schrieb am zuletzt editiert von schittl
                                        #38

                                        @Codierknecht

                                        Vielen Dank für das Template funktioniert 1a. Nur eins was mir dabei aufgefallen ist. Hat man den PushService aktiviert bekommt man alle x-Sekunden eine Nachricht. Ich verwende upnp schon mit fritzinfluxdb (https://github.com/bb-Ricardo/fritzinfluxdb) auf die gleiche Weise nur da bekommt man nur 1x ne Mail bei der Erstanmeldung/Neustart. Sicherlich der Unterschied in der Programmiersprache ;)

                                        Soll nur als Hinweis dienen und vielen Dank für deine Mühe.

                                        de586c74-b145-4027-a654-7899d181d18c-image.png

                                        HW: Lenovo M920q (Proxmox, ioBroker, RaspMatic & Z2M), QNAP (Docker, Influx), Arduino Mega 2560 R3 (I2C DS18B20 + LED)

                                        SW: CT IoBroker, VM RaspMatic(v3.79.6.20241122)

                                        CodierknechtC 1 Antwort Letzte Antwort
                                        0
                                        • S schittl

                                          @Codierknecht

                                          Vielen Dank für das Template funktioniert 1a. Nur eins was mir dabei aufgefallen ist. Hat man den PushService aktiviert bekommt man alle x-Sekunden eine Nachricht. Ich verwende upnp schon mit fritzinfluxdb (https://github.com/bb-Ricardo/fritzinfluxdb) auf die gleiche Weise nur da bekommt man nur 1x ne Mail bei der Erstanmeldung/Neustart. Sicherlich der Unterschied in der Programmiersprache ;)

                                          Soll nur als Hinweis dienen und vielen Dank für deine Mühe.

                                          de586c74-b145-4027-a654-7899d181d18c-image.png

                                          CodierknechtC Offline
                                          CodierknechtC Offline
                                          Codierknecht
                                          Developer Most Active
                                          schrieb am zuletzt editiert von
                                          #39

                                          @schittl sagte in [gelöst] - Zabbix (FritzBox etc.):

                                          bekommt man alle x-Sekunden eine Nachricht

                                          Das dürfte an Deiner Einstellung "Bei Anmeldungen von Apps ..." liegen.
                                          Es wird ja - je nach eingestelltem Intervall der Items - immer wieder eine Anmeldung an der Fritte durchgeführt.

                                          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                                          Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                                          HmIP|ZigBee|Tasmota|Unifi
                                          Zabbix Certified Specialist
                                          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                                          S 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          991

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe