Speedtest op Raspberry Pi in Domoticz

Een speedtest op je Raspberry PI onder Domoticz, dat is handig! Hier leggen we uit hoe je geheel automatisch je ping, 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:

sudo apt-get install speedtest-cli

Virtuele sensoren

Ga naar Instellingen > Hardware, scrol hier naar beneden en vul daar in:

Speedtest, kies voor Dummy hardware en klik op toevoegen.

Je hebt deze dummy hardware nu aangemaakt, klik nu in de regel “speedtest” op maak virtuele sensoren.

Maak de drie benodigde virtuele sensoren aan volgens onderstaande voorbeelden:

  • Download
  • Upload
  • Ping

 

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

  • Breedband (dit is de schakelaar om vanuit Domoticz het Bash script handmatig te starten)

Ga nu naar Instellingen > Apparaten en daar zijn deze nu zichtbaar, schrijf de “IDX” nummers van de sensoren die je zojuist hebt aangemaakt even op.

Het script

Download hier het script en plaats het in de map /home/pi/domoticz/scripts/

Aan het script moet je twee wijzigingen doorvoeren:

  • Het IP-adres van je Raspberry PI in (bij host op regel 4) en de poort (achter de dubbele punten) waarop je deze kan benaderen, bij mij is dat 10.0.0.1:8080.
  • Vul de “IDX” adressen die je zojuist hebt opgeschreven van de vier sensoren in apparaten.

#!/bin/bash

#setup
host='10.0.0.1:8080' #IP and port of Domoticz
#idx for download, upload and ping
idxdl=106 #idx of download sensor
idxul=107 #idx of upload sensor
idxpng=108 #idx of ping sensor
idxbb=109 #idx of breedband switch

# speedtest server number
# serverst=xxxx

# no need to edit
# speedtest-cli --simple --server $serverst > outst.txt
speedtest-cli --simple > speedtest.txt

download=$(cat speedtest.txt | sed -ne 's/^Download: \([0-9]*\.[0-9]*\).*/\1/p')
upload=$(cat speedtest.txt | sed -ne 's/^Upload: \([0-9]*\.[0-9]*\).*/\1/p')
png=$(cat speedtest.txt | sed -ne 's/^Ping: \([0-9]*\.[0-9]*\).*/\1/p')

# output if you run it manually
echo "Download = $download Mbps"
echo "Upload = $upload Mbps"
echo "Ping = $png ms"

# Updating download, upload and ping ..
wget -q --delete-after "http://$host/json.htm?type=command&param=udevice&idx=$idxdl&svalue=$download" >/dev/null 2>&1
wget -q --delete-after "http://$host/json.htm?type=command&param=udevice&idx=$idxul&svalue=$upload" >/dev/null 2>&1
wget -q --delete-after "http://$host/json.htm?type=command&param=udevice&idx=$idxpng&svalue=$png" >/dev/null 2>&1

# Reset Broadband switch
wget -q --delete-after "http://$host/json.htm?type=command&param=udevice&idx=$idxbb&svalue=0" >/dev/null 2>&1

# Domoticz logging
wget -q --delete-after "http://$host/json.htm?type=command&param=addlogmessage&message=speedtest.net-logging" >/dev/null 2>&1


Voer uit:

# sudo chmod 755 /home/pi/domoticz/scripts/speedtest.sh

Als dit zonder foutmeldingen werkt kunnen we verder met de schakelaar in de TAB schakelaars, deze zal onderaan staan, maar is natuurlijk gewoon te verplaatsen door slepen.

We gaan dus naar Schakelaars en klik op “Aanpassen” bij van de Speedtest schakelaar.

Vul bij On action “script:///home/pi/domoticz/scripts/speedtest.sh” in en klik op “Opslaan”. Als je nu op de Breedband knop klikt zal het script worden uitgevoerd en worden de Ping, Download- en Uploadsnelheid na circa 30 seconden ververst en zichtbaar in de tab “Overige”.

Elke keer als je nu de knop speedtest gebruikt word de snelheid gemeten en kun je deze vanuit Domoticz controleren, wil je dit echter automatiseren kan dit het snelste via een crontab, die maak je aan me de volgende opdracht, voer uit:

De Crontab, hoe doe je dat:

  1. We voeren uit: sudo crontab -e
  2. Druk op ESC.
  3. Druk op i (voor “insert”) om het bewerken te beginnen.
  4. Plak de regel */30 * * * * sudo sh /home/pi/domoticz/scripts/speedtest.sh onderaan.
  5. Druk weer op ESC om het bewerken af te sluiten.
  6. Type :wq om de crontab op te slaan en (w – write) om de crontab af te sluiten (q – quit).

Het script wordt nu elke 30 minuten aangeroepen, wil de dit vaker of minder kun je dit natuurlijk aanpassen.

Als je alles goed hebt ingevoerd en de cronjob draaid een paar dagen krijg je een redelijk inzicht in je internetsnelheid gedurende een steeds langere periode.

De icons kun je zelf maken en aanpassen, maar via deze webpagina gaat het ook simpel en snel. (https://domoticz-icon.aurelien-loyer.fr/)

Suc6


One Response to Speedtest op Raspberry Pi in Domoticz

  1. Pingback:Peter