Badanie szybkości łącza internetowego
Dzień dobry!
Ciekawym dodatkiem do naszego Domoticz może być pomiar prędkości łącza internetowego.
Zrobiłem to na przykładzie zaproponowanym na blogu https://raspberrywpraktyce.wordpress.com
Pierwszym krokiem jest oczywiście standardowe
sudo apt-get update oraz
sudo apt-get upgrade
Po tych dwóch komendach możemy zainstalować speedtest
sudo apt-get install speedtest-cli
Zasada jest prosta - wysyłamy wartości speedtest do pliku tekstowego, później przetwarzamy je i ładujemy za pomocą JSON do wartości wirtualnych czujników (dobierając oczywiście odpowiednie ID):
Ciekawym dodatkiem do naszego Domoticz może być pomiar prędkości łącza internetowego.
Zrobiłem to na przykładzie zaproponowanym na blogu https://raspberrywpraktyce.wordpress.com
Pierwszym krokiem jest oczywiście standardowe
sudo apt-get update oraz
sudo apt-get upgrade
Po tych dwóch komendach możemy zainstalować speedtest
sudo apt-get install speedtest-cli
Zasada jest prosta - wysyłamy wartości speedtest do pliku tekstowego, później przetwarzamy je i ładujemy za pomocą JSON do wartości wirtualnych czujników (dobierając oczywiście odpowiednie ID):
- Hardware
- Devices (typ Custom sensor)
Będąc w folderze gdzie zainstalowany jest Domoticz przechodzimy do scrtips/
sudo nano DomoticzPing.sh
Później (odpowiednio edytując parametry) wpisujemy:
#!/bin/bash
#Tutaj wstawcie wlasne wartosci
host=192.168.1.xxx #Adres IP Raspberry Pi
port=xxx #Numer portu
username=
password=
pingidx=111 #Tu Wasze ID
downloadidx=112 #Tu Wasze ID
uploadidx=113 #Tu Wasze ID
# no need to edit
speedtest-cli --simple > output.txt
ping=$(cat output.txt | sed -ne "s/^Ping: \([0-9]*\.[0-9]*\).*/\1/p")
download=$(cat output.txt | sed -ne "s/^Download: \([0-9]*\.[0-9]*\).*/\1/p")
upload=$(cat output.txt | sed -ne "s/^Upload: \([0-9]*\.[0-9]*\).*/\1/p")
#Ponizsze tylko jezeli uruchamiacie manualnie
#echo "ping = $ping ms"
#echo "download = $download Mbps"
#echo "upload = $upload Mbps"
#Esencja
curl "http://$username:$password@$host:$port/json.htm?type=command¶m=udevice&idx=$pingidx&svalue=$ping";
curl "http://$username:$password@$host:$port/json.htm?type=command¶m=udevice&idx=$downloadidx&svalue=$download";
curl "http://$username:$password@$host:$port/json.htm?type=command¶m=udevice&idx=$uploadidx&svalue=$upload";
Po zapisaniu:
sudo chmod +x /home/pi/domoticz/scripts/DomoticzPing.sh
Oraz aktualizacja Cron:
crontab -e
Dodajemy
@hourly sudo ~/domoticz/scripts/DomoticzPing.sh
Witam, monitoring łącza internetowego zaimplementowałem kilka miesięcy temu wszystko fajnie śmiga tylko jedno ale : przy zerwaniu połączenia wartości pozostają na niezmienionych poziomach i powoduje to że zerwanie połączenia internetowego na wykresach historycznych jest całkowicie nie widoczne. A w dyskusji z dostawcą internetu fajnie by było mu pokazaćc wykres kiedy łącze nie działało wcale.
OdpowiedzUsuńCiekawa kwestia. Gdyby tak kasować przed testem output.txt i zapisywać do niego domyślnie Ping: 0 ms, Download: 0 Mbits/s, Upload: 0 Mbits/s? Bo wygląda na to, że jeżeli nie ma komunikacji, plik nie jest aktualizowany.
UsuńJak masz pomysł na korekte skryptu to wklejaj :)
UsuńHalo halo, a co to za lenistwo ;) ? Na przykład echo "Ping: 0 ms" > output.txt, w kolejnej linii echo "Download: 0 Mbits/s" >> output.txt i ostatnia echo "Upload: 0 Mbits/s" >> output.txt. Przetestować, dać znać czy działa :)
Usuńpozdrawiam
OdpowiedzUsuńSzybkość internetu nie jest bez znaczenia, wpływa na komfort surfowania, pracy czy grania. Dlatego warto wybierać internet światłowodoy
OdpowiedzUsuń