wtorek, 14 marca 2017

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


6 komentarzy:

  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.

    OdpowiedzUsuń
    Odpowiedzi
    1. 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ń
    2. Jak masz pomysł na korekte skryptu to wklejaj :)

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

      Usuń
  2. Szybkość internetu nie jest bez znaczenia, wpływa na komfort surfowania, pracy czy grania. Dlatego warto wybierać internet światłowodoy

    OdpowiedzUsuń

No dobra, kupiłem ULIfAC do Amstrada 464. Co dalej?

     Nadeszła jesień i warto było w końcu powrócić do uruchamiania tegorocznych zakupów. Padło na Amstrada 464. Od razu napiszę, że były mom...