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.
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.
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
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---
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.
Syntax-Highlighting für InfluxDB in Java-Anwendungen
01.12.2019
Wie bereits in einem früheren Artikel beschrieben beschäftige ich mich derzeit mit Ideen, Echtzeitdatenbanken und speziell InfluxDB in die sQLshell zu integrieren.
Weiterlesen...Android Basteln C und C++ Chaos Datenbanken Docker dWb+ ESP Wifi Garten Geo Go GUI Gui Hardware Java Jupyter Komponenten Links Linux Markdown Markup Music Numerik OpenSource PKI-X.509-CA Python QBrowser Rants Raspi Revisited Security Software-Test sQLshell TeleGrafana Verschiedenes Video Virtualisierung Windows Upcoming...
In eigener Sache...
Weiterlesen...Nachdem der Security Manager in Java ja nun abgekündigt ist, wollte ich mich noch einmal ausführlich darum kümmern, was dieses Konzept eigentlich kann und was nicht- und ob es letztlich verdient auf dem Scheiterhaufen landet.
Weiterlesen...Ich habe mein Projekt mit Skripts und Skriptfragmenten für Gnuplot wieder einmal überarbeitet und ein wenig erweitert.
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, muss 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 Codeberg-Repositories findet man hier.