Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

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

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    396

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

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

Scheduled Pinned Locked Moved Off Topic
42 Posts 7 Posters 5.5k Views 8 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • CodierknechtC Online
    CodierknechtC Online
    Codierknecht
    Developer Most Active
    wrote on last edited by
    #7

    Das was hier in PHP gemacht ist, sollte doch eigentlich auch in Zabbix mit JS gehen, oder?

    https://github.com/suptimal/zabbix-fritz.box-collector/blob/master/bin/get_status.php

    Dafür reichen meine JS-Skills aber noch nicht aus :-(

    "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 Reply Last reply
    0
    • CodierknechtC Codierknecht

      @martinp sagte in Zabbix (FritzBox etc.):

      Welche Fritzbox soll denn ausgewertet werden?

      7590 als Router an Glasfaser und 'ne 7430 als zusätzlicher AccessPoint.

      @martinp sagte in Zabbix (FritzBox etc.):

      Läuft direkt unter ioBroker und schreibt Datenpunkte

      Mit dem ioBroker komme ich natürlich an die Daten ... über TR-064 und UpNP.
      Aber ich will ja idealerweise direkt in Zabbix ohne zusätzliche Komponenten an die Daten kommen.

      MartinPM Online
      MartinPM Online
      MartinP
      wrote on last edited by
      #8

      @codierknecht Da ist das Skript natürlich von geringem Nutzen...
      Für die Boxen sollte es schon ausreichend Lösungen von der Stange geben, sodass man nicht mit selbst gedengeltem Javascript die Diagnose-Seiten der Fritzbox crawlen und auswerten muss...

      Habe meine Signatur etwas erweitert - spart solche Rückfragen, wenn man seine Signatur etwas umfangreicher macht ...

      Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
      Virtualization : unprivileged lxc container (debian 13) on Proxmox 9.1.5)
      Linux pve 6.17.9-1-pve
      6 GByte RAM für den Container
      Fritzbox 6591 FW 8.20 (Vodafone Leih-Box)
      Remote-Access über Wireguard der Fritzbox

      CodierknechtC Thomas BraunT 3 Replies Last reply
      0
      • MartinPM MartinP

        @codierknecht Da ist das Skript natürlich von geringem Nutzen...
        Für die Boxen sollte es schon ausreichend Lösungen von der Stange geben, sodass man nicht mit selbst gedengeltem Javascript die Diagnose-Seiten der Fritzbox crawlen und auswerten muss...

        Habe meine Signatur etwas erweitert - spart solche Rückfragen, wenn man seine Signatur etwas umfangreicher macht ...

        CodierknechtC Online
        CodierknechtC Online
        Codierknecht
        Developer Most Active
        wrote on last edited by
        #9

        @martinp sagte in Zabbix (FritzBox etc.):

        Habe meine Signatur etwas erweitert - spart solche Rückfragen

        Könnte eng werden :grinning:

        "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

        MartinPM 1 Reply Last reply
        0
        • MartinPM MartinP

          @codierknecht Da ist das Skript natürlich von geringem Nutzen...
          Für die Boxen sollte es schon ausreichend Lösungen von der Stange geben, sodass man nicht mit selbst gedengeltem Javascript die Diagnose-Seiten der Fritzbox crawlen und auswerten muss...

          Habe meine Signatur etwas erweitert - spart solche Rückfragen, wenn man seine Signatur etwas umfangreicher macht ...

          Thomas BraunT Online
          Thomas BraunT Online
          Thomas Braun
          Most Active
          wrote on last edited by
          #10

          @martinp sagte in Zabbix (FritzBox etc.):

          Habe meine Signatur etwas erweitert - spart solche Rückfragen

          Wenn die Signaturen denn immer aktuell gehalten würden... ;-)

          Linux-Werkzeugkasten:
          https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
          NodeJS Fixer Skript:
          https://forum.iobroker.net/topic/68035/iob-node-fix-skript
          iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

          1 Reply Last reply
          0
          • MartinPM MartinP

            @codierknecht Da ist das Skript natürlich von geringem Nutzen...
            Für die Boxen sollte es schon ausreichend Lösungen von der Stange geben, sodass man nicht mit selbst gedengeltem Javascript die Diagnose-Seiten der Fritzbox crawlen und auswerten muss...

            Habe meine Signatur etwas erweitert - spart solche Rückfragen, wenn man seine Signatur etwas umfangreicher macht ...

            CodierknechtC Online
            CodierknechtC Online
            Codierknecht
            Developer Most Active
            wrote on last edited by Codierknecht
            #11

            @martinp sagte in Zabbix (FritzBox etc.):

            Für die Boxen sollte es schon ausreichend Lösungen von der Stange geben, sodass man nicht mit selbst gedengeltem Javascript die Diagnose-Seiten der Fritzbox crawlen und auswerten muss...

            Die sind lediglich in D-A-CH verbreitet.
            Was fertiges für Zabbix habe ich nicht gefunden.

            Außerdem bin ich ein Freund von nativen Lösungen.
            Wenn ich dazu erst zig zusätzliche Tools, Scripte und Container brauche, habe ich zu viele "points of failure".

            "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 Reply Last reply
            0
            • arteckA arteck

              @taddy81 sagte in Zabbix (FritzBox etc.):

              da dein Homelab dann insgesamt offline ist.

              nicht unbedingt..ich hab dann nur kein Internet.. Intranet läuft weiterhin ..

              nicht immer von ausgehen dass so ne Fritte alles macht

              T Offline
              T Offline
              Taddy81
              wrote on last edited by
              #12

              @arteck

              Bei mir macht die Fritzbox auch nur "Internet", aber entweder ist Internet da, oder nicht da.

              Ist halt die Frage, was Codierknecht gerne auswerten möchte.

              Proxmox 3Node Cluster, IOBroker in LXC

              PV Visualisierung und Steuerung mit NodeRed und Grafana

              CodierknechtC 1 Reply Last reply
              0
              • T Taddy81

                @arteck

                Bei mir macht die Fritzbox auch nur "Internet", aber entweder ist Internet da, oder nicht da.

                Ist halt die Frage, was Codierknecht gerne auswerten möchte.

                CodierknechtC Online
                CodierknechtC Online
                Codierknecht
                Developer Most Active
                wrote on last edited by
                #13

                @taddy81 sagte in Zabbix (FritzBox etc.):

                Bei mir macht die Fritzbox auch nur "Internet", aber entweder ist Internet da, oder nicht da.

                Internet und Telefonie

                Ist halt die Frage, was Codierknecht gerne auswerten möchte.

                Externe IP und Verbindungsstatus.
                Vielleicht auch noch Up- und Downstream.

                "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 Reply Last reply
                0
                • CodierknechtC Online
                  CodierknechtC Online
                  Codierknecht
                  Developer Most Active
                  wrote on last edited by
                  #14

                  Man muss nur lange genug laut drüber nachdenken, dann klappt's auch :grinning:

                  3df60b18-2a97-488e-bbd5-26ad8fa30e6e-image.png

                  Das gieße ich dann noch in ein Template und hänge das später hier an.
                  Kann ja sein, dass das jemand brauchen kann ;-)

                  "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 BananaJoeB 2 Replies Last reply
                  0
                  • CodierknechtC Codierknecht

                    @martinp sagte in Zabbix (FritzBox etc.):

                    Habe meine Signatur etwas erweitert - spart solche Rückfragen

                    Könnte eng werden :grinning:

                    MartinPM Online
                    MartinPM Online
                    MartinP
                    wrote on last edited by
                    #15

                    @codierknecht said in [gelöst] - Zabbix (FritzBox etc.):

                    @martinp sagte in Zabbix (FritzBox etc.):

                    Habe meine Signatur etwas erweitert - spart solche Rückfragen

                    Könnte eng werden :grinning:

                    Im Gegensatz zur Thread-Überschrift gibt es für die Signatur anscheinend keine Längenbeschränkung.

                    Da habe ich manchmal Probleme, das [gelöst] davorzuklemmen, wenn es so weit ist...

                    Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                    Virtualization : unprivileged lxc container (debian 13) on Proxmox 9.1.5)
                    Linux pve 6.17.9-1-pve
                    6 GByte RAM für den Container
                    Fritzbox 6591 FW 8.20 (Vodafone Leih-Box)
                    Remote-Access über Wireguard der Fritzbox

                    CodierknechtC 1 Reply Last reply
                    0
                    • CodierknechtC Codierknecht

                      Man muss nur lange genug laut drüber nachdenken, dann klappt's auch :grinning:

                      3df60b18-2a97-488e-bbd5-26ad8fa30e6e-image.png

                      Das gieße ich dann noch in ein Template und hänge das später hier an.
                      Kann ja sein, dass das jemand brauchen kann ;-)

                      arteckA Offline
                      arteckA Offline
                      arteck
                      Developer Most Active
                      wrote on last edited by
                      #16

                      @codierknecht jo machmal.. schau ich mir mal an

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

                      1 Reply Last reply
                      0
                      • CodierknechtC Codierknecht

                        Man muss nur lange genug laut drüber nachdenken, dann klappt's auch :grinning:

                        3df60b18-2a97-488e-bbd5-26ad8fa30e6e-image.png

                        Das gieße ich dann noch in ein Template und hänge das später hier an.
                        Kann ja sein, dass das jemand brauchen kann ;-)

                        BananaJoeB Offline
                        BananaJoeB Offline
                        BananaJoe
                        Most Active
                        wrote on last edited by
                        #17

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

                        Das gieße ich dann noch in ein Template und hänge das später hier an.

                        Da bin ich schon gespannt drauf :-)
                        Sieht so aus als hättest du das http agent Item entdeckt und den Rest hast du vermutlich mit Dependent Items gelöst - sehr gut

                        ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 10 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 APC 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                        CodierknechtC 1 Reply Last reply
                        0
                        • MartinPM MartinP

                          @codierknecht said in [gelöst] - Zabbix (FritzBox etc.):

                          @martinp sagte in Zabbix (FritzBox etc.):

                          Habe meine Signatur etwas erweitert - spart solche Rückfragen

                          Könnte eng werden :grinning:

                          Im Gegensatz zur Thread-Überschrift gibt es für die Signatur anscheinend keine Längenbeschränkung.

                          Da habe ich manchmal Probleme, das [gelöst] davorzuklemmen, wenn es so weit ist...

                          CodierknechtC Online
                          CodierknechtC Online
                          Codierknecht
                          Developer Most Active
                          wrote on last edited by
                          #18

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

                          gibt es für die Signatur anscheinend keine Längenbeschränkung

                          Doch. 320 Zeichen :-(

                          "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 Reply Last reply
                          0
                          • BananaJoeB BananaJoe

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

                            Das gieße ich dann noch in ein Template und hänge das später hier an.

                            Da bin ich schon gespannt drauf :-)
                            Sieht so aus als hättest du das http agent Item entdeckt und den Rest hast du vermutlich mit Dependent Items gelöst - sehr gut

                            CodierknechtC Online
                            CodierknechtC Online
                            Codierknecht
                            Developer Most Active
                            wrote on last edited by Codierknecht
                            #19

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

                            Sieht so aus als hättest du das http agent Item entdeckt und den Rest hast du vermutlich mit Dependent Items gelöst

                            Exakt.
                            Nur durch den SOAP-Kram zu steigen hat 'ne Weile gedauert.

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

                            32fcc26d-7ab6-470d-a2af-71a4f4fb6bf2-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 Reply Last reply
                            2
                            • CodierknechtC Online
                              CodierknechtC Online
                              Codierknecht
                              Developer Most Active
                              wrote on last edited by 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 Reply Last reply
                              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 Offline
                                BananaJoeB Offline
                                BananaJoe
                                Most Active
                                wrote on last edited by
                                #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, 10 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 APC 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                                1 Reply Last reply
                                0
                                • CodierknechtC Online
                                  CodierknechtC Online
                                  Codierknecht
                                  Developer Most Active
                                  wrote on last edited by 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 Reply Last reply
                                  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 Online
                                    CodierknechtC Online
                                    Codierknecht
                                    Developer Most Active
                                    wrote on last edited by
                                    #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 Reply Last reply
                                    0
                                    • CodierknechtC Online
                                      CodierknechtC Online
                                      Codierknecht
                                      Developer Most Active
                                      wrote on last edited by
                                      #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 Reply Last reply
                                      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
                                        wrote on last edited by
                                        #25

                                        @codierknecht dann nimm doch den GET

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

                                        CodierknechtC 1 Reply Last reply
                                        0
                                        • arteckA arteck

                                          @codierknecht dann nimm doch den GET

                                          CodierknechtC Online
                                          CodierknechtC Online
                                          Codierknecht
                                          Developer Most Active
                                          wrote on last edited by
                                          #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 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          688

                                          Online

                                          32.7k

                                          Users

                                          82.5k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe