erste Version am 01.12.2013
letzte Änderung am 31.10.2014
Bandbreitenmonitor v2.01
Ein kleines Programm zur Anzeige der
Bandbreiten-Nutzung von eth0 und FritzBox sowie [optional] der
Erreichbarkeit von Hosts und DLAN-Adaptern.
Lange haben ein paar liebgewonnene Tools meinen Wechsel von Windows
nach Linux verhindert - weil es für Linux nix entsprechendes gab.
Eins dieser unverzichtbaren Tools war das "Fritz!DSL Startcenter",
wurde von der Firma AVM nur für Windows angeboten und hat die
Auslastung meiner damals kümmerlichen 1-MBit-DSL-Leitung angezeigt.
Der Leidensdruck mit Windows wurde aber immer größer und so habe ich
mir zunächst ein paar Script-Sprachen angesehen, mich bald für
Python entschieden und als erstes Projekt den Bandbreitenmonitor
v1.0 in wenigen Stunden zusammengebastelt. Diese Version hat genau
das für Linux nachgebildet, was ich unter Windows [genutzt] hatte.
Es hat noch tkinter als GUI-Toolkit genutzt. Mittlerweile habe ich
wxWidgets schätzen gelernt und den Bandbreitenmonitor v2.0 mit
zusätzlichen Funktionen damit komplett neu erstellt.
Siehe dazu: http://www.ip-phone-forum.de/showthread.php?t=246673
Die Version 2.0 zeigt neben der Auslastung des Fritzbox-WANs
optional auch die Auslastung von eth0, die Erreichbarkeit von Hosts
und von Devolo- oder AVM-Powerline-Adaptern.
Bei der Version 2.01 ist für übereinander angezeigte Kurven
hinzugekommen, dass die kleinere Kurve in einer dritten
Farbe dargestellt wird, wenn bzw. wo sie von der höheren
Kurve überdeckt wird.
Sofern die Fritzbox mit den Default-Werten betrieben wird und
wxWidgets (bzw. wxPython) in der Version 2.8 bereits installiert
ist, kann das Programm direkt gestartet werden und sieht dann etwa
folgendermaßen aus:
Bei Bedarf kann die IP der Fritzbox im Script angepasst werden.
FRITZBOX_IP="192.168.178.1"
FRITZBOX_PORT=49000
Meine Fritzbox läuft derzeit noch mit FRITZ!OS
06.03. In FRITZ!OS 06.20
wurden offenbar Änderungen am upnp-API vorgenommen. Gemäß diesem Post
ist dazu die Zeichenfolge "upnp/control/" durch "igdupnp/control/"
zu ersetzen. In bwm2.py sind also in der Zeile 199 die drei
Zeichen "igd" vor dem "upnp/control/" einzufügen, wenn die
Fritzbox-Firmware >=6.20 ist. Sobald ich meine Fritzbox auf diese Version
aktualisiert habe, wird das Script automatisch auch mit
Firmware-Versionen >=6.20 umgehen können.
Soll auch der Ping-Monitor genutzt werden, sind die zu pingenden
Hosts an die eigene Umgebung anzupassen.
IPS_TO_PING=["fb", "switch", "c2q", "t430", "i5", "rp1", "rp2",
"bb",
"buffalo", "tobi",
"t22", "mutti", "Wii", "tablet"]
Für den DLAN-Monitor wird ein Tool von Devolo benötigt (das übrigens
auch problemlos für die Adapter von AVM funktioniert).
Siehe: http://www.devolo.com/downloads/software/software-dlan-linux-v6-1.tar.gz
Nach dem make
gemäß README ist dlanlist noch mit
setcap
cap_net_raw+epi
aufzumachen und der Pfad zum Programm im Script einzustellen
DLANLIST="/home/dede/bin/dlanlist"
Weiterhin sind die MAC-Adressen der DLAN-Adapter im Script
einzustellen
self.macs=[
["C0:25:06:D0:36:18", 1], # (B) Buero
["BC:05:43:0B:31:59", 2], # (M) Ferkelchen
["C0:25:06:D0:36:17", 4], # (T) Tobi
["24:65:11:C4:01:CB", 8], # (W) Wohnzimmer WLAN
["BC:05:43:0B:31:5A",16]] # (i) Einspeisung
und den Adaptern ein Kurzname aus einem Buchstaben
zuzuweisen.
self.kurznamen=["B",
"M", "T", "W", "i"]
Die Anzahl und Position der Kurznamen muß zu den MAC-Adressen
passen.
Um einen Sound abspielen lassen zu können, wenn die
Download-Bandbreite gegen Null geht (also üblicherweise ein Download
fertig ist), ist in der Zeile
ALARM_CMD="env
AUDIODRIVER=alsa play /home/dede/daten/ding.wav"
der Aufruf zum Abspielen eines Audio-Files anzugeben.
Wird in der Zeile
FRAME_NO_TASKBAR=False
statt False ein
True
eingestellt, erscheint der Bandbreitenmonitor nicht mehr in der
Taskbar und kann dann mit dem Programmaufruf
wmctrl
-a "Bandbreitenmonitor v2.0"
in den Vordergrund geholt werden.
Mittlerweile habe ich meinen DSL-Anschluß durch Glasfaser ersetzt.
Aus der Fritzbox 7270 wurde eine Fritzbox 7390, die jetzt als Router
statt als DSL-Modem läuft.
Somit meldet sie keine maximalen Übertragungsraten mehr, was in
dieser Version des Scripts aber abgefangen und korrekt verarbeitet
wird.
Der Bandbreitenmonitor mit Ping-Monitor und DLAN-Adapter-Monitor:
Der Bandbreitenmonitor mit getrennter Anzeige für Up und Down: