Speedtest op Raspberry Pi

Een speedtest op Raspberry Pi, dat is handig! In dit artikel leggen we uit hoe je geheel automatisch je download- en uploadsnelheid kunt loggen. Het script maakt gebruik van de Python module speedtest-cli om de internetsnelheid via speedtest.net te testen.

Python module

Allereerst gaan we de Python module speedtest-cli installeren via de terminal:


Virtuele sensoren

Maak drie virtuele sensoren aan van het type “Custom” met de namen:

  • Download
  • Upload
  • Ping

Maak een virtuele sensor aan van het type “Switch” met de naam:

  • Broadband (switch om het Bash script handmatig te triggeren)

Ga naar Setup -> Devices en noteer de idx-nummer van de vier sensoren die je zojuist hebt aangemaakt.

 

Script

Download hier het benodigde script en pak het uit met bv. Winrar. In het script moet je twee wijzigingen doorvoeren:

  • Vul het IP en de poort van jouw Raspberry Pi in
  • Vul de idx-nummers van de vier sensoren in

Kopieer het script naar /home/pi/domoticz/scripts/ en wijzig de rechten, zodat het script via de crontab uitgevoerd kan worden (755).

Ga nu naar Switches en klik op “Edit” bij de Broadband-switch. Vul bij On action “script:///home/pi/domoticz/scripts/speedtest.sh” in (wijzig het pad indien van toepassing) en klik op “Save”. Als je nu op Broadband klikt zal het script aangeroepen worden en wordt de download- en uploadsnelheid na een minuutje zichtbaar bij de virtuele sensoren.

Als alles goed werkt kun je een cronjob instellen, zodat het script bv. iedere 15 minuten draait. Je kunt in de grafiek dan aardig zien hoe jouw internetsnelheid gedurende een langere periode is:


 

14 gedachten over “Speedtest op Raspberry Pi

  • 22 juni 2019 om 20:51
    Permalink

    Ik krijg de gegevens van down, up en ping niet in domoticz zichtbaar. De speedtest.sh werkt als ik deze via putty start. speedtest.sh aangepast (volgens de beschrijving). In het voorbeeld path staan drie slashes in het scripht path. Klopt dit wel? heb het ook geprobeerd met twee slashes, maar ook dan geen gegevens in domoticz.

    Wat doe ik fout, of waar zit de fout

    Beantwoorden
  • 26 juni 2019 om 20:56
    Permalink

    Zou je aan kunnen geven hoe je de rechten wijzigt, zodat het script via de crontab uitgevoerd kan worden?

    Beantwoorden
  • 21 oktober 2019 om 15:30
    Permalink

    Hai Joost,

    lijkt allemaal te werken.. heb wel ff een noob vraagje. die cron job… hoe/waar stel je die in? moet je daar een aparte .sh voor maken??

    Beantwoorden
    • 21 oktober 2019 om 19:22
      Permalink

      Een cronjob stel je in door in de terminal in te geven: sudo crontab -e
      Voeg vervolgens de volgende regel toe: */15 * * * * sudo sh /home/pi/domoticz/scripts/speedtest.sh

      Het script wordt nu automatisch iedere 15 minuten uitgevoerd.

      Beantwoorden
  • 20 november 2020 om 12:45
    Permalink

    Als ik mijn script automatiseer wordt het wel uitgevoerd, maar komen er geen waardes terug.

    Zodra ik het script handmatig uitvoer met een bash commando, komen de waardes wel netjes terug (en ook in Domoticz).

    Wat zou het probleem kunnen zijn? Mappen en script hebben 755 rechten.

    Beantwoorden
  • 11 januari 2021 om 15:52
    Permalink

    Scriptje werkt goed. en duidelijk uitgelegd

    Beantwoorden
  • 12 april 2021 om 21:56
    Permalink

    Het heeft bij mij een tijdje goed gewerkt maar krijg nu ineens een foutmelding waar ik geen raad mee weet. Iemand een idee???

    sudo /home/pi/domoticz/scripts/speedtest.sh
    Traceback (most recent call last):
    File “/usr/bin/speedtest-cli”, line 11, in
    load_entry_point(‘speedtest-cli==2.0.2’, ‘console_scripts’, ‘speedtest-cli’)()
    File “/usr/lib/python3/dist-packages/speedtest.py”, line 1887, in main
    shell()
    File “/usr/lib/python3/dist-packages/speedtest.py”, line 1783, in shell
    secure=args.secure
    File “/usr/lib/python3/dist-packages/speedtest.py”, line 1027, in __init__
    self.get_config()
    File “/usr/lib/python3/dist-packages/speedtest.py”, line 1113, in get_config
    map(int, server_config[‘ignoreids’].split(‘,’))
    ValueError: invalid literal for int() with base 10: ”
    Download = Mbps
    Upload = Mbps
    Ping = ms

    Beantwoorden
    • 17 april 2021 om 22:25
      Permalink

      Heb hetzelfde Frans, denk na een update. Ben aan het zoeken naar een oplossing!

      Beantwoorden
  • 19 april 2021 om 22:48
    Permalink

    De speedtest cli heeft een update nodig. Zie https://github.com/sivel/speedtest-cli

    Install:
    git clone https://github.com/sivel/speedtest-cli.git
    cd speedtest-cli
    python setup.py install

    Of update:
    git pull https://github.com/sivel/speedtest-cli.git
    cd speedtest-cli
    python setup.py install

    Bij een setuptools fout, Zorg ervoor dat dit geïnstalleerd is:
    sudo apt-get install -y python-setuptools
    Zie https://stackoverflow.com/questions/22531360/no-module-named-setuptools

    Beantwoorden
  • 22 november 2022 om 06:44
    Permalink

    Speedtest werke bij mij niet meer goed.

    Pas deze regel aan in /domoticz/scripts/speedtest.sh

    # speedtest-cli –simple –server $serverst > outst.txt
    speedtest-cli –secure –simple > speedtest.txt

    zet dus –secure in de uitvoerende regel, dan werkt het weer.

    Beantwoorden

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.