ZABBIX_GATEWAY do SERWERA ZABBIX
Gateway dotyczy sterowników Sonoff-POW, Sonoff-POW-R2, Blitzwolf, Gosund, NeoCoolcam, Shelly 1PM i innych z pomiarem mocy, które nie mają wbudowanej w firmware obsługi serwera Zabbix.
Ma on za zadanie przekazywać dane z serwera SUPLA do systemu ZABBIX poprzez odpytywanie serwera SUPLA co jedną minutę (lub częściej) i zapisywanie tych danych na serwerze ZABBIX. Dodatkowo rejestrowane jest zużycie energii w cyklu dziennym.
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, najtańszy VPS lub dowolna wersja mikrokomputera z rodziny Raspberry (nawet nanoPi). Testy były przeprowadzone na VPS-ie z systemem Debian 9, 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
apt install jq -y
https://djack.com.pl/modules.php?name=D ... it&lid=349
3. Po rozpakowaniu kopiujemy pliki zabbix_gateway.sh oraz zabbix_sender do katalogu /usr/bin
W przypadku komputera z rodziny Raspberry zabbix_sender instalujemy wykonując polecenia:
Code: Select all
sudo apt-get update
sudo apt-get install zabbix-agent
Code: Select all
sudo chmod a+rwx /usr/bin/zabbix_gateway.sh
sudo chmod a+rx /usr/bin/zabbix_sender
1. Na serwerze SUPLA, dla sterownka z miernikiem energii, należy utworzyć linki bezpośrednie („do odczytu”) dla kanału pomiaru energii i kanału przekaźnika. Linki ten należy wpisać w skrypcie zabbix_gateway.sh, jak opisano w pkt.2
2. Otwieramy skrypt zabbix_gateway.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="czajnik"
# == Linki bezpośrednie z serwera SUPLA (json) =========
# == Link do ELECTRICITIMETER Channel ==============
SUPLA_LINK_POWER="https://......................./read?format=json"
# == Link do RELAY Channel =========================
SUPLA_LINK_STATE="https://......................./read?format=json"
#===============================================
Nazwa hosta może być dowolna (zgodna z nazwą określoną na serwerze Zabbix). W powyższym przykładzie jest „czajnik”. Taki host został przykładowo skonfigurowany, w opisanej tutaj: viewtopic.php?f=92&t=10047 , instalacji Zabbixa
3. Wykonujemy polecenie:
Code: Select all
crontab –e
*/1 * * * * zabbix_gateway.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 * * * * zabbix_gateway.sh > /dev/null 2>&1
*/1 * * * * (sleep 10; zabbix_gateway1.sh > /dev/null 2>&1)
*/1 * * * * (sleep 20; zabbix_gateway2.sh > /dev/null 2>&1)
*/1 * * * * (sleep 30; zabbix_gateway3.sh > /dev/null 2>&1)
*/1 * * * * (sleep 40; zabbix_gateway4.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 * * * * zabbix_gateway.sh > /dev/null 2>&1
*/1 * * * * (sleep 10; zabbix_gateway.sh > /dev/null 2>&1)
*/1 * * * * (sleep 20; zabbix_gateway.sh > /dev/null 2>&1)
*/1 * * * * (sleep 30; zabbix_gateway.sh > /dev/null 2>&1)
*/1 * * * * (sleep 40; zabbix_gateway.sh > /dev/null 2>&1)
.....
DANE REJESTROWANE NA SERWERZE ZABBIX
Gateway raportuje dane w czasie rzeczywistym (co 1 minutę) oraz dzienne zużycie energii.
Pierwsze dzienne zużycie energii pojawi się w wykazie danych następnego dnia po pierwszym uruchomieniu skryptu.
Wszystkie parametry rejestrowane w systemie Zabbix: