Speedtest uitvoeren op Synology en weergeven in Domoticz

Gestart door Joost, 28 juli 2020, 11:12:25

Vorige topic - Volgende topic

Joost

Met onderstaand script krijg je de waardes van upload- / downloadsnelheid en ping in Domoticz te zien.

Installeer eerst de python module speedtest-cli op de Synology NAS via de terminal:



sudo wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
sudo chmod +x speedtest-cli


Stappen:

       
  • 3 custom sensors in Domoticz aanmaken, zet de IDX-nummers in onderstaand script
  • Wijzig in het script het IP-adres van de Domoticz-installatie
  • Plaats het script op de Synology NAS (en geef het 755 rechten)
  • Maak op de Synology NAS een terugkerende taak aan (Control Panel > Task Scheduler). Het commando dat uitgevoerd moet worden is sh /volume1/scripts/speedtest/speedtest.sh

#!/bin/bash

#setup
host='192.168.2.62:8080'
#idx for download, upload and ping
idxdl=154
idxul=155
idxpng=156

# speedtest server number
# serverst=xxxx

# no need to edit
# speedtest-cli --simple --server $serverst > outst.txt
/volume1/scripts/speedtest/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

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