.titleBar { margin-bottom: 5px!important; }

[Info] Fritzbox TrafficMonitor für Linux

Dieses Thema im Forum "andere Software" wurde erstellt von dede67, 18 März 2012.

  1. dede67

    dede67 Neuer User

    Registriert seit:
    7 Nov. 2010
    Beiträge:
    18
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Moin,
    da ich für Linux nix gefunden habe, was mir den TrafficMonitor des "Fritz!DSL Startcenters" ersetzt, habe ich mir ein entsprechendes Python-Programm gebaut, das dieses Problem löst.
    Natürlich habe ich vorher Goggle nach so einem Tool befragt. Das passende habe ich leider nicht gefunden. Nur reichlich Fragen nach sowas.
    Daher möchte ich mein Programm jetzt gerne zur Nutzung anbieten.
    Es war mein erstes Programm in Python, ist dementsprechend sicher nicht optimal, aber es tut genau das, was ich haben will.
    Anbei ein Screenshot und das Script (bei dem natürlich das .txt aus dem Namen entfernt werden sollte).
    Es funktioniert mit einer Fritzbox 7270 ohne Modifikationen und braucht kein Passwort. Lediglich "Statusinformationen über UPnP übertragen" muss aktiviert sein (was ja aber Default ist).
    Python sollte auf jedem Linux-System verfügbar sein, ggf. müssen noch zwei kleine Pakete für tkinter und soappy installiert werden (beide sind nur etwa 200KB groß).

    Über sinnvolle Anmerkungen oder konstruktive Kritik würde ich mich freuen.
    Speziell würde mich interessieren, ob es bei höheren Bandbreiten die Anzeige richtig skaliert (ich habe hier nur 1275 / 222 kbit/s).

    Detlev
     

    Anhänge:

  2. voipd

    voipd IPPF-Promi

    Registriert seit:
    5 Mai 2005
    Beiträge:
    3,184
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    #2 voipd, 18 März 2012
    Zuletzt bearbeitet: 29 Juli 2013
    Hallo,

    eine tolle Anwendung. Hier ein bisschen "Stuff" zum weitermachen. :)

    Bitte eine Variable fuer die Fritzbox einbauen, da man sie sonst immer an 4 Stellen aendern muss.

    Die Box hat eine "6010 kbit/s" Empfangs und eine "979 kbit/s" Sendeleitung. Die Box macht gerade einen 100% Upload mit ca. 85 kBytes/sec.
    Die Grafische Anzeige sagt: "Blau 652" und "Rot 106"
    Rechne im Script bitte nochmals nach. :)

    Danke!!

    Code:
    #:~/test$ ./bwm.py 
    Empfang: 352602 KB/Sek      Senden: 51999 KB/Sek
    Empfang: 42 KB/Sek      Senden: 316 KB/Sek
    Empfang: 26 KB/Sek      Senden: 176 KB/Sek
    Empfang: 44 KB/Sek      Senden: 211 KB/Sek
    Empfang: 27 KB/Sek      Senden: 200 KB/Sek
    Empfang: 12 KB/Sek      Senden: 171 KB/Sek
    Empfang: 42 KB/Sek      Senden: 212 KB/Sek
    [...]
    Empfang: 31 KB/Sek      Senden: 216 KB/Sek
    Empfang: 41 KB/Sek      Senden: 289 KB/Sek
    Empfang: 24 KB/Sek      Senden: 183 KB/Sek
    Empfang: 45 KB/Sek      Senden: 224 KB/Sek
    Empfang: 18 KB/Sek      Senden: 144 KB/Sek
    Empfang: 30 KB/Sek      Senden: 319 KB/Sek
    ^CTraceback (most recent call last):
      File "./bwm.py", line 123, in <module>
        root.mainloop()
      File "/usr/lib/python2.6/lib-tk/Tkinter.py", line 1020, in mainloop
        self.tk.mainloop(n)
      File "/usr/lib/python2.6/lib-tk/Tkinter.py", line 1408, in __call__
        def __call__(self, *args):
    KeyboardInterrupt
     
  3. dede67

    dede67 Neuer User

    Registriert seit:
    7 Nov. 2010
    Beiträge:
    18
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Moin voipd,
    vielen Dank für die Anmerkungen. Die IP der Fritzbox ist jetzt eine Variable. Außerdem habe ich noch einen "Splitmode" eingebaut, bei dem die beiden Kurven untereinander dargestellt werden bzw. sich nicht mehr überlagern.

    Die bei dir extrem zu hoch angezeigten Sende-Raten kann ich nicht ganz deuten.
    Auch meine Fritzbox liefert bei "Volllast" gelegentlich Werte, die den Faktor Zwei über die mögliche Bandbreite hinaus gehen.
    Im Mittel passt das aber trotzdem zu den im Web-GUI unter "Online-Monitor" angezeigten Kurven.
    Die Ausgabe via print aufs Terminal war eigentlich nur für Debug-Zwecke und zeigte jeweils den Wert der letzten Sekunde.
    In der neuen Version verwendet auch der "print" den Mittelwert von vorletzter und letzter Sekunde.

    An meiner Rechnung gibt es eigentlich nix zu ändern: ich hole pro Sekunde den Wert der bisher übertragenen Bytes, subtrahiere von w[t] den Wert von w[t-1] und erhalte somit die in der vergangenen Sekunde übertragenen Bytes.

    Was zeigt denn bei dir die grafische Anzeige an...ist die auch viel zu hoch?

    Detlev
     

    Anhänge:

  4. Ohrenschmalz

    Ohrenschmalz Mitglied

    Registriert seit:
    19 Apr. 2006
    Beiträge:
    704
    Zustimmungen:
    10
    Punkte für Erfolge:
    18
    #4 Ohrenschmalz, 19 März 2012
    Zuletzt bearbeitet: 19 März 2012
    hmmm, soappy und python-tk sind installiert, aber bei Aufruf passiert...nix...Cursor im Terminal, keinerlei Ausgabe...help needed...

    Wie kriegt man hinterher die Grafik hin? *kratz*

    Danke!

    Edit: Nach Feierabend hier keine Fragen stellen! Man muß natürlich die IP anpassen. Ich ziehe alle dummen Fragen zurück ;)

    Danke, weitermachen ;)
     
  5. Ultim8

    Ultim8 Neuer User

    Registriert seit:
    17 Juli 2011
    Beiträge:
    2
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #5 Ultim8, 31 Mai 2012
    Zuletzt bearbeitet: 31 Mai 2012
    Vielen Dank Detlev!
    Bin auf Kubuntu umgestiegen und brauchte für Conky einen Skript, hab dann deinen hier gefunden. Da ich von Python null Ahnung besaß und nur vor zehn Jahren paar Grundlagen C++ gelernt habe, war die Anpassung ne wirklich üble Angelegenheit ;)
    Aber nach einer Woche und paar grauen Haaren mehr, präsentiere ich stolz die V2!
     

    Anhänge:

  6. dede67

    dede67 Neuer User

    Registriert seit:
    7 Nov. 2010
    Beiträge:
    18
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Hallo Ultim8,
    ich habe mittlerweile auch schon eine V2 gebaut, die das SOAPPY nicht mehr braucht und wxwidgets statt tkinter als GUI verwendet.
    Weiterhin wird auch eth0 gemessen und erreichbare dLAN-Adapter werden angezeigt.
    Du solltest dir mal meine Fritzbox-Klasse ansehen.
    Die verwendet jetzt statt "GetTotalBytesReceived" das m.E. besser geeignete "NewByteReceiveRate".

    Anbei das Script und zwei Screenshots:
    Den Anhang bwm2.py.txt betrachten Fritzbox Bandbreitenmonitor v2 - 2.png Fritzbox Bandbreitenmonitor v2 - 1.png


    Wenn Python und wxWidgets installiert sind, müssen nur drei Parameter im Script angepasst werden.
    Und zwar: FRITZBOX_IP, FRITZBOX_PORT und ALARM_FILE
    Danach sollte es auf einem Linux-System (bei dem es ein eth0 gibt) lauffähig sein. Alles weitere ist per Einstellungs-Dialog änderbar.
    Soll auch die dLAN-Adapter-Überwachung genutzt werden, wären noch die MAC-Adressen entsprechend der eigenen Adapter anzupassen.
    Es können nur vier Adapter verarbeitet werden - weil die Anzeige für meine vier Adapter optimiert ist.
    Wo das Tool "dlanlist" zu finden ist, steht im Script.
     
  7. Ultim8

    Ultim8 Neuer User

    Registriert seit:
    17 Juli 2011
    Beiträge:
    2
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Das sieht mal richtig gut und vor allem ausgereift aus! Du hast ein gutes Stück vom Windows-Linux-Migrations-Problem gelöst. Ich hab wie blöd nach einem Fritz Monitor gesucht :)

    Auf GetAddonInfos/GetTotalBytesReceived bin ich auch zufällig gestoßen. Weißt du vielleicht ob die ganzen Anfragen der UPnP-Norm entsprechen? Habe diesbezüglich widersprüchliches gelesen.

    Habe das Skript jetzt für Conky gekürzt und das GUI herausgenommen.
    Was du daraus vielleicht gebrauchen könntest ist die Uptime, zwecks möglicher 24h Zwangstrennung.
    Am liebsten hätte ich deine Version als KDE Plasma Widget, oder Plasmoid heißen die glaub ich.

    Falls jemand das Skript mit Conky nutzten möchte:
    - upnp_traffic.py.txt in upnp_traffic.py
    - die Dateiberechtigung auf Ausführbar stellen (suche: "linux datei ausführbar machen")
    - im home-Verzeichnis den Ordner ".conky" erstellen und die Datei hinein kopieren
    - in der upnp_traffic.py stehen alle Anweisungen wie die Zeilen, die in die Conky-Konfigurationdatei (Standard: .concyrc) gehören
     

    Anhänge:

  8. Sandra-T

    Sandra-T IPPF-Promi

    Registriert seit:
    7 Nov. 2007
    Beiträge:
    3,266
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Mediengestalterin, Informatiktechnikerin und Mutte
    Ort:
    Münster, NRW
    Gäbe es evtl. eine Möglichkeit, die von diesem Tool gesammelten/gemessenen Daten in vnstat zu übernehmen ?

    Gruß
    Sandra
     
  9. dede67

    dede67 Neuer User

    Registriert seit:
    7 Nov. 2010
    Beiträge:
    18
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Hallo Ultim8,
    in wie weit sich AVM an die Standards hält, entzieht sich meiner Kenntnis....und ist mir auch relativ egal.
    Meine Infos habe ich aus ein paar "AVM Technical Notes".
    http://www.avm.de/de/News/artikel/schnittstellen_und_entwicklungen.php
    Und aus der Fritzbox selbst:
    http://fritz.box:49000/igddesc.xml
    http://fritz.box:49000/igddslSCPD.xml
    http://fritz.box:49000/igdconnSCPD.xml
    http://fritz.box:49000/igdicfgSCPD.xml

    Hallo Sandra,
    sicher lassen sich die Daten irgendwie an vnstat übergeben. Wie will das die denn haben?
    Und was für Intervalle schweben dir vor?
    Weil...unter http://humdi.net/vnstat/man/vnstat.html steht im Abschnitt "DESCRIPTION" der Satz "It keeps a log of hourly, daily and monthly network traffic for the selected interface(s)".
    Mein Progrämmchen liest die Werte im Sekunden-Takt.
    Obs das auch mit Stunden-Takt klarkommt, würde ich mal bezweifeln.

    Ich habe das Ding dafür gebaut, um mein kleines Mini-Netz aktuell im Blick zu behalten bzw. zu sehen, ob gerade irgendwelche Rechner von meiner Frau oder meinen Blärgen eingeschaltet sind und der Grund für "unerklärlichen" Traffic auf meiner kümmerlichen 1.2MBit-Leitung sein können.

    Anbei nochmal die neuste Version:
     

    Anhänge:

  10. crnetde

    crnetde Neuer User

    Registriert seit:
    7 Nov. 2012
    Beiträge:
    3
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hi dede67,

    ich versteh das schon richtig, das Du damit den Traffic der einzelnen Clients im LAN abbilden kannst?

    Alle anderen Traffic-tools , die ich so für die FB gefunden habe, zeigen nur den WAN-Traffic.

    Deine Version 1 hab ich zum laufen bekommen, aber die 2. nicht, es bricht ab bei "import wx.media" - sowohl auf einem raspberry Pi als auch auf meinem Ubuntu.
    Ich glaub ich hab (zumindest auf dem Ubuntu) inzwischen in meiner verzweiflung alle python module installiert, die es überhaupt gibt :(

    Habt ihr Euch mal mrtg für die FB angesehen?

    Mein Traumtool wär ja RRD oder mrtg -mässige Auswertung über längere Zeiträume, das ganze auf dem Pi automatisch startend.
    Aber wie gesagt, den LAN-Traffic nach Clients "sortiert".


    Krille
     
  11. dede67

    dede67 Neuer User

    Registriert seit:
    7 Nov. 2010
    Beiträge:
    18
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Hi Krille,
    mein Tool zeigt nur den WAN-Traffic und den eth0-Traffic des Systems, auf dem es selbst läuft.
    Die anderen (entfernten) Rechner werden angepingt - und somit wird dafür lediglich angezeigt, ob sie überhaupt an sind.
    Wenn ich deren Traffic sehen will, gehe ich dort per ssh rauf und sehe mir das mit iftop an.

    Das "import wx.media" sollte eigentlich im "python-wxWidgets" mit drin sein.
    Es wird (wenn ich mich recht entsinne) nur für das Abspielen des "Alarm-Sounds" gebraucht.....den man einschalten kann, um alarmiert zu werden, wenn der WAN-Traffic seit ein paar Sekunden nahe Null ist - also üblicherweise ein Download fertig ist.
    Wenn du darauf verzichten kannst, kommentiere einfach die Zeilen 5 und 462 bis 467 aus.

    Also die hier (falls meine Version mittlerweise andere Zeilennummern haben sollte):
    5
    #import wx.media

    462...
    # try:
    # self.mc = wx.media.MediaCtrl(self)
    # except NotImplementedError:
    # self.Destroy()
    # raise
    # self.mc.Load(ALARM_FILE)


    BTW: In meiner VM mit Ubuntu 12.04 64Bit läuft es. Leider weiss ich nicht mehr, ob ich dafür irgendwas nachinstallieren musste.
    Drin sind "python-wxgtk2.8" und "python-wxversion" und "libwxbase2.8-0" und "wx-common" und "wx2.8-headers".
     
  12. crnetde

    crnetde Neuer User

    Registriert seit:
    7 Nov. 2012
    Beiträge:
    3
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #12 crnetde, 13 Nov. 2012
    Zuletzt bearbeitet: 14 Nov. 2012
    Danke - hat nicht geklappt - ist aber nun auch hinfällig, denn ich hab da was gebastelt.

    Es ist mir gelungen einen Linux-Rechner so zu konfigurieren, das dieser der FB den Traffic quasi klaut.

    Das Prinzip: 2 IP-Netze auf der Nic (eth0 und eth0:1), den ganzen Traffic da durchschieben und mit Bandwidthd auswerten. :cool:

    Das ist eine Kombination aus iptables und dnsmasq - das ganze läuft jetzt bei mir seit ner Stunde und ich bin durch die ganze Bude geflitzt und hab alle Familienmitglieder genervt mit speedtests und Updates - und es läuft.
    :D
    Damit die IP-Vergabe im LAN läuft hab ich im dnsmasq den DHCP angeschaltet und auf der Fritzbox aus - das klappt sogar mit WLAN-Clients! :)
    Damit Geräte, die statische IPs haben (also bei uns noch derzeit Server und Drucker und die NAS) dennoch mit den Clients im "neuen" Netz kommunizieren können, ist auf der FB eine Route einzutragen für das Subnetz.

    Der Knaller: ich hab das jetzt auf dem Raspberry Pi gemacht, den kann ich jetzt mit einem kurzen LAN-Kabel an die FB hängen und über die FB mit Strom versorgen und fertig.

    Bildschirmfoto 2012-11-13 um 22.43.08.jpg

    Statt Bandwidthd kann man jetzt natürlich auch vnstat oder andere RRD-Tools zur Auswertung nehmen, und es läuft auf jeder Fritzbox - auch gefreezeden (die das Problem aber im Prinzip eh nicht haben).

    Ich bin grad total aus dem Häuschen vor Freude, weil es so minimalistisch ist.

    Komplettes Howto schreib ich gleich, bin mir nur noch nicht so ganz sicher wohin, aber verlinken werd ich es dann hier auch.

    Krille

    Edit: Ich hab es gemacht, bevor ich vergesse wie es geht - jetzt schlaf ich aber gleich beim tippen ein.
    Traffic Monitor für LAN- und WLAN-Clients für die Fritz.box

    Ist zwar jetzt irgendwie krass off-topic, aber wenn man sowas sucht, landet man immer hier :)
     
  13. kunert0345

    kunert0345 Neuer User

    Registriert seit:
    6 Mai 2008
    Beiträge:
    22
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
  14. dede67

    dede67 Neuer User

    Registriert seit:
    7 Nov. 2010
    Beiträge:
    18
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Moin kunert0345,
    freut mich, dass dir mein Progrämmchen gefällt.
    Was du [wahrscheinlich] willst, geht recht einfach.....

    Die Idee ist, dass sich der Bandbreitenmonitor
    a) nicht in der Taskleiste blicken lässt und man ihn dann
    b) mittels wmctrl bei Bedarf in den Vordergrund bringt.

    Anbei erstmal die aktuelle Version meines Programmes.

    Wenn du Zeile 1084 änderst von
    Code:
        wx.Frame.__init__(self, None, wx.ID_ANY, "Bandbreitenmonitor v2.0", pos=pos, size=size)
    nach
    Code:
        wx.Frame.__init__(self, None, wx.ID_ANY, "Bandbreitenmonitor v2.0", pos=pos, size=size, style=wx.DEFAULT_FRAME_STYLE|wx.FRAME_NO_TASKBAR)
    erscheint das Programm nicht mehr in der Taskleiste.

    Nun besorgst du dir noch das Tool wmctrl (wmctrl-1.07-144.1.1.x86_64) und fügst dann deinem Panel einen neuen Starter hinzu, der folgenden Befehl ausführt:
    Code:
    wmctrl -a Bandbreitenmonitor
    Und wenn dann alles richtig funktioniert, langt ein Klick auf den Starter, um den [natürlich geöffneten] Bandbreitenmonitor in den Vordergrund zu bringen.
    Ich habs mit openSUSE 12.3 und XFCE getestet.
     

    Anhänge:

  15. kunert0345

    kunert0345 Neuer User

    Registriert seit:
    6 Mai 2008
    Beiträge:
    22
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Danke Danke Danke ...hab ich schon Danke gesagt :)))
    Jetzt freu ich mich jedes mal wenn ich den Rechner hoch fahre und ich ein genau so Tolles Tool wie zu meinen windows Zeiten habe (von AVM der Monitor).
     
  16. andreaslink

    andreaslink Neuer User

    Registriert seit:
    7 Nov. 2010
    Beiträge:
    1
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Harrislee
    Moin dede67,

    ich kann auch nur sagen: Vielen Dank!! Das ist genau so ein Tool, wie ich gesucht habe, habe es auch unter Ubuntu 13.04 zum laufen bekommen, man musste lediglich die python-wxtools nachinstallieren und das war mit "sudo apt-get install python-wxtools" schnell getan. Damit lief das Script sofort. Super wäre noch, wenn man die "Opacity", also die Transparenz des Fensters einstellen könnte, da ich den Monitor gern immer parallel aktiv und im Vordergrund habe und er dann nicht die volle Sicht raubte :). Aber ich kenne mich mit Python zu schlecht aus, als dass ich das nachbauen/erweitern könnte :-/. Vielleicht kann hier jemand sonst helfen, bevor ich mich eingearbeitet habe?

    /Andreas
     
  17. dede67

    dede67 Neuer User

    Registriert seit:
    7 Nov. 2010
    Beiträge:
    18
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
  18. panik105

    panik105 Neuer User

    Registriert seit:
    12 Feb. 2013
    Beiträge:
    1
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,

    FritzBox 7390 lieferte seit Update auf FritzOS 6.20 keine Werte mehr -> Exception in bwm2.py.
    Nach Änderung der Zeile 200 von
    self.controlURL= "upnp/control/WANCommonIFC1"
    in
    self.controlURL= "igdupnp/control/WANCommonIFC1"
    geht es hier wieder.

    Tschues..
    Michael
     
  19. zippel

    zippel Neuer User

    Registriert seit:
    24 Okt. 2005
    Beiträge:
    20
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Gibt es das auch für den MAC?
     
  20. thtomate12

    thtomate12 IPPF-Promi

    Registriert seit:
    28 Okt. 2010
    Beiträge:
    5,168
    Zustimmungen:
    6
    Punkte für Erfolge:
    38
    Ort:
    NRW
    Warum sollte es dort nicht laufen?