Fritzbox mit Grafana visualisieren [Version 2022]

Nach dem ferzerchd (mangels eigener Fritz-Hardware) den Support für fritzcollectd eingestellt hat [Quelle] und es wohl diverse Probleme mit aktuellen Versionen (vor allem der sonstigen Quellen gibt) hier eine kurze Anleitung wie es mit „Fritz InfluxDb“ und „fritzconnection“ funktionieren kann.

Hier der Beitrag von 2020:

Hardware

Ich verwende einen Raspberry Pi Zero WH (* Affiliatelink), es sollte aber mit jedem anderen Raspi funktionieren. Installiert habe ich RaspianOS Lite auf einer 16GB SD-Karte (* Affiliatelink).

Vorbereitungen

Erst mal alles auf den neusten Stand bringen:

sudo apt update
sudo apt upgrade

Wer möchte kann influxdb auf dem Host installieren, man kann aber auch auf eine andere DB (die auf einem anderen Host läuft) verweisen, daher optional:

sudo apt install influxdb

Die benötigte Software installieren:

# Erst Fritzconnection
sudo apt install python3-pip
pip install fritzconnection

# Dann Fritz InfluxDB
sudo apt install virtualenv python3-lxml git
cd /opt
sudo git clone https://github.com/yunity/fritzinfluxdb.git
cd fritzinfluxdb
sudo virtualenv --system-site-packages -p python3 .venv
. .venv/bin/activate
# ab hier im (.venv)-modus
pip3 install -r requirements.txt

Hiermit sollte alles installiert sein um den ersten Test zu starten

# Erst die INI kopieren:
sudo cp /opt/fritzinfluxdb/./fritzinfluxdb.ini-sample /opt/fritzinfluxdb/fritzinfluxdb.ini
# In der INI die Einstellungen zur Fritzbox vornehmen (am besten einen neuen Benutzer in der Fritzbox anlegen und die Credentials hier verwenden):
sudo nano /opt/fritzinfluxdb/fritzinfluxdb.ini

Mindestens den Benutzernamen und das Passwort von der Fritzbox solltet ihr einstellen, die restlichen Daten können so bleiben wenn die InfluxDB lokal läuft. Ich habe noch das Intervall auf 60 Sekunden eingestellt (Standard ist 10 Sekunden) weil ich es nicht so genau benötige.

Dann einmal mit

./fritzinfluxdb.py

einfach mal laufen lassen. Es sollte sowas kommen:

2022-01-22 16:00:06,123 - INFO: Done parsing config file
2022-01-22 16:00:06,143 - INFO: Database <db> not found, trying to create it
2022-01-22 16:00:06,200 - INFO: Connection to InfluxDB established and database present
2022-01-22 16:00:11,159 - INFO: Successfully connected to FritzBox
2022-01-22 16:00:11,172 - INFO: Starting main loop
2022-01-22 16:00:11,610 - ERROR: Requested invalid action 'GetInfo' for service: WANDSLInterfaceConfig
2022-01-22 16:00:11,660 - ERROR: Requested invalid action 'GetStatisticsTotal' for service: WANDSLInterfaceConfig
2022-01-22 16:00:11,902 - ERROR: Requested invalid action 'GetInfo' for service: WANPPPConnection:1
2022-01-22 16:00:11,905 - ERROR: Encountered problems while requesting data. Data might be incomplete.

Wenn nicht, bitte den Fehler beachten und ggf. korrigieren.

In Grafana kann man die Quelle jetzt hinzufügen (wenn nicht eh schon drin da eine vorhandene DB verwendet wurde). Im Github von Fritz InfluxDB ist auch ein Beispieldashboard welches auch schon viele Infos enthält.

Service

Damit das Script nicht nur läuft wenn jemand angemeldet ist und das Script startet (wenn man den Befehl oben abbricht kommen auch keine Daten mehr an) sollte man den Dienst einrichten:

sudo cp /opt/fritzinfluxdb/fritzinfluxdb.service /etc/systemd/system

sudo systemctl daemon-reload
sudo systemctl start fritzinfluxdb
sudo systemctl enable fritzinfluxdb

Das Wird aber schief gehen da noch ein paar pip3-Voraussetzungen erfüllt werden müssen die wir noch installieren:

sudo pip3 install fritzconnection
sudo pip3 install influxdb

Jetzt sollte alles klappen und die Daten auch ankommen wenn das python-Script nicht manuell gestartet wurde.

38 Kommentare

  • Hallo,

    vielen dank für das Update. Ich hatte die alte Anleitung schon vor einer Weile mal verwendet und musste mein System neu aufsetzten. Nach dem fritzcollectd tatsächlich nicht mehr maintained wird, war die Aktualisierung wirklich eine sehr gute Unterstützung!

    Viele Grüße,
    Christian

    Antworten
    • Hallo,

      Ich würde mich freuen, wenn Du mir helfen könntest mit einem Problem:
      ich kann zwar das .py Script ausführen, aber der Service läuft nicht nicht. Wenn ich in journalctl -xe schaue, wird angeziegt, dass das Modul fritzconnect nicht geladen werden kann. Wenn ich
      „sudo pip3 install fritzinfluxdb“ ausführe, kommt die Meldung
      „Could not install packages due to an EnvironmentError: 404 Client Error: Not Found for url: https://pypi.org/simple/fritzinfluxdb/

      Wenn das manuell angestoßen wird, werden aber Daten in die DB geschrieben…

      Viele Grüße,
      Christian

      Antworten
      • Hallo Christian,

        du hast recht, ich habe da einen falschen Befehl aus meiner Textdatei (in die ich das immer beim installieren schmiere) kopiert.
        Der korrekte Befehl lautet sudo pip3 install fritzconnection. Hab den Beitrag aktualisiert.

        Sorry für die Verwirrung,
        Simon

        Antworten
  • Mahlzeit Kollege(n).

    Nachdem ich das hier nun umgesetzt habe, läuft es bis auf die Tatsache, das der Service nicht automatisch startet (aktuelles Ubuntu 20.04 LTS). Zudem, wenn das Script manuell angestoßen wurde und es läuft, wird bei jeder 2.ten Dashboard-Aktualisierung nichts angezeigt bzw. NA…

    Why…what mach ich Hornvieh falsch…;-).

    Danke und Gruß
    Geert

    Antworten
    • Hallo Geert,

      aber die Befehle cp /opt/fritzinfluxdb/fritzinfluxdb.service /etc/systemd/system
      sudo systemctl daemon-reload
      sudo systemctl start fritzinfluxdb
      sudo systemctl enable fritzinfluxdb
      laufen bei dir durch ohne Fehlermeldung?

      Was gibt denn sudo systemctl status fritzinfluxdb aus? Ich vermute da fehlt noch was an Voraussetzungen, bzw. du hast noch die Anleitung verwendet als da noch ein falscher Befehl bei sudo pip3 install fritzconnection
      sudo pip3 install influxdb
      stand 😀

      Und guck mal die Auslastung deiner CPU an beim fetchen, vielleicht ist die einfach überlastet?

      Grüße
      Simon

      Antworten
      • Hallo Simon.

        Nein, die hier ersichtliche Anleitung bin ich durch gegangen. Wenn ich das Script auf der Konsole starte, läuft es auch mit aussetzern. Nur leider nicht automatisch.

        Auslastung hat die Kiste zu keinem Zeitpunkt, ist ein auf ESXi virtualisiertes Ubuntu Server auf einem DELL R730 Blech mit reichlich Ressourcen…;-). Als Nerd gönnt man sich ja ansonsten nichts…;-).

        sudo systemctl status fritzinfluxdb ergibt:

        ● fritzinfluxdb.service – Fritz to InfluxDB daemon
        Loaded: loaded (/etc/systemd/system/fritzinfluxdb.service; enabled; vendor preset: enabled)
        Active: activating (auto-restart) (Result: exit-code) since Sat 2022-01-29 16:45:49 CET; 4s ago
        Process: 329180 ExecStart=/opt/fritzinfluxdb/.venv/bin/python /opt/fritzinfluxdb/fritzinfluxdb.py -d (code=exited, status=1/FAILURE)
        Main PID: 329180 (code=exited, status=1/FAILURE)

        Jan 29 16:45:54 vm-grafana systemd[1]: fritzinfluxdb.service: Scheduled restart job, restart counter is at 17418.
        Jan 29 16:45:54 vm-grafana systemd[1]: Stopped Fritz to InfluxDB daemon.
        Jan 29 16:45:54 vm-grafana systemd[1]: Started Fritz to InfluxDB daemon.

        Antworten
        • Tja, dann bin ich fast überfragt. Was wirft dir denn der Syslog zu dem Thema entgegen: cat /var/log/syslog | grep "fritzinfluxdb"?

          Update: Ich hab das jetzt in meinem Produktivsystem jetzt genau so gemacht wie oben beschrieben und es funktioniert einwandfrei.

          Antworten
  • Im Syslog wirds wohl spannend. Ausgabe:

    Jan 31 09:02:09 vm-grafana fritzinfluxdb[811046]: ERROR: Failed to connect to FritzBox ‚__init__() got an unexpected keyword argument ‚timeout“
    Jan 31 09:02:09 vm-grafana systemd[1]: fritzinfluxdb.service: Main process exited, code=exited, status=1/FAILURE
    Jan 31 09:02:09 vm-grafana systemd[1]: fritzinfluxdb.service: Failed with result ‚exit-code‘.
    Jan 31 09:02:14 vm-grafana systemd[1]: fritzinfluxdb.service: Scheduled restart job, restart counter is at 42995.
    Jan 31 09:02:14 vm-grafana fritzinfluxdb[811049]: INFO: Done parsing config file
    Jan 31 09:02:14 vm-grafana fritzinfluxdb[811049]: INFO: Connection to InfluxDB established and database present
    Jan 31 09:02:14 vm-grafana fritzinfluxdb[811049]: ERROR: Failed to connect to FritzBox ‚__init__() got an unexpected keyword argument ‚timeout“
    Jan 31 09:02:14 vm-grafana systemd[1]: fritzinfluxdb.service: Main process exited, code=exited, status=1/FAILURE
    Jan 31 09:02:14 vm-grafana systemd[1]: fritzinfluxdb.service: Failed with result ‚exit-code‘.
    Jan 31 09:02:19 vm-grafana systemd[1]: fritzinfluxdb.service: Scheduled restart job, restart counter is at 42996.
    Jan 31 09:02:20 vm-grafana fritzinfluxdb[811069]: INFO: Done parsing config file
    Jan 31 09:02:20 vm-grafana fritzinfluxdb[811069]: INFO: Connection to InfluxDB established and database present
    Jan 31 09:02:20 vm-grafana fritzinfluxdb[811069]: ERROR: Failed to connect to FritzBox ‚__init__() got an unexpected keyword argument ‚timeout“
    Jan 31 09:02:20 vm-grafana systemd[1]: fritzinfluxdb.service: Main process exited, code=exited, status=1/FAILURE
    Jan 31 09:02:20 vm-grafana systemd[1]: fritzinfluxdb.service: Failed with result ‚exit-code‘.
    Jan 31 09:02:25 vm-grafana systemd[1]: fritzinfluxdb.service: Scheduled restart job, restart counter is at 42997.
    Jan 31 09:02:25 vm-grafana fritzinfluxdb[811088]: INFO: Done parsing config file
    Jan 31 09:02:25 vm-grafana fritzinfluxdb[811088]: INFO: Connection to InfluxDB established and database present
    Jan 31 09:02:25 vm-grafana fritzinfluxdb[811088]: ERROR: Failed to connect to FritzBox ‚__init__() got an unexpected keyword argument ‚timeout“
    Jan 31 09:02:25 vm-grafana systemd[1]: fritzinfluxdb.service: Main process exited, code=exited, status=1/FAILURE
    Jan 31 09:02:25 vm-grafana systemd[1]: fritzinfluxdb.service: Failed with result ‚exit-code‘.
    Jan 31 09:02:31 vm-grafana systemd[1]: fritzinfluxdb.service: Scheduled restart job, restart counter is at 42998.
    Jan 31 09:02:31 vm-grafana fritzinfluxdb[811115]: INFO: Done parsing config file
    Jan 31 09:02:31 vm-grafana fritzinfluxdb[811115]: INFO: Connection to InfluxDB established and database present
    Jan 31 09:02:31 vm-grafana fritzinfluxdb[811115]: ERROR: Failed to connect to FritzBox ‚__init__() got an unexpected keyword argument ‚timeout“
    Jan 31 09:02:31 vm-grafana systemd[1]: fritzinfluxdb.service: Main process exited, code=exited, status=1/FAILURE
    Jan 31 09:02:31 vm-grafana systemd[1]: fritzinfluxdb.service: Failed with result ‚exit-code‘.
    Jan 31 09:02:36 vm-grafana systemd[1]: fritzinfluxdb.service: Scheduled restart job, restart counter is at 42999.
    Jan 31 09:02:37 vm-grafana fritzinfluxdb[811148]: INFO: Done parsing config file
    Jan 31 09:02:37 vm-grafana fritzinfluxdb[811148]: INFO: Connection to InfluxDB established and database present
    Jan 31 09:02:37 vm-grafana fritzinfluxdb[811148]: ERROR: Failed to connect to FritzBox ‚__init__() got an unexpected keyword argument ‚timeout“
    Jan 31 09:02:37 vm-grafana systemd[1]: fritzinfluxdb.service: Main process exited, code=exited, status=1/FAILURE
    Jan 31 09:02:37 vm-grafana systemd[1]: fritzinfluxdb.service: Failed with result ‚exit-code‘.

    Antworten
    • Hat sich erledigt!

      Nachdem ich mir nun die gesamte Config zerschossen habe und nicht weiß wieso weshalb warum, […]

      Danke für die Hilfe und weiterhin angenehmes schaffen.

      Antworten
  • Hi,
    vielen Dank für deinen Artikel und die Aktualisierung. Hat mir sehr geholfen. Ich habe nun nur noch folgende Herausforderung und finde keine Antwort:
    Die Datenbank ist in Grafana verknüpft und mit „Explorer“ kann ich auch diverse Queries checken und sehe auch FritzBox Daten. Das Dashboard habe ich importiert und passend zugewiesen, jedoch wird alles als „n/a“ angezeigt. Ich habe es auf alle erdenklichen Wege probiert. Es will einfach nicht … bin komplett ratlos.
    Setup: Fritz InfluxDB + fritzconnection gem. obiger Anleitung in einem Proxmox Container (Log zeigt auch keine Fehler an), in einem weiteren Container läuft Grafana. Dort habe ich die Datenquelle entsprechend angelegt. Die Verknüpfung müsste hier auch passen …
    Meine Hypothese: ich muss irgendwas noch mit dem „measurement name“ anstellen. Oder hat das in der *.ini keine weitere Funktion?
    Vielen Dank und viele Grüße
    Alex

    Antworten
    • Hi Alex,
      in der ini steht die database (bei mit db) für die Datenbank die du bei Data Sources auch für die db eingeben musst.
      Das wirst du aber richtig gemacht haben weil bei dir sonst im Explorer nichts angezeigt worden wäre.
      Sonstmal in die influxdb einwählen und über „USE db“ und dann „SELECT * FROM fritzbox“. Da sollten dann alle Daten durchrattern. Wenn da was drin ist liegt es auf jeden fall da 🙂

      Du müsstest im Dashboard aus dem Link mal prüfen ob die Quellen richtig eingegeben sind, also ob „Data Source“ und „FROM“ richtig gewählt sind.
      Also in meinem Fall z.B. so: SELECT last("systemuptime") FROM "fritzbox" WHERE time >= now() - 5m and time <= now() GROUP BY time(2s).

      Viel Glück und melde dich wenns klappt oder noch was ist :)

      Antworten
      • Hi Simon,
        vielen Dank für deine Rückmeldung.Danke für den Hinweis in die DB direkt zu schauen. Hier als csv ein Eintrag (IPs habe ich anonymisiert):

        fritzbox,1643729712000000000,180,130,Connected,1,FRITZ!Box 7520 (UI) 175.07.29,221174,216086000,228540000,1,,,293242137,3541067391,ERROR_NONE,1430,228540,45014,FRITZ!Box 7520 (UI),49,Up,DSL,5708,stu1902aihr001,2809,3CA62F310C51,0,70,70,175.07.29,1114273,27489595,13149848,Stopped,0,45014,43978000,45014000

        Was mir dann aufgefallen ist: Die Bezeichnungen der Felder passen null mit denen des Grafana Dashboards überein. Und dann habe ich mir deinen Ursprungseintrag angeschaut, und BÄMMMM, du schreibst von der 6490, sprich dem Kabelrouter. Ich Vollidiot mit der 7520 🙂 Locker 3h in den Sand gesetzt. Nun gut, trotzdem einiges dabei gelernt.

        Muss ich doch versuchen die Lösung mit https://github.com/sberk42/fritzbox_exporter umsetzen. Ich scheitere leider bei der Kompilierung mit Go. Nun denn, trotzdem vielen Dank für deine Mühen.
        Viele Grüße
        Alex

        Antworten
        • Hi Alex, ehrlich gesagt sieht das sehr gut aus. In der DB kannst du vielleicht mal mit „LIMIT 1“ nachsehen wie deine Überschriften heißen. Da du ja allerdings im Grafana Explorer die Daten siehst kommen die ja unter den Überschriften auch an.
          Also kann es nur ein Problem mit der Visualisierung geben.
          Versuchs doch mal mit einem neuen leeren Dashboard.

          Grüße Simon

          Antworten
          • Hi Simon,
            ok. Challenge accepted 😉

            Die Felder heißen:

            attenuation_downstream
            attenuation_upstream
            connection_status
            crc_errors
            description
            downstream_dsl_sync_max
            downstreammax
            downstreamphysicalmax
            errored_seconds
            external_ip
            external_ipv6
            lan_totalbytesreceived
            lan_totalbytessent
            last_connection_error
            linkuptime
            maxBitRate_downstream
            maxBitRate_upstream
            model
            name
            number_of_hosts
            physicallinkstatus
            physicallinktype
            receiverate
            remote_pop
            sendrate
            serialnumber
            severely_errored_seconds
            snr_downstream
            snr_upstream
            softwareversion
            systemuptime
            time
            totalbytesreceived
            totalbytessent
            update_state
            upgrade_available
            upstream_dsl_sync_max
            upstreammax
            upstreamphysicalmax

            Die InfluxDB füge ich ohne ChicChi in Grafana hinzu (Name: „InfluxDB Fritzbox“). Kein SSL, kein Auth, … dann „Save+Test“ und es läuft (grüne Bestätigung). Unter „Explore“ wähle ich bei SELECT „fritzbox“ aus und dann habe ich unter SELECT eben diese rund 39 Attribute zum auswählen. Dann Dashboard > Import > 713. Bei „Influx-collectd“ wähle ich meine „InfluxDB Fritzbox“ aus.

            Dann wieder alles „N/A“.
            Ich picke mir das erste Panel „Connection Status“ raus und gehe auf „Edit“. Dort sehe ich als „Measurement“ den Wert „fritzbox_value“ und als value „constatus“. Das matcht mEn nicht mit den o.g. Bezeichnungen überein.
            Hier der Query des Templates:
            SELECT last(„value“) FROM „fritzbox_value“ WHERE („type_instance“ = ‚constatus‘) AND $timeFilter GROUP BY time($__interval)
            Passe ich die Werte manuell an, passiert leider nichts. Da bin ich dann leider mit meinem Grafana Latein bereits am Ende. Hatte bisher noch nicht die Muße, mich auch hier lange reinzufuchsen 🙂
            Hast Du Ideen? Oder wie könnte ich „schnell“ das Dashboard an die anderen Bezeichnungen anpassen? Sind meine 7520 Attribute in Anzahl und Kontext gleich zu denen der FritzBox 6490?
            VIelen Dank und viele Grüße
            Alex

          • Hi Simon,
            ich fress nen Besen. Läuft! Ahahaaha. Saugeil. Vielen vielen herzlichen Dank für deine Zeit und deine Mühen!
            Viele Grüße aus Freiburg
            Alex

  • Simon…nach nun ein wenig Abstand zu den Dingen…lüppt es…;-).

    Ich Danke Dir für die Anleitung und den Support…;-). Wenn Du mal Zeit für ne Tasse Kaffee hast, würde es mich freuen, wenn Du dich unter der angegeben eMail-Adresse mal meldest…ich hätte da Ideen, die eventuell auch für Dich interessant werden könnten…und Grevenbroich ist nicht weit weg, da wohnt auch ein guter Freund von mir und vor Ort habe ich auch bereits in einem Systemhaus die Umgebung mit administrativem IT-Gewäsch versorgt und mir meine Brötchen verdient…;-).

    Danke und Gruß
    Geert

    Antworten
    • Nochmals er…was noch interessant wäre…wie kann ich hier meine beiden Fritzboxen einbinden…? Habe einen Glasfaser-Anschluss und als Backup noch einen DSL-Anschluss…;-)…für sachdienliche Hinweise wäre ich sehr dankbar.

      Danke und Gruß
      Geert

      Antworten
      • Hi Geert, ich hab das Testweise mal ausprobiert und grundsätzlich geht es auch eine weitere Box abzufragen. Ist aber ein bisschen fummelei. Es gibt einen offenen Pull Request im github der die Lösung schon beinhaltet (fügt ein Tag hinzu mit dem man die Boxen dann auseinander halten kann). Den hatte ich mal getestet, aber nicht in „schön“ sondern indem ich das Script einfach mit neuem Namen noch mal als neuen Service einrichte. Funktioniert grundsätzlich und könnte ich mal als „schmutzige“ Lösung hier rein stellen. Mach ich vermutlich die Tage mal 🙂

        Grüße
        Simon

        Antworten
        • Na, da wäre ich sehr gespannt…mal schauen, ob ich mir ne 2.te Testmaschine anlege und damit auch mal spiele…nur ist das Thema Grafana / Prometheus derzeit wichtiger…das gilt es nämlich einzuführen auf Wunsch der Obrigkeit…;-). Und da muss noch ne Menge gelernt werden.

          Antworten
  • Hallo, erstmal herzlichen Dank für die tolle Arbeit. Ich denke ich bin schon recht weit gekommen, vermutlich fehlt nur eine Kleinigkeit. Ich habe die Installation auf einer VM mit Ubuntu 20.04 LTS nach Anleitung installiert. Soweit ich das beim testen sehen kann funktioniert auch der Verbindungsaufbau zur Datenbank und zur Fritzbox, aber es kommen keine Daten an und er beendet den Dienst mit einem Fehler. Nur kann ich leider mit der Fehlermeldung nichts anfangen. Kannst Du mir da helfen?
    volker@ubuntu:/opt/fritzinfluxdb$ ./fritzinfluxdb.py
    2022-02-18 15:13:18,588 – INFO: Done parsing config file
    2022-02-18 15:13:18,598 – INFO: Connection to InfluxDB established and database present
    2022-02-18 15:13:19,368 – INFO: Successfully connected to FritzBox
    2022-02-18 15:13:19,369 – INFO: Starting main loop
    Traceback (most recent call last):
    File „./fritzinfluxdb.py“, line 420, in
    main()
    File „./fritzinfluxdb.py“, line 388, in main
    „fields“: query_services(fritz_client_auth, services_to_query)
    File „./fritzinfluxdb.py“, line 159, in query_services
    this_result = _fb_call_action(service, action)
    File „./fritzinfluxdb.py“, line 139, in _fb_call_action
    call_result = fc.call_action(service_called, action_called)
    File „/home/volker/.local/lib/python3.8/site-packages/fritzconnection/core/fritzconnection.py“, line 218, in call_action
    return self.soaper.execute(service, action_name, arguments)
    File „/home/volker/.local/lib/python3.8/site-packages/fritzconnection/core/soaper.py“, line 233, in execute
    return handle_response(response)
    File „/home/volker/.local/lib/python3.8/site-packages/fritzconnection/core/soaper.py“, line 218, in handle_response
    raise_fritzconnection_error(response)
    File „/home/volker/.local/lib/python3.8/site-packages/fritzconnection/core/soaper.py“, line 147, in raise_fritzconnection_error
    raise exception(message)
    fritzconnection.core.exceptions.FritzInternalError: UPnPError:
    errorCode: 820
    errorDescription: Internal Error

    Antworten
    • Hallo Volker,

      das sieht so aus als hättest du (was ich auch im Beitrag nicht beschrieben habe) unter „Heimnetz“ -> „Netzwerk“ -> „Netzwerkeinstellungen“ -> „Heimnetzfreigaben“ die Haken für „Zugriff für Anwendungen zulassen“ und „Statusinformationen über UPnP übertragen“ nicht gesetzt. Wobei der zweite theoretisch gar nicht nötig ist soweit ich weiß.

      Viele Grüße
      Simon

      Antworten
      • Hi Simon,

        erst einmal: Danke für die schöne Anleitung!

        Ich hänge auch an dem UPnP Fehler. Ich habe beide Haken gesetzt, dem „Selbstständige Portfreigaben für dieses Gerät erlauben.“ gegeben. Die DB auf meinem NAS findet er anscheinend, aber Daten von der FB5491 scheint er nicht zu bekommen. Ich übersehe wahrscheinlich was sehr offensichtliches, aber… was? Danke vielmals!

        2022-03-16 16:08:41,692 – INFO: Done parsing config file
        2022-03-16 16:08:41,700 – INFO: Connection to InfluxDB established and database present
        2022-03-16 16:08:44,897 – INFO: Successfully connected to FritzBox
        2022-03-16 16:08:44,899 – INFO: Starting main loop
        Traceback (most recent call last):
        File „./fritzinfluxdb.py“, line 420, in
        main()
        File „./fritzinfluxdb.py“, line 388, in main
        „fields“: query_services(fritz_client_auth, services_to_query)
        File „./fritzinfluxdb.py“, line 159, in query_services
        this_result = _fb_call_action(service, action)
        File „./fritzinfluxdb.py“, line 139, in _fb_call_action
        call_result = fc.call_action(service_called, action_called)
        File „/home/pi/.local/lib/python3.7/site-packages/fritzconnection/core/fritzconnection.py“, line 218, in call_action
        return self.soaper.execute(service, action_name, arguments)
        File „/home/pi/.local/lib/python3.7/site-packages/fritzconnection/core/soaper.py“, line 233, in execute
        return handle_response(response)
        File „/home/pi/.local/lib/python3.7/site-packages/fritzconnection/core/soaper.py“, line 218, in handle_response
        raise_fritzconnection_error(response)
        File „/home/pi/.local/lib/python3.7/site-packages/fritzconnection/core/soaper.py“, line 147, in raise_fritzconnection_error
        raise exception(message)
        fritzconnection.core.exceptions.FritzInternalError: UPnPError:
        errorCode: 820
        errorDescription: Internal Error

        Antworten
  • Moin!
    Danke für das tolle Tutorial.
    Nachdem ich die alte Lösung kurze Zeit laufen hatte und immer wieder Probleme bekam, habe ich mich nun der neuen Umsetzung gewidmet. Leider kommen aber keine Daten an.

    ● fritzinfluxdb.service – Fritz to InfluxDB daemon
    Loaded: loaded (/etc/systemd/system/fritzinfluxdb.service; enabled; vendor preset: enabled)
    Active: active (running) since Sat 2022-03-05 22:13:35 CET; 339ms ago

    Mär 05 22:09:58 Vorlage sudo[30341]: patrick : TTY=pts/1 ; PWD=/opt/fritzinfluxdb ; USER=root ; COMMAND=/usr/bin/systemctl status fritzinfluxdb
    Mär 05 22:09:58 Vorlage sudo[30341]: pam_unix(sudo:session): session opened for user root(uid=0) by patrick(uid=1000)
    Mär 05 22:09:59 Vorlage sudo[30341]: pam_unix(sudo:session): session closed for user root
    Mär 05 22:12:54 Vorlage sudo[30395]: patrick : TTY=pts/0 ; PWD=/home/patrick ; USER=root ; COMMAND=/usr/bin/pip3 install fritzconnection
    Mär 05 22:12:54 Vorlage sudo[30395]: pam_unix(sudo:session): session opened for user root(uid=0) by patrick(uid=1000)
    Mär 05 22:12:56 Vorlage sudo[30395]: pam_unix(sudo:session): session closed for user root
    Mär 05 22:13:35 Vorlage sudo[30409]: patrick : TTY=pts/0 ; PWD=/home/patrick ; USER=root ; COMMAND=/usr/bin/systemctl status fritzinfluxdb
    Mär 05 22:13:35 Vorlage sudo[30409]: pam_unix(sudo:session): session opened for user root(uid=0) by patrick(uid=1000)
    Mär 05 22:13:35 Vorlage sudo[30409]: pam_unix(sudo:session): session closed for user root

    Die Datenbank ist angelegt, jedoch ohne Inhalte.

    Ich bin genau der Anleitung gefolgt. Nachdem es nicht funktionierte, bin ich es nochmal durchgegangen, weiterhin ohne Erfolg.

    Irgendeinen Tipp?

    Antworten
    • Hi Patrick,

      hast du das Script mal ohne den Dienst laufen lassen: ./fritzinfluxdb.py?

      Und die pip3-Scripte installiert?
      sudo pip3 install fritzconnection
      sudo pip3 install influxdb

      Einen Fehler gibt er ja nicht aus, gibt aber auch keine Produktivdaten zurück. Sehr seltsam.

      Die Ausgabe des Scripts ohne Dienst oben würde mich mal interessieren.

      Grüße
      Simon

      Antworten
      • Ich habe leider dasselbe Problem. Grafana bleibt leer.

        Hier als Dienst:
        Mar 13 17:42:15 raspi04 fritzinfluxdb[2250]: INFO: Connection to InfluxDB established and database present
        Mar 13 17:42:18 raspi04 fritzinfluxdb[2250]: INFO: Successfully connected to FritzBox
        Mar 13 17:42:18 raspi04 fritzinfluxdb[2250]: INFO: Starting main loop

        Und manuell sieht es auch ganz gut aus:
        (.venv) pi@raspi04:/opt/fritzinfluxdb $ ./fritzinfluxdb.py
        2022-03-13 17:34:49,538 – INFO: Done parsing config file
        2022-03-13 17:34:49,547 – INFO: Connection to InfluxDB established and database present
        2022-03-13 17:34:51,366 – INFO: Successfully connected to FritzBox
        2022-03-13 17:34:51,367 – INFO: Starting main loop

        Das Grafana Dashboard bleib aber komplett leer.

        Antworten
  • Hallo, vielen Dank für de super Anleitung. Obwohl ich mit iobroker und Grafana mich erst seit ca. 3 Monaten beschäftige, habe ich mich an Deine Anleitung gewagt, da ich so ein Dashboard bei mir unbedingt einbinden wollte.
    Ich komme bis zu folgendem Befehl: ./fritzinfluxdb.py
    Dann bekomme ich folgende Fehlermeldung: pi@homebridge:~ $ ./fritzinfluxdb.py
    -bash: ./fritzinfluxdb.py: No such file or directory
    Die ganze Installation hat eigentlich ohne Problem funktioniert. Lediglich am Anfang habe ich folgende Warnmeldung bekommen:
    Nach pip installation fritzconnection

    Dieser Warnmeldung:

    WARNING: The scripts fritzcall, fritzconnection, fritzhomeauto, fritzhosts, fritzmonitor, fritzphonebook, fritzstatus and fritzwlan are installed in ‚/home/pi/.local/bin‘ which is not on PATH.
    Consider adding this directory to PATH or, if you prefer to suppress this warning, use –no-warn-script-location.

    Installation war aber erfolgreich.

    In der .ini Habe ich es mit den Zugangsdaten meines neuen Benutzers versucht, sowie mit den Zugangsdaten, welche schon immer bei mir aktiv snd.
    Nun weiß ich leider nicht mehr weiter und bin echt auf Hilfe angewiesen.

    Antworten
  • Nachdem ich das eingegeben habe:
    $ ./fritzinfluxdb.py
    -bash: ./fritzinfluxdb.py: No such file or directory
    Ich bitte dringend um Hilfe, da ich jetzt absolut nicht weiß was ich machen muss.
    Danke

    Gruß Andy

    Antworten
  • Moin,
    vielen Dank für die gute Anleitung. Die Installation hat super geklappt und das Dashboard finde ich auch sehr gut.
    Ich habe nun versucht die Datensammlung um Fritz!Dect Geräte zu erweitern, genau genommen Fritz!Dect 200 Aktoren. Dazu habe ich folgenden Block an die fritzinfluxdb.ini angehängt.

    [service10]
    service = X_AVM-DE_Homeauto:1
    actions = GetGenericDeviceInfos
    GetSpecificDeviceInfos
    value_instances = NewMultimeterPower: power
    NewMultimeterEnergy: energy
    NewTemperatureCelsius: temperature
    NewSwitchState: switchstate
    NewHkrIsTemperature: HkTemp

    Leider scheint sich der Sammeldienst damit aber aufzuhängen, denn nicht nur werden keine Daten der Aktoren eingesammelt, auch die Grunddaten der Fritzbox finden nicht mehr den Weg zur DB. Hat einer von Euch vielleicht eine Lösung? Evtl. auch für die Sammlung von Daten der steuerbaren Heizkörperthermostate?

    Gruß
    Dennis

    Antworten
  • Hallo, hat jemand eine funktionierende URL für das Grafana Dashbaord? Alle URLs hier zeigen einen 404.
    Danke und Gruß,
    Torsten

    Antworten
  • Hallo, wenn ich das Script laufen lasse, bekomme ich folgenden Output:

    022-08-20 14:54:23,149 – INFO: Starting fritzinfluxdb v1.0.0 (2022-06-11)
    2022-08-20 14:54:23,150 – INFO: Done reading config files
    2022-08-20 14:54:23,196 – INFO: Successfully parsed config
    2022-08-20 14:54:23,204 – INFO: Connection to InfluxDB 1.8.6 established and database present
    2022-08-20 14:54:24,240 – INFO: Successfully established FritzBox TR-069 session
    2022-08-20 14:54:24,383 – INFO: Successfully established FritzBox Lua session
    2022-08-20 14:54:24,383 – INFO: Successfully connected to FritzBox ‚192.168.111.1‘ (fritz.box) Model: FRITZ!Box 6591 Cable (kdg) – FW: 7.29
    2022-08-20 14:54:24,385 – INFO: Starting main loop
    2022-08-20 14:54:24,386 – INFO: Requested invalid service: WANCommonIFC
    2022-08-20 14:54:24,386 – INFO: Querying service ‚WANCommonIFC‘ will be disabled
    2022-08-20 14:54:24,386 – INFO: Requested invalid service: WANIPConn
    2022-08-20 14:54:24,386 – INFO: Querying service ‚WANIPConn‘ will be disabled
    2022-08-20 14:54:24,603 – INFO: Requested invalid action ‚GetInfo‘ for service: WANDSLInterfaceConfig
    2022-08-20 14:54:24,603 – INFO: Querying action ‚GetInfo‘ will be disabled
    2022-08-20 14:54:24,615 – INFO: Requested invalid action ‚GetStatisticsTotal‘ for service: WANDSLInterfaceConfig
    2022-08-20 14:54:24,615 – INFO: Querying action ‚GetStatisticsTotal‘ will be disabled
    2022-08-20 14:54:24,627 – INFO: Requested invalid action ‚X_AVM-DE_GetDSLInfo‘ for service: WANDSLInterfaceConfig
    2022-08-20 14:54:24,628 – INFO: Querying action ‚X_AVM-DE_GetDSLInfo‘ will be disabled
    2022-08-20 14:54:24,628 – INFO: All actions for service ‚WANDSLInterfaceConfig‘ are unavailable. Disabling service.
    2022-08-20 14:54:24,681 – INFO: Requested invalid action ‚GetInfo‘ for service: WANPPPConnection:1
    2022-08-20 14:54:24,682 – INFO: Querying action ‚GetInfo‘ will be disabled
    2022-08-20 14:54:24,682 – INFO: All actions for service ‚WANPPPConnection:1‘ are unavailable. Disabling service.
    2022-08-20 14:54:31,595 – INFO: Unable to request FritzBox Lua service ‚DSL Info‘
    2022-08-20 14:54:31,595 – INFO: FritzBox Lua service ‚DSL Info‘ will be disabled.
    2022-08-20 14:54:31,820 – ERROR: Unable to extract ‚data.connectionData.externApValue‘ form ‚{‚pid‘: ‚docOv‘, ‚hide‘: {’shareUsb‘: True, ‚liveTv‘: True, ‚tvsd‘: True, ‚dvbSet‘: True, ‚mobile‘: True, ‚tvhd‘: True, ’ssoSet‘: True, ‚dvbSig‘: True, ‚dvbradio‘: True}, ‚time‘: [], ‚data‘: {‚connectionData‘: {‚frequencyScantext‘: ‚Verbindungsaufbau läuft… Dieser Vorgang kann je nach Anschluss bis zu 5 Minuten dauern.‘, ‚debugidx‘: 0, ‚fullLine‘: False, ‚dsCount‘: 32, ‚usCount‘: 4, ‚isDebug‘: False, ‚externAPHeader‘: ‚Kopfstelle (CMTS)‘, ‚dsCountSecond‘: 1, ‚line‘: [{’state‘: ‚ready‘, ‚timePrefix‘: ‚Verbindungsdauer:‘, ‚trainState‘: ‚aktiv‘, ‚mode‘: ‚DOCSIS 3.0 und DOCSIS 3.1‘, ‚trainStatePrefix‘: ‚Kabel-Internet:‘, ‚time‘: ‚288 Stunden 44 Minuten 55 Sekunden‘}], ‚usCountSecond‘: 1, ’showCableImg‘: True, ‚usFreqs‘: {‚max‘: 85, ‚values‘: {‚docsis3_1‘: [[29, 64]], ‚docsis3_0‘: [51, 30, 37, 44]}, ‚min‘: 5}, ‚dsRate‘: ‚1150 Mbit/s‘, ‚usRate‘: ‚56,7 Mbit/s‘, ‚dsFreqs‘: {‚max‘: 1218, ‚values‘: {‚docsis3_1‘: [[151, 324]], ‚docsis3_0‘: [642, 114, 130, 138, 146, 602, 618, 626, 650, 658, 666, 674, 682, 690, 698, 706, 714, 722, 730, 738, 746, 754, 762, 770, 778, 786, 794, 802, 810, 818, 826, 834]}, ‚min‘: 108}}}, ’sid‘: ‚bfb40e062f09c063′}‘, got “
    2022-08-20 14:54:31,821 – ERROR: Unable to extract ‚data.connectionData.version‘ form ‚{‚pid‘: ‚docOv‘, ‚hide‘: {’shareUsb‘: True, ‚liveTv‘: True, ‚tvsd‘: True, ‚dvbSet‘: True, ‚mobile‘: True, ‚tvhd‘: True, ’ssoSet‘: True, ‚dvbSig‘: True, ‚dvbradio‘: True}, ‚time‘: [], ‚data‘: {‚connectionData‘: {‚frequencyScantext‘: ‚Verbindungsaufbau läuft… Dieser Vorgang kann je nach Anschluss bis zu 5 Minuten dauern.‘, ‚debugidx‘: 0, ‚fullLine‘: False, ‚dsCount‘: 32, ‚usCount‘: 4, ‚isDebug‘: False, ‚externAPHeader‘: ‚Kopfstelle (CMTS)‘, ‚dsCountSecond‘: 1, ‚line‘: [{’state‘: ‚ready‘, ‚timePrefix‘: ‚Verbindungsdauer:‘, ‚trainState‘: ‚aktiv‘, ‚mode‘: ‚DOCSIS 3.0 und DOCSIS 3.1‘, ‚trainStatePrefix‘: ‚Kabel-Internet:‘, ‚time‘: ‚288 Stunden 44 Minuten 55 Sekunden‘}], ‚usCountSecond‘: 1, ’showCableImg‘: True, ‚usFreqs‘: {‚max‘: 85, ‚values‘: {‚docsis3_1‘: [[29, 64]], ‚docsis3_0‘: [51, 30, 37, 44]}, ‚min‘: 5}, ‚dsRate‘: ‚1150 Mbit/s‘, ‚usRate‘: ‚56,7 Mbit/s‘, ‚dsFreqs‘: {‚max‘: 1218, ‚values‘: {‚docsis3_1‘: [[151, 324]], ‚docsis3_0‘: [642, 114, 130, 138, 146, 602, 618, 626, 650, 658, 666, 674, 682, 690, 698, 706, 714, 722, 730, 738, 746, 754, 762, 770, 778, 786, 794, 802, 810, 818, 826, 834]}, ‚min‘: 108}}}, ’sid‘: ‚bfb40e062f09c063′}‘, got “

    In der InfluxDB habe ich aber trotzdem Daten. Was bedeutet dieser Fehler?
    Danke und Gruß,
    Torsten

    Antworten
  • Hallo,
    vielen Dank für dem hilfreichen Beitrag.
    Ich habe meine Proxmox Umgebung mit InfluxDB und Grafana neu eingerichtet und dabei gleich mal diese neue Version für meine Fritzbox mit installiert und es läuft! 🙂

    Grüße,
    Holger

    Antworten
  • Hallo zusammen,
    ich habe leider auch das Problem das nicht wirklich etwas in die Datenbank geschrieben wird. Es ist eine Kabelbox und die Verbindung steht soweit.

    (.venv) root@raspberrypi:/opt/fritzinfluxdb# ./fritzinfluxdb.py
    2022-09-14 20:19:12,287 – INFO: Starting fritzinfluxdb v1.0.1 (2022-08-22)
    2022-09-14 20:19:12,293 – INFO: Done reading config files
    2022-09-14 20:19:12,403 – INFO: Successfully parsed config
    2022-09-14 20:19:12,423 – INFO: Connection to InfluxDB 1.8.10 established and da tabase present
    2022-09-14 20:19:15,061 – INFO: Successfully established FritzBox TR-069 session
    2022-09-14 20:19:15,252 – INFO: Successfully established FritzBox Lua session
    2022-09-14 20:19:15,253 – INFO: Successfully connected to FritzBox ‚192.168.10.1 ‚ (fritz.box) Model: FRITZ!Box 6690 Cable – FW: 7.29
    2022-09-14 20:19:15,262 – INFO: Starting main loop
    2022-09-14 20:19:15,643 – INFO: Requested invalid action ‚GetInfo‘ for service: WANDSLInterfaceConfig
    2022-09-14 20:19:15,643 – INFO: Querying action ‚GetInfo‘ will be disabled
    2022-09-14 20:19:15,667 – INFO: Requested invalid action ‚GetStatisticsTotal‘ fo r service: WANDSLInterfaceConfig
    2022-09-14 20:19:15,667 – INFO: Querying action ‚GetStatisticsTotal‘ will be dis abled
    2022-09-14 20:19:15,689 – INFO: Requested invalid action ‚X_AVM-DE_GetDSLInfo‘ f or service: WANDSLInterfaceConfig
    2022-09-14 20:19:15,690 – INFO: Querying action ‚X_AVM-DE_GetDSLInfo‘ will be di sabled
    2022-09-14 20:19:15,690 – INFO: All actions for service ‚WANDSLInterfaceConfig‘ are unavailable. Disabling service.
    2022-09-14 20:19:15,757 – INFO: Requested invalid action ‚GetInfo‘ for service: WANPPPConnection:1
    2022-09-14 20:19:15,757 – INFO: Querying action ‚GetInfo‘ will be disabled
    2022-09-14 20:19:15,758 – INFO: All actions for service ‚WANPPPConnection:1‘ are unavailable. Disabling service.
    2022-09-14 20:19:24,146 – INFO: Unable to request FritzBox Lua service ‚DSL Info‘
    2022-09-14 20:19:24,147 – INFO: FritzBox Lua service ‚DSL Info‘ will be disabled.

    any idea??

    Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.