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

  • Aviator + Websockets

    15.06.2019

    Nachdem ich in den letzten Wochen und Monaten meine Zeit und Energie in die sQLshell gesteckt habe - was sowohl Bugfixing als auch neue Features betraf - habe ich nun endlich die Zeit gefunden, ein bereits lange überfälliges Feature an dWb+ und speziell am aviator zu implementieren.

    Weiterlesen...

Neueste Artikel

  • Neue Version plantumlinterfaceproxy napkin look

    Es gibt eine neue Version des Projektes plantumlinterfaceproxy - Codename napkin look.

    Weiterlesen...
  • Apache HTTPCore5 funktioniert nicht mit Docker

    Ich habe neulich drei Stunden meines Lebens verschwendet weil ich unbedingt die neueste Version der HTTPCore5 Library von Apache einsetzen wollte.

    Weiterlesen...
  • Entwurfsmodus für beliebige SVG Graphiken

    Nachdem ich in der Vergangenheit immer wieder Weiterentwicklungen der Idee vorgestellt habe, Graphiken mit dem Computer so zu ezeugen dass sie eine gewisse "handgemachte" Anmutung haben, habe ich nunmehr die durchschlagende Idee gehabt:

    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.