wtorek, 14 marca 2017

Dataplicity - zdalny dostęp do Raspberry Pi. I przy okazji do Domoticz


Produktywny dzień :)

Po zmianie providera internetu stanąłem przed problemem dostania się do Raspberry Pi oraz Domoticz bez zewnętrznego IP. Za takowy adres musiałbym płacić. Warto czasem sprawdzić alternatywy.

Natrafiłem na serwis Dataplicity, który jest dedykowanym rozwiązaniem dla Raspberry Pi.

Do serwisu trzeba się zarejestrować, po potwierdzeniu e-mailem nasze oczy zobaczą kod, który powinniśmy bezpośrednio wprowadzić do terminala Raspberry Pi.

Dodawanie nowego Raspberry Pi

Po kilkunastu sekundach powinniśmy zobaczyć naszą Malinę dostępną w panelu:




Tak proste, że aż zadziwiające. Mamy dostęp do SSH oraz, po odblokowaniu tak zwanego Wormhole do strony na porcie 80. W moim przypadku Domoticz.


Więcej informacji na stronie http://docs.dataplicity.com/docs/. Generalnie instalujemy na naszym Raspberry szyfrowany serwis, który pozwala na zdalny dostęp.

Pozostaje oczywiście mentalny problem dostępu do naszego sprzętu z poziomu obcego serwisu. Jak dla mnie nie jest to krytyczne, rozumiem że dla części z Was może to wykluczyć go z kręgu zainteresowania.

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