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-sample.ini /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.

84 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
        • Ah, habe es -glaube ich- rausgefuchst:
          In der fritzinfluxdb.ini ist [service6] für WANDSLInterfaceConfig.
          Wenn man das auskommentiert (#) geht es. Was auch sinn macht, weil meine Fritzbox kein DSL hat.
          (Das hier brachte mich auf die Idee: https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/x_contactSCPD.pdf?msclkid=2204ecd1a53e11eca5351a30f28ccb97 )

          Jetzt wäre natürlich spannend was die Entsprechung für meine Fibre Fritzbox ist, vielleicht hat jemand eine Idee sonst recherchiere ich die nächsten Tage mal.

          Antworten
          • Ah, super dass es geklappt hat und dass du die Lösung hier auch geteilt hast, das war mir nämlich auch neu.
            Ich hab selber eine Kabelbox und hatte das Problem nicht.
            Auf der github-Seite wird auf folgenden link für weitere Parameter verwiesen: https://wiki.fhem.de/w/index.php?title=FRITZBOX

            Vielleicht ist da was interessantes bei was hilft. Ich hab mir zwar vorgenommen da mal durch zu gucken, habs aber noch nicht geschafft.

            Vielen Dank
            Simon

          • In der fritzinfluxdb.ini finde ich weder „[service6]“ noch „WANDSLInterfaceConfig“
            Wo hast du das wirklich gefunden?
            Aktuell hab ich mit der 5530 auch Probleme, obwohl es (vor einem Update) noch lief.

          • Die Sample-ini sieht aktuell auch anders aus als meine von damals. Ich hab die mal hier verlinkt:
            http://nopaste.gwarg.de/23870

            Vielleicht kann man das auch einfach weiterhin hinzufügen um die werte abzufragen.

  • 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
    • Hi Dennis,

      hast du jemals eine Lösung gefunden? Ich hänge nämlich an der selben Problematik fest…

      Gruß
      Guido

      Antworten
      • Die Daten werden bei mir alle direkt gesammelt.
        In den Queries taucht dann bei „name“= die Heizkörper unter den in der Fritzbox vergebenen Namen auf.
        Auch der Fritz Taster ist vorhanden. Bei den Values stehen sie als ha_*.

        Viel Erfolg.

        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
  • Bei meiner Kabel-Fritte hat das bisher auch alles ganz gut funktioniert. Seit gestern hab ich eine FB5530 und da tauchen im Log jetzt Meldungen zu TR-069 auf. Die FB5530 unterstützt aber TR-064.
    Soweit scheint aber ales zu funktionieren, das Grafana-Dashboard zeigt fleissig die Daten.

    Fehlermeldungen lauten:
    Okt 05 12:06:43 debian3 fritzinfluxdb[20738]: ERROR: Failed to connect to FritzBox TR-069 ‚192.168.178.1‘: UPnPError:
    Okt 05 12:06:43 debian3 fritzinfluxdb[20738]: errorCode: 820
    Okt 05 12:06:43 debian3 fritzinfluxdb[20738]: errorDescription: Internal Error

    Antworten
    • Scheint etwas mit der UPnP-Verbindung zu sein. Läuft das in einem Docker-Container? Da scheint es manchmal probleme beim aufbau der Verbindungen zu geben.

      Antworten
  • Hallo.
    Frage:
    sudo apt install influxdb: Muss noch was konfiguriert werden?

    Problem:
    Successfully installed fritzconnection-1.10.3
    (.venv) marcus@Mintlinux:/opt/fritzinfluxdb$ sudo cp /opt/fritzinfluxdb/./fritzinfluxdb.ini-sample /opt/fritzinfluxdb/fritzinfluxdb.ini
    cp: Aufruf von stat für ‚/opt/fritzinfluxdb/./fritzinfluxdb.ini-sample‘ nicht möglich: Datei oder Verzeichnis nicht gefunden

    Antworten
  • Hi Simon,

    sollte es hier nicht ./fritzinfluxdb-sample.ini.. sein?
    –>
    # Erst die INI kopieren:
    sudo cp /opt/fritzinfluxdb/./fritzinfluxdb.ini-sample /opt/fritzinfluxdb/fritzinfluxdb.ini

    Antworten
    • Hi Guido,
      ja, das ist korrekt, da hab ich mich vertan. Ich habs geändert. Vielen Dank für den Hinweis!

      Antworten
  • Hallo und gute Tag,

    bin der Anleitung soweit gefolgt.
    Leider scheiter ich an der Punkt ./fritzinfluxdb.px
    2022-11-06 15:30:00,892 – INFO: Starting fritzinfluxdb v1.1.0 (2022-11-02)
    2022-11-06 15:30:00,893 – INFO: Done reading config files
    2022-11-06 15:30:00,894 – ERROR: InfluxDB hostname not defined
    2022-11-06 15:30:00,894 – ERROR: InfluxDB username not defined
    2022-11-06 15:30:00,895 – ERROR: InfluxDB password not defined
    2022-11-06 15:30:00,895 – ERROR: InfluxDB database not defined

    Welche Angaben muss ich in der /opt/fritzinfluxdb/fritzinfluxdb.ini eintragen

    Würde mich freuen, wenn ich hierfür eine Lösung erhalten könnte.
    Gerade für Newbies wie mir.

    Gruß aus Bochum
    S4SH

    Antworten
      • Hallo Simon,
        habe es jetzt soweit hinbekommen.
        Aber auch nur, da ich in der ini Datei folgende Daten eingegeben habe:
        (nur den Benutzernamen und das FB Passwort reichen nicht)
        hostname = 192.168.178.4 (IP des Raspi400)
        username = admin
        passwort = admin
        database = fritzbox

        Hier aber wohl die nächste Hürde

        (.venv) admin@raspberrypi:/opt/fritzinfluxdb $ ./fritzinfluxdb.py
        2022-11-10 21:34:28,181 – INFO: Starting fritzinfluxdb v1.1.0 (2022-11-02)
        2022-11-10 21:34:28,183 – INFO: Done reading config files
        2022-11-10 21:34:28,229 – INFO: Successfully parsed config
        2022-11-10 21:34:28,246 – INFO: Connection to InfluxDB 1.6.7~rc0 established and database present
        2022-11-10 21:34:30,352 – INFO: Successfully established FritzBox TR-069 session
        2022-11-10 21:34:30,689 – INFO: Successfully established FritzBox Lua session
        2022-11-10 21:34:30,690 – INFO: Successfully connected to FritzBox ‚192.168.178.1‘ (fritz.box) Model: FRITZ!Box 7590 (DSL) – FW: 7.29
        2022-11-10 21:34:30,693 – INFO: Starting main loop
        2022-11-10 21:34:37,208 – ERROR: FritzBox metric type “ does not match data:
        ^C
        2022-11-10 21:34:53,231 – INFO: Received exit signal SIGINT…
        2022-11-10 21:34:53,231 – INFO: Cancelling 4 outstanding tasks
        2022-11-10 21:34:53,234 – INFO: Closed FritzBox TR-069 connection
        2022-11-10 21:34:53,234 – INFO: Closed FritzBox Lua connection
        2022-11-10 21:34:53,235 – INFO: Closed InfluxDB session
        2022-11-10 21:34:53,235 – INFO: Successfully shutdown fritzinfluxdb

        Antworten
  • Okay, danke, ich werde mal diese INI nehmen.
    Aktuell klappt nichtmal der Abruf der /data.lua
    ERROR: Unable to perform request to ‚http://192.168.178.1/data.lua‘

    Antworten
  • Hallo zusammen,

    bei mir läuft das script im Manuelle modus ohne Fehler.

    Beim Start als service bekomme ich folgenden Fehler im syslog:

    Dec 27 14:01:25 ind-s-iob01 systemd[1]: fritzinfluxdb.service: Main process exited, code=exited, status=203/EXEC
    Dec 27 14:01:25 ind-s-iob01 systemd[1]: fritzinfluxdb.service: Failed with result ‚exit-code‘.
    Dec 27 14:01:30 ind-s-iob01 systemd[1]: fritzinfluxdb.service: Scheduled restart job, restart counter is at 457.
    Dec 27 14:01:30 ind-s-iob01 systemd[2842138]: fritzinfluxdb.service: Failed to locate executable /opt/fritzinfluxdb/.venv/bin/python: No such file or directory
    Dec 27 14:01:30 ind-s-iob01 systemd[2842138]: fritzinfluxdb.service: Failed at step EXEC spawning /opt/fritzinfluxdb/.venv/bin/python: No such file or directory
    Dec 27 14:01:30 ind-s-iob01 systemd[1]: fritzinfluxdb.service: Main process exited, code=exited, status=203/EXEC

    Ich denke ich hab bei der Installation irgendwo hier einen Fehler gemacht:

    cd fritzinfluxdb
    sudo virtualenv –system-site-packages -p python3 .venv
    . .venv/bin/activate
    # ab hier im (.venv)-modus
    pip3 install -r requirements.txt

    Was genau bedeutet „# ab hier im (.venv)-modus“ ??

    Danke euch
    Stefan

    Antworten
    • Hallo Stefan,
      wenn Du „. .venv/bin/activate“ eingegeben hast, dann bist Du in der virtuellen Python Shell und der Prompt ändert sich (vorangestelltes „(.venv)“):
      pi@piFritzInfluxDB:/opt/fritzinfluxdb$ . .venv/bin/activate
      (.venv) pi@piFritzInfluxDB:/opt/fritzinfluxdb$

      In dieser „Shell“ werden dann die weiteren Befehle eingegeben.

      Gruß
      Jörg

      Antworten
      • Dank Dir, ja das hab ich übersehen.
        Leider ist der Pfad bei mir etwas anders.

        Bei mir liegt das activate script unter:
        /opt/fritzinfluxdb/.venv/local/bin

        nicht
        /opt/fritzinfluxdb/.venv/bin

        Antworten
  • Hallo,
    Wie einige oben läuft bei mir auch nur der manuelle Modus. Der Service startet mit diesem Output und bleibt im activating hängern-wird nie aktiv. Bei mir läuft alles in lxc-Containern.
    A) Warum geht „http://192.168.178.1/data.lua“ nicht? (auch manueller mode)
    B) muss man den FritzBox Typ irgendwo eingeben. Habe keine Cable sondern DSL 7590AX
    C) Warum startet der Service nicht. (Bei den drei „systemctl“ Befehlen gibt es keine Fehlerausschrift.

    manuell:
    =========
    (.venv) pi@piFritzInfluxDB:/opt/fritzinfluxdb$ ./fritzinfluxdb.py
    2022-12-28 12:34:39,010 – INFO: Starting fritzinfluxdb v1.2.0 (2022-12-23)
    2022-12-28 12:34:39,013 – INFO: Done reading config files
    2022-12-28 12:34:39,092 – INFO: Successfully parsed config
    2022-12-28 12:34:39,103 – INFO: Connection to InfluxDB 2 established
    2022-12-28 12:34:42,988 – INFO: Successfully established FritzBox TR-069 session
    2022-12-28 12:34:43,484 – INFO: Successfully established FritzBox Lua session
    2022-12-28 12:34:43,484 – INFO: Successfully connected to FritzBox ‚192.168.179.1‘ (fritz.box) Model: FRITZ!Box 7590 AX (DSL) – FW: 7.31
    2022-12-28 12:34:43,486 – INFO: Starting main loop
    2022-12-28 12:34:47,804 – INFO: Service ‚Cable Info (Fritz!OS 7.29 – latest)‘ not applicable for this FritzBox Model Link type ‚DSL‘
    2022-12-28 12:34:58,047 – ERROR: Unable to perform request to ‚http://192.168.178.1/data.lua‘: HTTPConnectionPool(host=’192.168.179.1′, port=80): Read timed out. (read timeout=10)
    2022-12-28 12:34:58,047 – ERROR: Unable to request FritzBox Lua service ‚System logs‘, no data returned
    2022-12-28 12:34:58,047 – INFO: FritzBox Lua service ‚System logs (Fritz!OS 7.29 – 7.38)‘ will be disabled.

    Service:
    ========
    (.venv) pi@piFritzInfluxDB:/opt/fritzinfluxdb$ sudo systemctl | grep fritz
    fritzinfluxdb.service loaded activating auto-restart Fritz to InfluxDB daemon

    Gruß und Danke
    Jörg

    Antworten
  • Hallo zusammen,

    erst einmal ein Danke für diese Anleitung. Ich habe dies soweit in einem lxc-Container nach Anleitung installiert, komme aber nun nicht weiter. In der fritzinfluxdb.ini habe ich für meine InfluxDB2 alles eingetragen, beim Start erhalte ich jedoch immer wieder einen Fehler 401/Unauthorized.
    Kann mir hier jemand einen Hinweis oder Beispiel der Konfiguration geben?

    Danke & Grüße

    Antworten
    • Hallo,
      ich war letzte Woche scheinbar etwas blind. Wenn man influxdb2.x nutzt, muss in der ini-Datei auch die Version korrekt konfigurieren. Default ist diese nämlich auf v1 eingestellt.

      Grüße

      Antworten
  • Ahoi,
    ich betreibe den Service auf einem Raspberry Pi. Für alle, die die Servicestartprobleme hatten, tragt in der Datei /etc/systemd/system/fritzinfluxdb.service für User und Group jeweils „pi“ ein. Nach einem Daemon-reload hat es bei mir dann auf Anhieb geklappt und das Pythonskript lief dauerhaft im Hintergrund.

    VG, Nils.

    Antworten
    • Danke! Der Tip war super!
      Für pi user die Datei(en) anpassen:
      /opt/fritzinfluxdb/fritzinfluxdb.service + /etc/systemd/system/fritzinfluxdb.service
      User=pi
      Group=pi

      Gruß
      Jörg

      Antworten
  • Hallo
    Die manuelle Installation läuft bei mir problemlos. Leider konnte ich den Service nicht automatisch starten. Blieb immer im „Activating“ Modus hängen. Ich betreibe alles unter Ubuntu 22.04 (Influxdb2/Flux).
    Mit dem Befehl :
    cat /var/log/syslog | grep „fritzinfluxdb“
    habe ich gesehen dass die module „xmltodict“ und „influxdb-client“ Fehler verursachten.
    Nachdem ich folgende Befehle eingegeben habe waren die Fehler behoben :

    sudo apt-get install -y python3-xmltodict
    sudo pip3 install influxdb-client
    sudo systemctl daemon-reload
    sudo systemctl status fritzinfluxdb –> active running

    BG

    Pat

    (Dashboards für FLEX findet man unter https://github.com/bb-Ricardo/fritzinfluxdb/tree/main/grafana/influx2_dashboards)

    Antworten
  • Hallo,

    super Sache.
    Leider lief der autostart nicht. da brauchte es noch einen
    sudo pip3 install -r requirements.txt

    Antworten
  • Es wäre ja nicht IT, wenn es einfach nur laufen würde!!

    Nun kommt nach einem Update des Systems:

    ERROR: Failed to write to InfluxDB : HTTPConnectionPool(host=’127.0.0.1′, port=8086): Max retries exceeded with url: /write?db=db&precision=ms (Caused by NewConnectionError(‚: Failed to establish a new connection: [Errno 111] Connection refused‘))

    ICH…BRECH…INS…MÜSLI!!!

    Wer sachdienliche Hinweise liefern könnte, bekommt nen Muckefuck spendiert…;-).

    Und ja: Ich bin STINKSAUER…;-(!

    Wie war das? DEVELOPER, DEVELOPER, DEVELOPER!

    VM rennt heiß, Auswertung NADA. Lt.Datenquelle in Grafana alles bestens….

    Antworten
  • Ich habe ein Verständnisproblem. Nach Start von ./fritzinfluxdb.py wird folgendes ausgegeben, wobei das Script nicht endet d.h. es kommt kein Prompt mehr. Passt das so? Werden nun schon Daten in die influxdb geschrieben? Wie bekomme ich die Daten nun in Grafana bzw. welches JSON ist hier zu nehmen?

    Danke schon mal für die Hilfe!

    2023-02-22 10:30:20,030 – INFO: Starting fritzinfluxdb v1.2.1 (2023-01-26)
    2023-02-22 10:30:20,033 – INFO: Done reading config files
    2023-02-22 10:30:20,086 – INFO: Successfully parsed config
    2023-02-22 10:30:20,104 – INFO: Connection to InfluxDB 1.6.7~rc0 established and database present
    2023-02-22 10:30:26,275 – INFO: Successfully established FritzBox TR-069 session
    2023-02-22 10:30:27,040 – INFO: Successfully established FritzBox Lua session
    2023-02-22 10:30:27,041 – INFO: Successfully connected to FritzBox ‚192.168.178.1‘ (fritz.box) Model: FRITZ!Box 7590 (DSL) – FW: 7.50
    2023-02-22 10:30:27,046 – INFO: Starting main loop
    2023-02-22 10:30:38,521 – INFO: Service ‚Cable Info (Fritz!OS 7.29 – latest)‘ not applicable for this FritzBox Model Link type ‚DSL‘

    Antworten
    • Naja, steht ja quasi da:

      Successfully connected to FritzBox ‚192.168.178.1‘ (fritz.box) Model: FRITZ!Box 7590 (DSL) – FW: 7.50

      Service ‚Cable Info (Fritz!OS 7.29 – latest)‘ not applicable for this FritzBox Model Link type ‚DSL‘

      Der Code ist wohl leider noch nicht auf die neuere Firmware-Version der Fritzboxen angepasst…

      Antworten
      • ok – nach etwas mehr Recherche war das wohl nicht der Fehler. v1.2.0 hat das bereits drin

        Antworten
  • Hallo,
    lief alles eine Weile ganz gut. Habe jetzt die 7590AY auf 7.50 „upgegraded“ und es sind nun in Grafana keine VPN Daten mehr sichtbar.
    Alte IPSEC VPNs werden nicht mehr geführt und neue WireGuard auch nicht.

    Gruß
    Jörg

    Antworten
    • Update,
      sorry, war ein Fehlalarm. Der Dienst war nicht gestartet, da er wie oben beschrieben die FB „7590 AX“ nicht erkennt. Daher manuell gestartet
      – cd /opt/fritzinfluxdb/
      – . .venv/bin/activate
      – ./fritzinfluxdb.py -v
      und nun kommen alle VPN Verbindungen nach Grafana.
      Den Tip oben von R: https://github.com/bb-Ricardo/fritzinfluxdb/blob/186de65d3875bd76abaf897d26c64e61d353e502/fritzinfluxdb/classes/fritzbox/model.py#L57
      habe ich erstmal in meiner model.py um eine Zeile erweitert:
      „7590 AX“: FritzBoxLinkTypes.DSL,
      ob der Start als service nun klappt, muss ich noch testen.

      Antworten
      • mit dem Tip von @NilsS funktioniert nun endlich alles für die Fritzbox 7590 AX auch als Service und zusätzlich neuem Wireguard monitoring auf dem Raspberry Pi!
        – model.py Datei erweitert – s.o.
        – fritzinfluxdb.service angepasst:
        User=pi
        Group=pi

        Gruß Jörg

        Antworten
  • Hallo,

    ich bin Deiner Anleitung gefolgt und wollte gerade mit ./fritzinfluxdb.py das ganze testen, kriege jedoch folgende Fehlermeldung:

    2023-05-17 12:51:36,536 – INFO: Starting fritzinfluxdb v1.2.1 (2023-01-26)
    Error: Config Error: Source contains parsing errors: ‚/opt/fritzinfluxdb/./fritzinfluxdb.ini‘
    [line 67]: ‚token\n‘

    Scheinbar muss ich in der fritzinfluxdb.ini einen InfluxDB Token definieren. Ich verstehe nur leider nicht, was das bedeutet und was ich hier eintragen muss. Kann mir da jemand kurz helfen bitte?

    Danke im voraus!!

    Antworten
    • Wenn du eine InfluxDB 1 verwendest kannst du alles zur InfluxDB 2 auskommentieren. Wenn du die V2 benutzt musst du den Token in der InfluxDB 2 generieren

      Antworten
  • Danke für die Info, nun habe ich es hingekriegt.

    Eine andere Frage: Ich kann nun alle möglichen Daten der Fritzbox in Grafana darstellen, allerdings komme ich nicht an die Daten der beiden Dect 200-Geräte? Gibts dafür noch einen Trick?

    Viele Grüße,
    Philipp

    Antworten
    • Ich nochmal: Also wenn ich in die Fritzbox-InfluxDB schaue, dann sehe ich da folgendes:

      > show measurements
      name: measurements
      name
      —-
      fritzbox

      Wenn ich dann „select * from fritzbox“ eingebe, taucht in einem WUst von Daten der Name „Büro“ auf, welches meine Dect 200 ist. Ich kann aber in Grafana keinen Parameter namens „Büro“ finden.

      Antworten
      • Guten Abend,

        ich habe es endlich hinbekommen! Ich kann den Stromverbrauch der mit der Dect200 gemessen wird, in Grafana anzeigen. Ich war zu blöd, Grafana zu bedienen.

        Nun habe ich leider noch eine letzte Frage, dann lasse ich Euch in Ruhe. 🙂 Ich habe Fritzinfluxdb.py manuell gestartet und wie erwartet schaltet sich das nach einiger Zeit von selbst aus. Ich habe die folgenden Schritte befolgt:

        sudo cp /opt/fritzinfluxdb/fritzinfluxdb.service /etc/systemd/system
        sudo systemctl daemon-reload
        sudo systemctl start fritzinfluxdb
        sudo systemctl enable fritzinfluxdb
        sudo pip3 install fritzconnection
        sudo pip3 install influxdb
        Fritzinfluxdb.py

        Blöderweise stoppt die Fritzinfluxdb.py dennoch irgendwann. Woran könnte das liegen?

        Antworten
        • Also eigentlich sollte das mit dem kopieren der .service geklappt haben.
          Was sagt denn „sudo systemctl status fritzinfluxdb“?

          Antworten
          • „sudo systemctl status fritzinfluxdb“ ergibt folgende Ausgabe:

            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 Wed 2023-05-24 21:25:41 CEST; 2s ago
            Process: 1848 ExecStart=/opt/fritzinfluxdb/.venv/bin/python /opt/fritzinfluxdb/fritzinfluxdb.py -d (code=exited, status=1/FAILURE)
            Main PID: 1848 (code=exited, status=1/FAILURE)
            CPU: 572ms

  • was mir eben noch auffiel: Wenn ich fritzinfluxdb.py manuell starte kriege ich eine Fehlermeldung. Kann das damit zusammenhängen?

    2023-05-24 22:07:59,244 – INFO: Starting fritzinfluxdb v1.2.1 (2023-01-26)
    2023-05-24 22:07:59,247 – INFO: Done reading config files
    2023-05-24 22:07:59,247 – ERROR: Unable to parse ‚1.6.7‘ for ‚version‘ as int
    2023-05-24 22:07:59,295 – INFO: Successfully parsed config
    2023-05-24 22:07:59,314 – INFO: Connection to InfluxDB 1.6.7~rc0 established and database present
    2023-05-24 22:08:01,575 – INFO: Successfully established FritzBox TR-069 session
    2023-05-24 22:08:01,968 – INFO: Successfully established FritzBox Lua session
    2023-05-24 22:08:01,969 – INFO: Successfully connected to FritzBox ‚192.168.178.1‘ (fritz.box) Model: FRITZ!Box 6660 Cable (Cable) – FW: 7.29
    2023-05-24 22:08:01,971 – INFO: Starting main loop
    2023-05-24 22:08:03,139 – INFO: Service ‚DSL Info (Fritz!OS 7.29 – latest)‘ not applicable for this FritzBox Model Link type ‚Cable‘

    Ich habe eben auch in einem der anderen Threads hier gesehen, dass man in den .service-Dateien den User und Group auf Pi setzen soll. Hab ich gemacht und dann liefert sudo systemctl status fritzinfluxdb folgende Ausgaben:

    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 Wed 2023-05-24 22:13:06 CEST; 483ms ago
    Process: 3895 ExecStart=/opt/fritzinfluxdb/.venv/bin/python /opt/fritzinfluxdb/fritzinfluxdb.py -d (code=exited, status=217/USER)
    Main PID: 3895 (code=exited, status=217/USER)
    CPU: 0

    Antworten
  • Hallo,
    erhalte folgende Fehlermeldung beim Ausführen von # ./fritzinfluxdb.py

    Service ‚Cable Info (Fritz!OS 7.29 – latest)‘ not applicable for this Fri tzBox Model Link type ‚Ethernet‘

    Antworten
  • Hallo ich habe die Anleitung durch gearbeitet, alles gut gelaufen, leider habe ich aber eine Cable Fritzbox.
    INFO: Service ‚DSL Info (Fritz!OS 7.29 – latest)‘ not applicable for this FritzBox Model Link type ‚Cable‘
    Hat jemand eine Lösung?
    Gruß
    Michael

    Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert