Speedtest op een Synology DS218+ NAS en Domoticz
Een speedtest op Synology DS218+ NAS, dat is handig! In dit artikel leggen we uit hoe je geheel automatisch je download- en uploadsnelheid kunt loggen in Domoticz. Het script maakt gebruik van de Python module speedtest-cli om de internetsnelheid via speedtest.net te testen.
Allereerst gaan we de Python module speedtest-cli installeren via de terminal, je kunt hier PuTTY voor gebruiken:
1 2 |
sudo wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py sudo chmod +x speedtest-cli |
Maak nu in Domoticz drie virtuele sensoren aan van het type Custom met de namen:
- Download
- Upload
- Ping
Ga naar Setup -> Devices en noteer de idx-nummer van de vier sensoren die je zojuist hebt aangemaakt.
Op de Synology DS218+ NAS maak je een shared folder aan met de naam Scripts. Kopieer onderstaand script naar de zojuist aangemaakte folder en sla het op met de bestandsnaam speedtest.sh. Uiteraard moet je het IP-adres wel even aanpassen naar het IP-adres van jouw Domoticz-installatie en de IDX-nummer aanpassen. Ook moet je ervoor zorgen dat het script de juiste rechten (755) heeft, zodat het uitgevoerd kan worden.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
#!/bin/bash #setup host='192.168.2.62:8080' #idx for download, upload and ping idxdl=154 idxul=155 idxpng=156 idxbb=157 # no need to edit ./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¶m=udevice&idx=$idxdl&svalue=$download" >/dev/null 2>&1 wget -q --delete-after "http://$host/json.htm?type=command¶m=udevice&idx=$idxul&svalue=$upload" >/dev/null 2>&1 wget -q --delete-after "http://$host/json.htm?type=command¶m=udevice&idx=$idxpng&svalue=$png" >/dev/null 2>&1 # Domoticz logging wget -q --delete-after "http://$host/json.htm?type=command¶m=addlogmessage&message=speedtest.net-logging" >/dev/null 2>&1 |
Log nu met een web-browser in op de Synology NAS en ga naar Control Panel > Task Scheduler. Klik op Create > Scheduled Task > User-defined script
Bij Task geef je een willekeurige naam in, zodat je het script herkend. Bij User selecteer je gebruiker die het script uit moet/mag voeren.
Onder de tab Schedule kun je aangeven wanneer en hoe vaak het script moet draaien.
Tot slot kun je nog een mailadres invoeren voor een notificatie en, het belangrijkste, het commando het uitgevoerd moet worden. Vergeet niet om op OK te klikken, nadat je alles ingevuld hebt.
Als alles goed gegaan is krijg je ieder half uur de internetsnelheden in Domoticz te zien:
Ondanks het feit, dat dit artikel zich richt op het installeren van dit “Speedtest” script op een Synology DS218+ Nas, is het ook goed bruikbaar voor op een Raspbery Pi, o.i.d.
Let wel op dat je speedtest-cli installeert vanaf Github (Sivel) aangezien de versie uit de Buster (Raspbian 10) een bug bevat.
Ook zeer goed bruikbaar is de “originele” speedtest van Ookla. (https://www.speedtest.net/apps/cli)
Zie: https://www.domoticz.com/forum/viewtopic.php?f=28&t=31898&p=248987&hilit=speedtest#p248987
Met vriendelijke groet
Hallo,
Ik krijg steeds de foutmelding : “cannot execute binary file”.
Wat doe ik verkeerd?
Wanneer krijg je de foutmelding?
Elke keer bij het uitvoeren van het script. Ik heb de email melding ook aangezet en daar staat het in.
De download, upload en ping worden niet geupdate.
Paar dingen die je kunt proberen:
* Het script in Notepad++ openen. Vervolgens naar Bewerken > Formaat > dan kiezen voor Unix-indeling
* Via de terminal de juiste rechten geven: chmod 777 /path/to/file.sh
* Staat het script in de juiste folder en heeft het de juiste naam?
* Werkt het script wel als het uitgevoerd wordt via de terminal (i.p.v. via Task Scheduler)?
In welke folder moet speedtest-cli worden gedownload?
Werkt perfect, kwam hier terecht vanwege een “permission denied” melding. Met het CHMOD 777 commando is dat opgelost, ook voor mijn andere script
Hallo,
Ik heb nu alles al geprobeerd maar het lukt nog steeds niet. Ik krijg nog steeds de melding : cannot execute binary file.
De rechten staan juist, de folder “Scripts” is aangemaakt waar dus het bestand met het script in staat (speedtest.sh) en in terminal krijg ik hetzelfde resultaat als in task scheduler.
Ik gebruik wel een ds 918+ kan het door een andere processor een verschil geven?
Leuk script. Ik krijg alleen een fout met uitvoeren:
Beste gebruiker,
Taakplanner heeft een geplande taak voltooid.
Taak: Speedtest
Starttijd: Sat, 03 Oct 2020 17:31:41 GMT
Stoptijd: Sat, 03 Oct 2020 17:31:42 GMT
Huidige status: 1 (Onderbroken)
Standaard uitvoer/fout:
/volume1/scripts/speedtest.sh: line 2: $’\r’: command not found
/volume1/scripts/speedtest.sh: line 10: $’\r’: command not found
/volume1/scripts/speedtest.sh: line 12: ./speedtest-cli: No such file or directory
/volume1/scripts/speedtest.sh: line 13: $’\r’: command not found
cat: speedtest.txt: No such file or directory
cat: speedtest.txt: No such file or directory
cat: speedtest.txt: No such file or directory
/volume1/scripts/speedtest.sh: line 17: $’\r’: command not found
Download = Mbps
Upload = Mbps
Ping = ms
/volume1/scripts/speedtest.sh: line 22: $’\r’: command not found
/volume1/scripts/speedtest.sh: line 24: 1: ambiguous redirect
/volume1/scripts/speedtest.sh: line 25: 1: ambiguous redirect
/volume1/scripts/speedtest.sh: line 26: 1: ambiguous redirect
/volume1/scripts/speedtest.sh: line 27: $’\r’: command not found
Van DS214PLAY
Ik heb de bovenste twee regels uitgevoerd via Putty en de bestanden staan in dezelfde map als het script (\volume1\scripts\). Ik denk dat het daar fout gaat.
Wat doe ik fout?