Posted

in

Updated

Datenvolumen der Fritzbox mit Python-Programm abfragen

Mich hat interessiert, wie viel Megabyte Daten ich an einem Homeoffice-Tag downloade und uploade und wie das Datenvolumen im Zeitverlauf aussieht.

Das folgende kleine Skript liefert die dafür nötigen Daten:

from fritzconnection import FritzConnection

def traffic_monitor():
    con = FritzConnection(address='192.168.178.1',password='PASSWORD')
    traffic_down = con.call_action('WANCommonInterfaceConfig','GetTotalBytesReceived')['NewTotalBytesReceived']
    traffic_up = con.call_action('WANCommonInterfaceConfig','GetTotalBytesSent')['NewTotalBytesSent']

Ruft man die Funktion traffic_monitor() beispielsweise alle 3 Minuten automatisiert auf, kann man das Fritbox-Datenvolumen im Zeitverlauf aufzeichnen. Dazu kann man z. B. bei jedem Aufruf der Funktion die Werte in einer .csv Datei als neue Zeile anhängen und die Daten anschließend mit einem separaten Programm visualisieren.

Die abgerufenen Werte sind Bytes, um auf Megabytes zu kommen musst du also noch durch 1.000.000 teilen.

Wichtig dabei ist noch, dass die Fritz!Box die Anzahl downgeloadeter und upgeloadeter Bytes fortlaufend in einem internen Zähler speichert. Möchtest du also beispielsweise wissen, wie viele Daten du an einem Tag heruntergeladen hast, müsstest du mit oben beschriebener Funktion den Zähler einmal um 0:00 Uhr und einmal um 23:59 Uhr auslesen und die Differenz der beiden Zählerstände berechnen.

Wichtig dabei ist, dass der Download-Zähler und der Upload-Zähler der Fritz!Box 32-bit Zahlen sind. Bei 2^32 – 1 = 4.294.967.295 also ungefähr 4,3 GB laufen diese also über und fangen wieder bei 0 an.

Das fritzconnection Paket verwendet das TR-064 Protokoll. Mit diesem können viele weitere Funktionen auf der Fritzbox ausgeführt werden. Hier ein paar nützliche Quellen, wenn du noch tiefer einsteigen möchtest:

https://avm.de/service/schnittstellen/ (Unter dem Reiter „Apps / TR-064“ findest du viele weiterführende Informationen)

https://pypi.org/project/fritzconnection/ (Installation und Quickstart)

https://fritzconnection.readthedocs.io/en/1.12.0/ (Dokumentation)

Schreibe mir gerne in die Kommentare, welche Aufgaben du mit Python und dem TR-064 Protokoll für deinen Router programmiert hast!

Bild: Hallertau at boxmatrix.info & ™/®Python Software Foundation – http://www.python.org/community/logos/

Kommentare

Schreibe einen Kommentar

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

Consent Management Platform von Real Cookie Banner