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):


– 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&param=udevice&idx=$pingidx&svalue=$ping”;
curl „http://$username:$password@$host:$port/json.htm?type=command&param=udevice&idx=$downloadidx&svalue=$download”;
curl „http://$username:$password@$host:$port/json.htm?type=command&param=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



5 komentarzy do wpisu „Badanie szybkości łącza internetowego”

  1. 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.

    Odpowiedz
  2. 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.

    Odpowiedz
  3. 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 🙂

    Odpowiedz

Dodaj komentarz