GATEWAY SHELLY PM Mini Gen3 do SERWERA ZABBIX
Gateway ma za zadanie przekazywać dane ze sterownika SHELLY PM Mini Gen3 do systemu ZABBIX poprzez odpytywanie tego miernika co jedną minutę i zapisywanie pobranych wyników danych na serwerze ZABBIX. Dodatkowo rejestrowane jest zużycie energii w cyklu dziennym.
Co ważne - nie trzeba przeprogramowywać miernika.
GATEWAY – INSTALACJA:
Gateway można uruchomić na dowolnym komputerze z systemem Linux. Może to być ten sam komputer, na którym jest uruchomiona własna instancja serwera SUPLA lub dowolna wersja mikrokomputera z rodziny Raspberry (nawet nanoPi). Testy były przeprowadzone na VPS-ie z systemem Debian, na którym pracują serwery SUPLA, ZABBIX, GRAFANA oraz na mikrokomputerze NanoPi.
1. Aby skrypt działał poprawnie należy wykonać poniższe instrukcje:
Code: Select all
sudo apt-get update
sudo apt-get install bc
sudo apt-get install jq
sudo apt-get install zabbix-agent
https://djack.com.pl/modules.php?name=D ... it&lid=357
W upakowanym pliku jest też plik template do zaimportowania do serwera Zabbix, dla miernika Shelly PM Mini
(Shelly_PM_Mini_templates.yaml)
3. Po rozpakowaniu kopiujemy plik Shelly_PM_Mini.sh do katalogu /usr/bin
4. Nadajemy odpowiednie atrybuty:
Code: Select all
sudo chmod a+rwx /usr/bin/Shelly_PM_Mini.sh
1. Otwieramy skrypt Shelly_PM_Mini.sh w zwykłym edytorze (vi, nano).
Na początku skryptu są linie, w które należy wpisać opisane parametry:
#================================================
#== Adres IP serwera Zabbix =====================
ZABBIX_SERVER="xxx.xxx.xxx.xxx"
#================================================
#== Nazwa hosta na serwerze Zabbix ==============
HOST="shelly1pm"
#================================================
#== Adres IP sterownika Shelly PM Mini =============
SHELLY_IP="zzz.zzz.zzz.zzz"
#================================================
- Adres IP serwera Zabbix może być podany jako adres bezwzględny lub jako nazwa domenowa.
- Nazwa hosta może być dowolna (zgodna z nazwą określoną na serwerze Zabbix). W powyższym przykładzie jest „shelly1pm”.
- Adres IP sterownika Shelly najczęściej będzie podany jako adres bezwzględny, gdyż jest w sieci lokalnej.
Code: Select all
crontab –e
*/1 * * * * Shelly_PM_Mini.sh > /dev/null 2>&1
Skrypt wykonywany jest co jedną minutę.
W przypadku posiadania większej liczby sterowników można powielać kod skryptu w jednym pliku lub kopiować plik skryptu zmieniając mu nazwę.
W takim przypadku dobrze jest uruchamiać skrypty w cron-ie z opóźnieniem:
*/1 * * * * Shelly_PM_Mini.sh > /dev/null 2>&1
*/1 * * * * (sleep 10; Shelly_PM_Mini1.sh > /dev/null 2>&1)
*/1 * * * * (sleep 20; Shelly_PM_Mini2.sh > /dev/null 2>&1)
*/1 * * * * (sleep 30; Shelly_PM_Mini3.sh > /dev/null 2>&1)
*/1 * * * * (sleep 40; Shelly_PM_Mini4.sh > /dev/null 2>&1)
.....
Sterowniki z firmware obsługującym raportowanie do serwera Zabbix przesyłają informacje o zmianie stanu niemal natychmiast, natomiast
w przypadku gateway'a może to być z opóźnieniem max 1 min.
Dlatego też, gdy potrzebne jest częstsze rejestrowanie danych niż co 1 minutę (np. co 10 sekund) można użyć konstrukcji:
*/1 * * * * Shelly_PM_Mini.sh > /dev/null 2>&1
*/1 * * * * (sleep 10; Shelly_PM_Mini.sh > /dev/null 2>&1)
*/1 * * * * (sleep 20; Shelly_PM_Mini.sh > /dev/null 2>&1)
*/1 * * * * (sleep 30; Shelly_PM_Mini.sh > /dev/null 2>&1)
*/1 * * * * (sleep 40; Shelly_PM_Mini.sh > /dev/null 2>&1)
*/1 * * * * (sleep 50; Shelly_PM_Mini.sh > /dev/null 2>&1)
.....
DANE REJESTROWANE NA SERWERZE ZABBIX
Gateway raportuje dane w czasie rzeczywistym (co 1 minutę).
Pierwsze dzienne zużycie energii pojawi się w wykazie danych następnego dnia po pierwszym uruchomieniu skryptu.
System może wysyłać powiadomienia (typu PUSH, mail) według zadanych dowolnych kryteriów. Opisane jest to szerzej w wątku:
https://forum.supla.org/viewtopic.php?t=10047
.
.
Przykładowe ekrany w systemie Zabbix:
. .
.