FritzBox, Monitoring, TR064

09.02.2019

Ich wollte nach meinen diversen Experimenten mit Influx und Grafana nun auch die FritzBox in die Überwachung einbeziehen.

Das erwies sich als weitaus schwieriger, als ich zunächst berfürchtet hatte - und ich hatte schwierigkeiten befürchtet! Ich fand diverse Links, die mir zunächst einmal die Idee beerdigten, vielleicht einfach per SNMP an die FritzBox herantreten zu können. Die einzigen Möglichkeiten blieben UPNP (TR064) und das Parsen der Weboberfläche.

Obwohl ich Webseiten gerne crawle und Inhalte extrahiere - ich habe dazu inzwischen ein fettes Framework erstellt, in das ich als letztes Mosaiksteinchen auch Selenium integriert habe um mit OnePage-Webanwendungen klarzukommen - schien mir das in diesem Use Case die schlechteste mögliche Variante: Zunächst einmal würde dieser Vorgang sehr oft geschehen und dann (bei mir zumindest) auch noch auf meinem Raspi - also fällt irgendetwas Ressourcen fressendes schon mal aus.

Also versuchte ich als nächstes, Informationen darüber zu gewinnen, wie ich die TR064-Schnittstelle für meine Zwecke nutzen könnte. AVM dokumentiert diese Schnittstelle zwar ausführlich - aber absolut allgemein - weder werden Frameworks empfohlen, noch Beispiele in konkreten Programmiersprachen dargestellt.

Also habe ich mein Netz weiter ausgeworfen - ich fand eine Lösung für Python - allerdings brachte die mich nicht wirklich weiter: Zwar könnte ich ein Python-Skript, das minütlich auf meinem Raspi läuft tolerieren, allerdings spielte diese Lösung mit meiner FritzBox und meiner Firmware-Version überhaupt nicht zusammen.

Interessanterweise fand ich dann noch ein Projekt auf Github, das eine Java-Schnittstelle anbot. Diese funktionierte ganz ausgezeichnet bei mir - allerdings musste ich leider aus Prinzip darauf verzichten, diese Lösung einzusetzen - Java aufm Raspi? Also bitte!

Sehr interessant fand ich einen Artikel, der beschrieb, wie man an diese Informationen über die TR064-Schnittstelle mittels Bash herankommen könnte. Ich versuchte das und die Beispiele im Artikel funktionierten hervorragend. Damit war ich zunächst in der Lage, die Informationen mittels telegraf in InfluxDB einzuspeisen und sie anschließend per Grafana zu visualisieren. Das reichte mir aber noch nicht: Ich wollte mehr.

Die oben erwähnte Java-Bibliothek gab mir Gelegenheit, die TR064-Schnittstelle meiner FritzBox zu erforschen - ich fand noch diverse interessante Services und Aktionen, die weitere Diagnosedaten liefern konnten. Ich versuchte daraufhin die Skripte aus dem Artikel zum Thema "Bash und TR064" so anzupassen, dass ich auch diese nutzen konnte. Hier waren aber offenbar Kunstgriffe zu beachten, die sich mir nicht erschlossen - ich erlebte einen Fehlschlag nach dem anderen.

Kur bevor ich aufgab, fand ich dann noch ein vielversprechenendes Github-Repository: In diesem konnte man ein Bsh-Skript finden, das diverse Werte aus einer FritzBox auslas und sogar welche setzen konnte. Ich versuchte die Services, die ich mittels meienr Experimente mit der Java-Bibliothek gefunden hatte, mittels dieses Skripts abzufragen und hatte fast auf Anhieb Erfolg. Allerdings konnte das Skript im Repository nur wenig mehr als Aussagen darüber zu treffen, ob das Wifi aktiv ist oder nicht.

Daher forkte ich das Repository und entwickelte das Skript in meinem Fork weiter.

In diesem Form kann man nun Daten zu den WLAN-Schnittstellen abfragen, zum WAN, zum LAN,... Getestet habe ich es aber bisher nur mit meiner eigenen Kabel-Fritzbox - es wäre schön, wenn sich Leute fänden, die mir Feedback zu den Ergebnissen auf anderen Geräten geben könnten.

Artikel, die hierher verlinken

MQTT + Raspi + Grafana

16.02.2019

Ich sammle ja jetzt langsam mehr und nehr Erfahrungen mit Grafana - dabei dachte ich mir, dass ich doch mal versuchen könnte, Grafana mit MQTT zu verbinden.

Gitlab Badges

12.02.2019

Nachdem ich in meinem bislang jüngsten Github-Projekt meine Liebe zu Badges entdeckt habe, wollte ich versuchen, das in meinem lokalen Gitlab ebenfalls zu nutzen

Telegraf und Windows

12.02.2019

Telegraf, InfluxDB und Grafana sind ein eingespieltes Team und einfach ein Traum wenn man IT-Systeme überwachen will - sogar Fritz-Boxen. Nur unter Windows ist das schwer---

Vorhaben 2019

09.02.2019

Obwohl ich ja finde, dass der erste Januar jetzt nicht so ein spezieller Tag ist, schreibe ich mir doch um diesen Tag rum immer mal wieder ein "Listche", auf dem ich mir Vorhaben notiere, die ich mit mittlerem zeitlichen Horizont anzugehen gedenke.

Alle Artikel rss Wochenübersicht Monatsübersicht Github Repositories Gitlab Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Certstream, InfluxDB, Grafana und Netflix

    16.04.2019

    Nachdem ich vor kurzem über mein erstes Spielen mit dem certstream berichtete, habe ich weitere Experimente gemacht und die Daten zur besseren Auswertung in eine InfluxDB gepackt, um sie mit Grafana untersuchen zu können.

    Weiterlesen...

Neueste Artikel

  • Die sQLshell ist nun cloudnative!

    Die sQLshell hat eine weitere Integration erfahren - obwohl ich eigentlich selber nicht viel dazu tun musste: Es existiert ein Projekt/Produkt namens steampipe, dessen Slogan ist select * from cloud; - Im Prinzip eine Wrapperschicht um diverse (laut Eigenwerbung mehr als 140) (cloud) data sources.

    Weiterlesen...
  • LinkCollections 2024 III

    Nach der letzten losen Zusammenstellung (für mich) interessanter Links aus den Tiefen des Internet von 2024 folgt hier gleich die nächste:

    Weiterlesen...
  • Funktionen mit mehreren Rückgabewerten in Java

    Da ich seit nunmehr einem Jahr bei meinem neeun Arbeitgeber beschäftigt und damit seit ungefähr derselben Zeit für Geld mit Python arbeite, haben sich gewisse Antipathien gegenüber Python vertieft (ich kann mit typlosen Sprachen einfach nicht umgehen) - aber auch einige meiner Gründe, Python zu lieben sind ebenso stärker geworden. Einer davon ist der Fakt, dass eine Methode in Python mehr als einen Wert zurückgeben kann.

    Weiterlesen...

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muß damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen GitHub-Repositories findet man hier - meine öffentlichen GitLab-Repositories finden sich dagegen hier.