Blog Post

Raspberry Pi: Internet-Geschwindigkeit-Tests automatisieren (kurz & gut)

Listen! This is now, this is here
This is me, this is what I wanted
You to see
That was then, that was that
That is gone, that is past
You cast yourself, cast
Passed by, thrown down fast, you say

„So fast, so numb“, REM

Der kostengünstige Einplatinen-Rechner Raspberry Pi lässt sich für viele Dinge (miss-)brauchen. Momentan lassen wir darauf zu Test-Zwecken unser Heimautomatisierungs-System FHEM laufen. Eigentlich nur eine mehr-oder-weniger kleine Spielerei mit Homematic-Funk-Sensoren und -Aktoren. Zur Zeit wird z.B. der Fernseh-Bereich samt Zuspieler automatisch über Nacht abgeschaltet, falls der Verbrauch unter eine bestimmte Schwelle fällt. Falls es beim Lüften im Bad zu kalt wird, meldet ein Temperatur-Sensor über FHEM mittels einer Pushnachricht (Pushbullet->) dies an uns. Sehr nützlich ist auch die Sprach-Ausgabe über SONOS, dass der Waschgang der Waschmaschine im Keller abgeschlossen ist und die Wäsche entnommen werden kann.
Mitunter messen wir in regelmäßigen Abständen (eine Stunde) wie schnell unser DSL-Zugang in beide Richtungen funktioniert (Down- & Upload):

Warum? Es ist ganz nett zu sehen, ob der Provider in der Tat seine Versprechen eingehalten hat oder nicht. Außerdem merkt man deutlich, dass die Bandbreite (etwa um die Hälfte!) sinkt, wenn man seinen Router über die Powerline zum DSL-Modem anbindet.

Alles schön und gut. Nun wollen wir demnächst umziehen. Aus logistischen Gründen können wir in die neue, bereits gemietete Wohnung allerdings erst zwei Monate später einziehen. Somit haben übergangsweise beide Wohnungen zu bezahlen. Diese doppelte Haushaltsführung hat aber auch kleine Vorteile. In dieser Zwischenzeit kann man sich z.B. um den Internet-Zugang für die neue Wohnung kümmern. Da wir aber noch in der alten Wohnung sind – können wir nur schlecht feststellen, ob die Bandbreite zufriedenstellend und der Zugang in der neuen Wohnstätte an sich stabil ist. Deshalb wollen wir die FHEM-basierte Einrichtung zur Speedmessung zunächst in der alten „Bude“ belassen und mit dem Zweit-Raspberry-Pi eine empirische quick-&-dirty Messung an der neuen Stätte durchführen. So kann man ggf. noch rechtzeitig den Provider-Wechsel anstreben, falls man mit der aktuellen Leistung nicht zufrieden sein sollte.

Es gibt eine sehr schöne Anleitung dazu – da diese leider einige (Tipp-)Fehler enthält, teilen wir unsere, leicht angepasste Lösung hier mit euch:

1. Messen

Zur Messung benötigen wir einen lauffähigen Raspberry Pi (oder sonstigen Kleinstrechner) inkl. einem (am Besten) Debian-basierten Betriebssystem wie z.B. dem weit-verbreiteten und beliebten Raspbian. Dabei mit Putty eine SSH-Verbindung zum Pi aufbauen und schon gehts los!

Die Messergebnisse werden final in ein einfaches CSV-File geschrieben. Dieses lässt sich anschließend auf alle erdenklichen Art und Weisen auswerten.

Notwendiges installieren:
sudo apt-get install python-argparse python-lxml

UPDATE (13.10.2015): Bei aktuellen Python-Versionen (ab 2.7) ist „python-argparse“ bereits enthalten – in diesem Fall einfach weglassen.
UPDATE (13.10.2015): Manchmal fehlt auch das Socks-Paket: In diesem Fall auch installieren: sudo pip install PySocks

Skripte runterladen (Autor: Jannis Jansons):
mkdir ~/scripts
wget https://raw.github.com/Janhouse/tespeed/master/tespeed.py -O ~/scripts/speedtest.py

Dieses Skript testet die Latenz zwischen den verfügbaren Mess-Servern und wählt den besten aus.

Test-Messung durchführen:
python ~/scripts/speedtest.py

Auf manchen Systemen kann folgender Fehler auftauchen:

ImportError: No module named SocksiPy

In diesem Fall das Skript leicht anpassen:
nano ~/scripts/speedtest.py

In Zeile #8 den markierten Teil des Textes so from SocksiPy import socks entfernen.

Mit Strg+X den Editor verlassen und mit Y die Änderungen speichern.

2. Automatisieren

Skriptausgabe in ein csv-File vorbereiten:
cd ~
mkdir bin
cd ~/bin
nano speedtest.zsh

Folgenden Code im Editor erfassen:

#!/bin/sh
echo "\"$(date -R)\",$(python ~/scripts/speedtest.py --csv -s)"

Mit Strg+X den Editor verlassen und mit Y die Änderungen speichern.

File ausführbar machen:
chmod +x speedtest.zsh

Cronjob zur zeitgesteurten, automatischen Ausführung einrichten (Ausführung jede Stunde):
crontab -e

0 * * * * bash ~/bin/speedtest.zsh 2>/dev/null >> ~/speedtest.csv

Mit Strg+X den Editor verlassen und mit Y die Änderungen speichern.

3. Auswerten

Nach einigen Stunden kann man bereits die Ergebnisse auswerten. Dazu am Besten mit einem FTP-Client wie FileZilla am Raspberry Pi anmelden und die speedtest.csv herunterladen.
Mit der Tabellenkalkulation der Wahl kann man die CSV-Datei grafisch aufbereiten:

4. Chillen

Nach getaner Arbeit ein Bier öffnen und genießen. 🙂

UPDATE (13.10.2015): Fixed typos: Skripts shebang-Anweisung; cron-Jobs Direktangabe der shell

Comments (43)

  1. Kevin Sonntag, 16UTCSun, 16 Aug 2015 19:32:07 +0000 16. August 2015 at 19:32 Antworten

    Hallo,

    wo genau finde ich per FileZilla die *.csv-Datei?

    Danke & Gruß

    1. smarthomebau.de Montag, 17UTCMon, 17 Aug 2015 18:31:32 +0000 17. August 2015 at 18:31 Antworten

      Kevin,
      in unserem Beispiel befindet sich die CSV-Datei im „/home/pi/“-Verzeichnis. Über die Konsole (Putty) auch mit „cd ~“ zu erreichen! Viel Spass damit! 🙂

  2. petjek Mittwoch, 26UTCWed, 26 Aug 2015 14:28:50 +0000 26. August 2015 at 14:28 Antworten

    Hi,

    ich denke, ich habe alles richtig gemacht, bekomme aber die Fehlermeldung
    ImportError: No module named socks
    Gruß,
    petjek

    1. smarthomebau.de Mittwoch, 26UTCWed, 26 Aug 2015 19:58:37 +0000 26. August 2015 at 19:58 Antworten

      Das Modul scheint zu fehlen, probiers mal bitte mit:
      sudo apt-get install python-socksipy

  3. Tom Mittwoch, 23UTCWed, 23 Sep 2015 20:53:59 +0000 23. September 2015 at 20:53 Antworten

    Hi,

    bei mir wird die CSV-Datei erstellt aber leider ist diese immer leer.
    Woran kann das liegen?

    Gruß
    Tom

    1. smarthomebau.de Donnerstag, 24UTCThu, 24 Sep 2015 09:21:51 +0000 24. September 2015 at 09:21 Antworten

      Tom,

      offenbar ist das Testergebnis nicht verfügbar. Funktioniert der Aufruf mit python ~/scripts/speedtest.py?

      1. Hoehn Samstag, 10UTCSat, 10 Oct 2015 16:41:53 +0000 10. Oktober 2015 at 16:41 Antworten

        Hallo,
        ich habe das gleiche Problem dass die .csv-Datei leer bleibt. Führe ich das Skript einfach so aus funktioniert alles super.

        Grüße
        A.Hoehn

        1. smarthomebau.de Samstag, 10UTCSat, 10 Oct 2015 18:53:09 +0000 10. Oktober 2015 at 18:53 Antworten

          Hmm… Ferndiagnose ist immer schwierig. Schau mal ins log, vielleicht steht das was über mögliche Fehler bei der (Cronjob-)Ausführung. Zum Beispiel damit: cat /var/log/syslog | tail -100

          1. Daniel Sonntag, 11UTCSun, 11 Oct 2015 16:19:59 +0000 11. Oktober 2015 at 16:19

            Hallo,

            zuerst einmal, danke für die ausführliche Anleitung.
            Leider habe ich das gleiche Problem wie Tom. Das Skript lässt sich manuell ausführen, die Bandbreite wird auch gemessen, aber die erstellte CSV-Datei bleibt leider leer. Alles was ich verändert habe sind die Zeitabstände in denen gemessen wird. In meinem Fall alle 5min:
            */5 * * * * ~/bin/speedtest.zsh 2>/dev/null >> ~/speedtest.csv

            Auch eine direkte Adressierung hat leider nicht funktioniert:
            */5 * * * * /home/pi/bin/speedtest.zsh 2>/dev/null >> /home/pi /speedtest.csv

            Angehängt der Log. Es liegt wohl lediglich am Schreiben der CSV-Datei. Kann es vielleicht auch daran leigen, dass ich den Speedtest über Wlan durchführe?

            Oct 11 15:25:01 raspberrypi /USR/SBIN/CRON[2884]: (pi) CMD (~/bin/speedtest.zsh 2>/dev/null >> ~/speedtest.csv)
            Oct 11 15:25:31 raspberrypi wpa_supplicant[1744]: wlan0: WPA: Group rekeying completed with XX:XX:XX:XX:XX:XX [GTK=CCMP]
            Oct 11 15:28:38 raspberrypi dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3
            Oct 11 15:28:41 raspberrypi dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3
            Oct 11 15:28:44 raspberrypi dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 4
            Oct 11 15:28:48 raspberrypi dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7
            Oct 11 15:28:55 raspberrypi dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7
            Oct 11 15:29:02 raspberrypi dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 13
            Oct 11 15:29:15 raspberrypi dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 17
            Oct 11 15:29:32 raspberrypi dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7
            Oct 11 15:29:39 raspberrypi dhclient: No DHCPOFFERS received.
            Oct 11 15:29:39 raspberrypi dhclient: No working leases in persistent database – sleeping.
            Oct 11 15:30:01 raspberrypi /USR/SBIN/CRON[2891]: (pi) CMD (~/bin/speedtest.zsh 2>/dev/null >> ~/speedtest.csv)
            Oct 11 15:32:37 raspberrypi dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3
            Oct 11 15:32:40 raspberrypi dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 4
            Oct 11 15:32:44 raspberrypi dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7
            Oct 11 15:32:51 raspberrypi dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 11
            Oct 11 15:33:02 raspberrypi dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 11
            Oct 11 15:33:13 raspberrypi dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7
            Oct 11 15:33:20 raspberrypi dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 12
            Oct 11 15:33:33 raspberrypi dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5
            Oct 11 15:33:38 raspberrypi dhclient: No DHCPOFFERS received.
            Oct 11 15:33:38 raspberrypi dhclient: No working leases in persistent database – sleeping.

            Gruß Daniel

          2. smarthomebau.de Dienstag, 13UTCTue, 13 Oct 2015 18:37:24 +0000 13. Oktober 2015 at 18:37

            Daniel,

            Danke für die ausführlichen Infos! Ich habe die gesamte Installation nochmal durchgespielt und dabei einige Typos gefixed –> Skript: #!/bin/sh
            echo "\"$(date -R)\",$(python ~/scripts/speedtest.py --csv -s)"

            crontab -e: 0 * * * * bash ~/bin/speedtest.zsh 2>/dev/null >> ~/speedtest.csv

            Damit sollte es klappen – wenn nicht, bitte melden! 🙂

  4. Ray Muller Donnerstag, 24UTCThu, 24 Sep 2015 08:22:45 +0000 24. September 2015 at 08:22 Antworten

    Moin Moin,

    vielen Dank für den Interssanten Beitrag. Ich hänge momentan an dem Punkt „Skripte herunterladen fest“. Folgende Meldung kommt:

    pi@raspberrypi ~ $ wget https://raw.githup.com/Janhouse/tespeed/master/tespeed.py -O ~/scripts/speedtest.py
    –2015-09-24 05:58:27– https://raw.githup.com/Janhouse/tespeed/master/tespeed.py
    Auflösen des Hostnamen »raw.githup.com (raw.githup.com)«… 95.211.117.206
    Verbindungsaufbau zu raw.githup.com (raw.githup.com)|95.211.117.206|:443… fehlgeschlagen: Die Wartezeit für die Verbindung ist abgelaufen.
    Erneuter Versuch.

    Woran könnte das liegen?

    Viele Grüße, Ray

    1. smarthomebau.de Donnerstag, 24UTCThu, 24 Sep 2015 09:19:10 +0000 24. September 2015 at 09:19 Antworten

      Ray,

      der Abruf von github hat sich scheinbar inzwischen geändert, probiers bitte mal mit:

      wget https://raw.githubusercontent.com/Janhouse/tespeed/master/tespeed.py -O ~/scripts/speedtest.py

      (statt: wget https://raw.github.com/Janhouse/tespeed/master/tespeed.py -O ~/scripts/speedtest.py)

  5. Ray Muller Donnerstag, 24UTCThu, 24 Sep 2015 08:25:32 +0000 24. September 2015 at 08:25 Antworten

    … hat sich gerade erledigt. War nur ein rechtschreibfehler. 😀

  6. Brot Barbar Freitag, 13UTCFri, 13 Nov 2015 11:24:58 +0000 13. November 2015 at 11:24 Antworten

    Hi, ich hab dasselbe Problem, dass die CSV immer leer bleibt. Der Log zeigt an, dass der cronjob ausgeführt wird, getaktet auf alle 2 Minuten (zum Test).

    Nov 13 11:16:02 raspberrypi CRON[10258]: (pi) CMD (bash ~/bin/speedtest.zsh 2>/dev/null >> ~/speedtest.csv)
    Nov 13 11:17:01 raspberrypi CRON[10288]: (root) CMD ( cd / && run-parts –report /etc/cron.hourly)
    Nov 13 11:18:01 raspberrypi rsyslogd-2007: action ‚action 17‘ suspended, next retry is Fri Nov 13 11:19:31 2015 [try http://www.rsyslog.com/e/2007 ]
    Nov 13 11:18:01 raspberrypi CRON[10354]: (pi) CMD (bash ~/bin/speedtest.zsh 2>/dev/null >> ~/speedtest.csv)
    Nov 13 11:20:01 raspberrypi rsyslogd-2007: action ‚action 17‘ suspended, next retry is Fri Nov 13 11:21:31 2015 [try http://www.rsyslog.com/e/2007 ]
    Nov 13 11:20:01 raspberrypi CRON[10371]: (pi) CMD (bash ~/bin/speedtest.zsh 2>/dev/null >> ~/speedtest.csv)

    Wenn ich die CSV lösche wird diese auch wieder entsprechend erstellt, bleibt aber leer. Tippfehler sind garantiert keine drin. Wenn ich das Script manuell ausführe, bleibt die CSV auch leer.

    1. Brot Barbar Freitag, 13UTCFri, 13 Nov 2015 11:39:23 +0000 13. November 2015 at 11:39 Antworten

      Edit:

      Wenn ich
      „python ~/scripts/speedtest.py –csv -s“
      ausführe, dann bleibt die CSV auch leer, sowie sie leer bleibt, wenn ich
      „bash speedtest.zsh“ ausführe.

      1. smarthomebau.de Freitag, 13UTCFri, 13 Nov 2015 11:42:11 +0000 13. November 2015 at 11:42 Antworten

        Brot, was passiert wenn du bash ~/bin/speedtest.zsh 2>/dev/null >> ~/speedtest.csv ausführst?

        1. Brot Barbar Freitag, 13UTCFri, 13 Nov 2015 11:48:58 +0000 13. November 2015 at 11:48 Antworten

          Interessanterweise nichts. Hinterlässt auch keine Spur im log. Die Kommandozeile bleibt einfach wie sie ist, es tritt auch kein Fehler auf.

          1. Brot Barbar Freitag, 13UTCFri, 13 Nov 2015 11:51:07 +0000 13. November 2015 at 11:51

            Ich hab jetzt statt
            „bash ~/bin/speedtest.zsh 2>/dev/null >> ~/speedtest.csv“
            mal
            „bash ~/speedtest.zsh 2>/dev/null >> ~/speedtest.csv“
            ausgeführt, da sich die speedtest.zsh sich nicht in bin befindet, sondern in pi.
            Nun hat er tatsächlich geloggt.

  7. Brot Barbar Freitag, 13UTCFri, 13 Nov 2015 11:55:00 +0000 13. November 2015 at 11:55 Antworten

    Ok, der Fehler ist gefunden. Meine speedtest.zsh war nicht im bin-Ordner, aber die crontab verwies auf ~/bin/speedtest.zsh.

    1. smarthomebau.de Freitag, 13UTCFri, 13 Nov 2015 13:48:36 +0000 13. November 2015 at 13:48 Antworten

      Super! 😀 Freut mich, dass es nun klappt! Vielen Dank für die Rückmeldung!

  8. Dan Mittwoch, 06UTCWed, 06 Jan 2016 12:35:49 +0000 6. Januar 2016 at 12:35 Antworten

    Hallo,

    ich schließe mich erst mal den Danksagungen für die tolle Anleitung an. Ich habe nur noch ein kleines Problem. Wenn ich den Befehl manuell ausführe funktioniert alles immer einwandfrei und es wird wie gewünscht ein Eintrag in die CSV geschrieben. Wenn ich den Befehl jedoch über cron ausführe schreibt er mir nur Datum und Uhrzeit in die CSV. Die Messergebnisse fehlen einfach immer. Vielen Dank für jede Hilfe.

    Grüße Dan

    1. smarthomebau.de Mittwoch, 06UTCWed, 06 Jan 2016 19:43:07 +0000 6. Januar 2016 at 19:43 Antworten

      Dan, das ist komisch… Ferndiagnose ist ohne weitere Angaben leider auch schwierig. Der Job scheint ja zu grundsätzlich zu funktionieren, offenbar ist die Skript-Definition nicht ganz sauber. Kannst du diese bitte überprüfen? Danke!

      1. Dan Donnerstag, 07UTCThu, 07 Jan 2016 14:37:38 +0000 7. Januar 2016 at 14:37 Antworten

        Hallo,

        vielen Dank für die schnelle Hilfe. Daran lag es. Ich hatte bereits bei meinem bash das Problem, dass ich der Platzhalter „~“ nicht funktioniert hat. In meinem Script habe ich das jetzt durch „/home/user“ ersetzt und jetzt funktioniert alles. Danke nochmal!

        Gruß
        Dan

        1. smarthomebau.de Donnerstag, 07UTCThu, 07 Jan 2016 14:39:13 +0000 7. Januar 2016 at 14:39 Antworten

          Super Dan – das freut uns! Vielen Dank für die Rückmeldung!

  9. Skund Sonntag, 31UTCSun, 31 Jan 2016 22:15:19 +0000 31. Januar 2016 at 22:15 Antworten

    Bei mir kam der Fehler ImportError: No module named lxml und der oben genannte Befehl für die Installation
    ging auch nicht.

    sudo apt-get install python-lxml

    Hat bei mir dann funktioniert.

    1. smarthomebau.de Sonntag, 31UTCSun, 31 Jan 2016 22:18:31 +0000 31. Januar 2016 at 22:18 Antworten

      Skund, jap – je nach Distributions-Version-Stand kann es schonmal vorkommen, dass das ein oder andere Paket fehlt. Du hast es richtig gelöst: Einfach die fehlenden Pakete installieren! Danke für deine Rückmeldung und den Hinweis zur Lösung! 🙂

  10. Willy Sonntag, 14UTCSun, 14 Feb 2016 23:14:03 +0000 14. Februar 2016 at 23:14 Antworten

    Ich wollte auch das Speedtest Script installieren, da meine DSL Verbindung abends immer einbricht und ich der Telekom gerne einen Beweis über die schlechte Verbindung belegen wollte. Leider schaffe ich es nicht, das Script runterzuladen. Bekomme im LXTerminal immer folgende Fehler:
    ————————————————————————————————
    pi@raspberrypi:~ $ wget https://raw.githubusercontent.com/Janhouse/tespeed/master/tespeed.py-O ~/scripts/speedtest.py
    –2016-02-14 23:08:31– https://raw.githubusercontent.com/Janhouse/tespeed/master/tespeed.py-O
    Auflösen des Hostnamen »raw.githubusercontent.com (raw.githubusercontent.com)«… 23.235.43.133
    Verbindungsaufbau zu raw.githubusercontent.com (raw.githubusercontent.com)|23.235.43.133|:443… verbunden.
    HTTP-Anforderung gesendet, warte auf Antwort… 404 Not Found
    2016-02-14 23:08:32 FEHLER 404: Not Found.

    /home/pi/scripts/speedtest.py: Schema fehlt.
    pi@raspberrypi:~ $
    ——————————————————————————————————–

    Fehlermeldung kommt, egal ob ich raw.github.com oder raw.githubusercontent.com nehme.

    Würde mich über Hilfe freuen.

    Vielen Dank

    1. smarthomebau.de Donnerstag, 18UTCThu, 18 Feb 2016 12:04:09 +0000 18. Februar 2016 at 12:04 Antworten

      Willy,

      wir haben (momentan) mit beiden adressen keine Probleme. Kann es sein, dass noch ein Leerzeichen fehlt: Zwischen „.py “ und “ -O „?

      wget https://raw.github.com/Janhouse/tespeed/master/tespeed.py -O ~/scripts/speedtest.py

  11. Jakob Sonntag, 27UTCSun, 27 Mar 2016 18:43:39 +0000 27. März 2016 at 18:43 Antworten

    Hallo wollte mich bedanken für die tolle Anleitung und folgende Bemerkung machen:
    Unter RPi3 (Jessie) ist gibt es nach „sudo apt-get install python-argparse python-lxml“ folgende Fehlermeldung:
    „Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:

    The following packages have unmet dependencies:
    python-argparse : Depends: python2.6 but it is not installable
    E: Unable to correct problems, you have held broken packages.“

    Lösung: unter Python3 ist das bereits installiert, damit aber sppedtest.py nicht folgenden Fehler auswirft:
    „Traceback (most recent call last):
    File „speedtest.py“, line 26, in
    from lxml import etree
    ImportError: No module named lxml“

    muss in speedtest.py die Zeile 26: #from lxml import etree
    in: import xml.etree.ElementTree as etree
    geändert werden.

    Grüße

    1. smarthomebau.de Montag, 28UTCMon, 28 Mar 2016 20:13:53 +0000 28. März 2016 at 20:13 Antworten

      Jakob, herzlichen Dank für deinen Hinweis – wir schätzen deine Rückmeldung sehr, ein wertvoller Tipp für alle RPi3-Besitzer! Als wir den Artikel initial schrieben, war der Raspberry Pi 3 noch nicht auf dem Radar… 🙂

  12. Arnd Weber Dienstag, 05UTCTue, 05 Apr 2016 14:07:04 +0000 5. April 2016 at 14:07 Antworten

    Vielen Dank erst einmal für eure überaus hilfreiche Beschreibung. Basierend auf der produzierten speedtest.csv-Datei habe ich in R ein kleines Skript zur Visualisierung der Ergebnisse geschrieben, welches auf meinem Server basierend auf einem Banana Pi läuft. Die Beschreibung zur Einrichtung und das Skript zur Visualisierung findet sich hier:

    https://www.aqualogy.de/dsl-geschwindigkeiten/

    Ja, wenn denn der Webserver erreichbar ist… ;(

  13. DSL Geschwindigkeiten | aqualogy.de Sonntag, 24UTCSun, 24 Apr 2016 19:48:53 +0000 24. April 2016 at 19:48 Antworten

    […] habe ich beschlossen Verbindungsgeschwindigkeiten und Erreichbarkeit zu überwachen. Basierend auf diesem Blogpost und dem zugrundeliegenden Python-Tool zur Messung von Verbindungsgeschwindigkeiten von […]

  14. Seb Freitag, 29UTCFri, 29 Jul 2016 22:36:07 +0000 29. Juli 2016 at 22:36 Antworten

    Funktioniert super, Besten Dank!

  15. Patrick Sonntag, 15UTCSun, 15 Jan 2017 14:48:57 +0000 15. Januar 2017 at 14:48 Antworten

    Hi
    Danke für dieses sehr gute Script. Es hat gleich beim ersten mal super funktioniert.
    Eine Fragen hätte ich trotzdem noch schnell.
    Kann man dieses Script auch auf eine spezielle Schnittstelle anwenden da ich versuchen will einen Vergleich zwischen Festnetz Internet und LTE Stick zu generieren. Und falls wie?

    1. smarthomebau.de Sonntag, 15UTCSun, 15 Jan 2017 20:14:14 +0000 15. Januar 2017 at 20:14 Antworten

      Patrick,

      das Skript von Janhouse gibt das (momentan) leider nicht her. Den Wunsch gab es schon länger: https://github.com/Janhouse/tespeed/issues/12

      Sorry! 🙁

  16. kalli Samstag, 11UTCSat, 11 Mar 2017 23:20:23 +0000 11. März 2017 at 23:20 Antworten

    Danke für das Script/ die Anleitung, bei mir wird allerdings immer (chronjob, Aufruf von speedtest.zsh und beim ausführen von bash ~/bin/speedtest.zsh 2>/dev/null >> ~/speedtest.csv) nur die Zeit in die Datei geschrieben. Wenn ich speedtest.py über python speedtest.py aufrufe funktioniert alles, es wird eben nur nicht gespeichert. Der Log sieht folgend aus Mar 11 22:10:02 raspberrypi /USR/SBIN/CRON[29795]: (pi) CMD (/home/pi/bin/speedtest.zsh 2>/dev/null >> /home/pi/speedtest.csv)
    Mar 11 22:11:01 raspberrypi /USR/SBIN/CRON[30076]: (pi) CMD (/home/pi/bin/speedtest.zsh 2>/dev/null >> /home/pi/speedtest.csv)
    Mar 11 22:12:01 raspberrypi /USR/SBIN/CRON[30357]: (pi) CMD (/home/pi/bin/speedtest.zsh 2>/dev/null >> /home/pi/speedtest.csv)
    Mar 11 22:13:01 raspberrypi /USR/SBIN/CRON[30638]: (pi) CMD (/home/pi/bin/speedtest.zsh 2>/dev/null >> /home/pi/speedtest.csv)
    Mar 11 22:14:01 raspberrypi /USR/SBIN/CRON[30919]: (pi) CMD (/home/pi/bin/speedtest.zsh 2>/dev/null >> /home/pi/speedtest.csv)
    Mar 11 22:15:01 raspberrypi /USR/SBIN/CRON[31201]: (pi) CMD (/home/pi/bin/speedtest.zsh 2>/dev/null >> /home/pi/speedtest.csv)
    Mar 11 22:16:01 raspberrypi /USR/SBIN/CRON[31468]: (pi) CMD (/home/pi/bin/speedtest.zsh 2>/dev/null >> /home/pi/speedtest.csv)
    Mar 11 22:17:01 raspberrypi /USR/SBIN/CRON[31750]: (root) CMD ( cd / && run-parts –report /etc/cron.hourly)
    Mar 11 22:17:02 raspberrypi /USR/SBIN/CRON[31757]: (pi) CMD (/home/pi/bin/speedtest.zsh 2>/dev/null >> /home/pi/speedtest.csv)
    Mar 11 22:18:01 raspberrypi /USR/SBIN/CRON[32040]: (pi) CMD (/home/pi/bin/speedtest.zsh 2>/dev/null >> /home/pi/speedtest.csv)

    Weiß jemand, wie ich das fixen kann?

    LG kalli

  17. Tom Mittwoch, 19UTCWed, 19 Apr 2017 17:22:56 +0000 19. April 2017 at 17:22 Antworten

    Hi,
    sehr cool das Ganze… habs auch schon am Laufen und will mal sehen, wie mein Provider sich so schlägt.
    Aber eine interessante Frage wäre da auch noch.
    Ich hörte, es gibt Unterschiede in Bezug auf die Latenz zwischen einem DSL Anbieter und einem Kabel Anbieter. Jetzt fänd ich das schon spannend, diesen WErt mal zu messen – und zwar so:
    Ich lasse meinen Raspi mal einen Monat bei mir (Kabelanbieter) laufen und hänge das Teilchen dann beim Bekannten (DSL Anbieter) ins Netz.
    Somit könnte ich die Latenzen schön vergleichen und meinem Kabelanbieter mal lecker auf die Socken treten.
    Was denkst Du?

    Gruß
    Tom

    1. smarthomebau.de Mittwoch, 19UTCWed, 19 Apr 2017 17:55:46 +0000 19. April 2017 at 17:55 Antworten

      Servus Tom!

      „Mal lecker auf die Socken treten“? 🙂 Das hast du schön gesagt! Die Messung an sich wird höchstwahrscheinlich funktionieren. Ob man die Werte allerdings als rechtlich relevanten Beleg akzeptieren wird, bezweifle ich. Bin allerdings auch kein Anwalt… Du könntest dies aber auch zum Anlass nehmen deinen Vertrag mit dem derzeitigen Anbieter zu überdenken. Freie Anbieterwahl ist doch etwas Feines! 🙂

  18. Mads Mittwoch, 26UTCWed, 26 Apr 2017 13:39:59 +0000 26. April 2017 at 13:39 Antworten

    Moin,
    Erst einmal vielen Dank für die klasse Anleitung. Nach ein paar Startschwierigkeiten läuft das Tool perfekt!

    Ein Problem habe ich jedoch. Mein Raspberry hängt direkt an der FritzBox, kommt beim Test jedoch nicht über ~24mbit im down, sowie 12mbit im uploads hinaus. Mein Rechner hat i. d.R. 80/30mbit
    Der Pi (ich glaub Modell B) ist frisch aufgesetzt, es läuft nichts weiter drauf.
    Ist das technisch bedingt, oder habe ich evtl etwas falsch gemacht?

    1. smarthomebau.de Mittwoch, 26UTCWed, 26 Apr 2017 14:02:36 +0000 26. April 2017 at 14:02 Antworten

      Moin Mads,

      eine Ferndiagnose ist grundsätzlich immer schwierig… Dennoch kannst du nicht so einfach die Messungen zweier unterschiedlicher Geräte vergleichen. Abgesehen von der Ausstattung und Vernetzung der Gerätschaften, kann man in der Regel nie sicher sein, dass zwei unterschiedliche Rechner sich mit der selben Quelle verbinden mit der die eigentliche Messung stattfindet.

      Vielmehr war der von uns beschriebene Aufbau primär als Langzeitaufzeichnung/-Überwachung angedacht.

      1. Mads Donnerstag, 27UTCThu, 27 Apr 2017 17:58:13 +0000 27. April 2017 at 17:58 Antworten

        Danke für die schnelle Antwort.
        Primär nutze ich die Möglichkeit auch als Langzeittest, da ich eine Zeit lang massive Probleme zu bestimmten Zeiten hatte. Ein Techniker hat nun etwas ausgetauscht, was den fehler verursacht haben soll.
        Nun möchte ich das gerne „schwarz auf weiß“ haben 🙂
        Und da der raspberry konstant 24mbit anzeigt gehe ich davon aus, dass das passt (vorher waren das teilweise 0,5mbit…)
        Auf jeden Fall noch mal danke für die tolle Anleitung

  19. Holger Freitag, 09UTCFri, 09 Jun 2017 11:40:31 +0000 9. Juni 2017 at 11:40 Antworten

    Hi!

    Auch von mir erst einmal vielen Dank für das Script und die Anleitung. Ich habe alles schnell und einfach auf meinen Pi3 installiert bekommen. Musste ledglich – wie beschrieben – das ‚from SocksiPy‘ aus der Zeile 8 des Phytonscriptes entfernen.
    Was mir aber auch (wie Mads) auffällt: Die Download- und Uploadwerte scheinen mir (teilweise) keine realistische Größenordnung zu haben. Ich habe VDSL100 und komme bei Vergleichsmessungen (an der gleichen Netzwerkdose!) mit anderen Rechnern i. d.R. auf 80/30mbit. Das Script auf dem Pi3 kommt derzeit jedoch immer nur auf Werte von ca. 8/12 mbit.
    Das könnte einen vermuten lassen, dass der Pi3 irgendwie nicht performant genug, um so hohe Upload/Downloadraten verarbeiten zu können. Dem ist aber nicht so! Schaue ich mir das Logfile an, sehe ich, dass der Pi in der Vergangenheit auch schon 80/30mbit Werte messen konnte. Ich konnte bisher aber nichts finden, was erklärt, dass der Pi nun nicht mehr auf diese Werte kommt. Habe es mit verschiedenen Downloadservern probiert, die ich dem speedtest.py Script als Parameter mitgebe. Keine Änderung. Egal welchen Server ich nehme, der Pi misst bei mir nun immer nur die ca. 8/12 mbit. Aber: Schließe ich am gleichen Patchkabel einen Windowsrechner an und messe damit über verschiedene Tools die Geschwindigkeit, komme ich konstant auf die 80/30mbit. Wieso aber nicht (mehr) mit dem Pi?
    Wenn es so ist, wie es sich mir aktuell darstellt, würde dies ja bedeuten, dass die Messergebnisse die der Pi über die Dauer ausgibt, gar nicht vergleichbar sind. Das kann aber irgendwie auch nicht sein…
    Eine Idee, wie ich feststellen kann, was auf dem Pi ‚klemmt‘? Oder wie ich die Messergebnisse des Pi über eine andere Methode testen könnte?

    1. smarthomebau.de Freitag, 09UTCFri, 09 Jun 2017 19:12:36 +0000 9. Juni 2017 at 19:12 Antworten

      Holger,
      ich bezweifle, dass der Pi3 nicht potent genug sein soll – bei uns läuft noch der ganz alte Pi1… Womöglich ist etwas anderes „ver-konfiguriert“? Eine Ferndiagnose ist auch hier schwierig – hat sonst jemand ähnliche Erfahrungen mit dem Pi3?

Schreibe einen Kommentar

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

Verwandte Themen

KNX-Testaufbau (Mini-Testboard) mit Raspberry Pi und knxd

Wie ihr vielleicht in einem früheren Beitrag schon gelesen habt, haben wir uns für…