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
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
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
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
Hallo Geert,
aber die Befehle
cp /opt/fritzinfluxdb/fritzinfluxdb.service /etc/systemd/system
laufen bei dir durch ohne Fehlermeldung?sudo systemctl daemon-reload
sudo systemctl start fritzinfluxdb
sudo systemctl enable fritzinfluxdb
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
stand 😀sudo pip3 install influxdb
Und guck mal die Auslastung deiner CPU an beim fetchen, vielleicht ist die einfach überlastet?
Grüße
Simon
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.
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.
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‘.
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.
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
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 :)
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
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
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 Alex,
das wird (hoffentlich :o) easy: Du importierst das alte Dashboard das die collectd-Daten erwartet.
Du musst das hier: https://raw.githubusercontent.com/karrot-dev/fritzinfluxdb/master/grafana_dashboard_fritzbox.json importieren 🙂
Dann sollte es klappen.
Viel Glück
Simon
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
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
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
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.
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
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
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
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.
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?
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
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.
Hallo Jürgen,
das sieht gut aus, daher gehe ich mal davon aus, dass die Daten ankommen. Wenn du im Grafana unter „Explore“ guckst: Sind da Daten?
Und hast du das richtige Dashboard importiert? Du benötigst das hier: https://raw.githubusercontent.com/karrot-dev/fritzinfluxdb/master/grafana_dashboard_fritzbox.json und das alte, vom alten Script ist nicht mehr nutzbar.
Grüße, Simon
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.
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
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
Hi Dennis,
hast du jemals eine Lösung gefunden? Ich hänge nämlich an der selben Problematik fest…
Gruß
Guido
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.
Hallo, hat jemand eine funktionierende URL für das Grafana Dashbaord? Alle URLs hier zeigen einen 404.
Danke und Gruß,
Torsten
Es gab offenbar ein Update vom Script und der Autor hat die Beispiele verschoben.
Hier sind die Scripte jetzt: https://github.com/bb-Ricardo/fritzinfluxdb/tree/master/grafana
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
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
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??
Ich habe folgendes dazu gefunden (wenn es nicht sogar dein Issue ist :D): https://github.com/bb-Ricardo/fritzinfluxdb/issues/57
Es scheint inzwischen einen fix dafür zu geben!
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
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.
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
Das sieht so aus als wäre die ini nicht vorhanden. Dann kannst du einfach die hier nehmen (und als fritzinfluxdb.ini speichern):
https://github.com/bb-Ricardo/fritzinfluxdb/blob/master/fritzinfluxdb-sample.ini
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
Hi Guido,
ja, das ist korrekt, da hab ich mich vertan. Ich habs geändert. Vielen Dank für den Hinweis!
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
Hallo, die Daten müssen in der „/opt/fritzinfluxdb/fritzinfluxdb.ini“ eingegeben werden. Je nach InfluxDB-Version in verschiedenen Zeilen.
Hier die original-Datei: https://github.com/bb-Ricardo/fritzinfluxdb/blob/master/fritzinfluxdb-sample.ini Dort ist es Zeile 49-56 für v1 und 61-70 für v2.
Viel Glück 🙂
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
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‘
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
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
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
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
Hi Jörg
schaut man sich https://github.com/bb-Ricardo/fritzinfluxdb/blob/186de65d3875bd76abaf897d26c64e61d353e502/fritzinfluxdb/classes/fritzbox/model.py#L57
mal genauer an, vermute ich das der FRITZ!Box Typ nicht sauber erkannt wird.
Es gibt bereits eine 7590 DLS. Deine hat den Zusatz AX. Das ist wohl neu.
Grüße
R
Nachtrag zum Link Type (DSL / Cable)
hier wäre ein manueller Aufruf mit „-v“ oder „-vv“ für mehr Output nützlich. Wobei „-vv“ für sehr viel mehr Output sorgt.
Aus dem README:
-v, –verbose turn on verbose output to get debug logging. Defining ‚-vv‘ will also print out all http calls
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
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
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.
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
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)
Hallo,
super Sache.
Leider lief der autostart nicht. da brauchte es noch einen
sudo pip3 install -r requirements.txt
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….
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‘
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…
ok – nach etwas mehr Recherche war das wohl nicht der Fehler. v1.2.0 hat das bereits drin
Hallo Simon,
vielen Dank für die Anleitung. Hat geklappt.
Wo finde ich eine Beschreibung bzgl. der Daten, die von der Fritzbox kommen?
Link geht leider nicht…(Fehler404)
https://raw.githubusercontent.com/karrot-dev/fritzinfluxdb/master/grafana_dashboard_fritzbox.json importieren
Bitte um Unterstützung!
Matthias
Findet sich jetzt hier: https://github.com/bb-Ricardo/fritzinfluxdb/tree/main/grafana
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
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.
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
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!!
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
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
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.
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?
Also eigentlich sollte das mit dem kopieren der .service geklappt haben.
Was sagt denn „sudo systemctl status fritzinfluxdb“?
„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
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‘
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