GATEWAY DO SERWERA ZABBIX DLA STEROWNIKÓW Z KANAŁEM ELECTRICITIMETER

djack2017
Posty: 686
Rejestracja: pn lis 27, 2017 7:36 am
Kontakt:

GATEWAY DO SERWERA ZABBIX DLA STEROWNIKÓW Z KANAŁEM ELECTRICITIMETER

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:

Kod: Zaznacz cały

sudo apt-get update
sudo apt-get install bc
apt install jq -y
2. Pobieramy plik zabbix_gateway.zip z adresu:
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:

Kod: Zaznacz cały

sudo apt-get update
sudo apt-get install zabbix-agent
4. Nadajemy im odpowiednie atrybuty:

Kod: Zaznacz cały

sudo  chmod  a+rwx  /usr/bin/zabbix_gateway.sh
sudo  chmod  a+rx   /usr/bin/zabbix_sender
KONFIGURACJA GATEWAY’A:
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:

Kod: Zaznacz cały

crontab  –e
i wpisujemy linię:

*/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:
czajnik.png
czajnik.png (12.06 KiB) Przejrzano 1074 razy
__________________________________________________________
Specjalizowane oprogramowanie do sterowników Sonoff, Gosund, Blitzwolf, Shelly i innych:
https://djack.com.pl/modules.php?name=Downloads&d_op=viewdownload&cid=54
tomakl
Posty: 4
Rejestracja: pt sty 07, 2022 4:28 pm

Super to działa. Chciałbym dodać sobie do gatewaya oddanie z sieci razem z kompensacją licznika. Czy jest jakiś sposób?
Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

tomakl pisze: czw sty 27, 2022 9:04 am Super to działa. Chciałbym dodać sobie do gatewaya oddanie z sieci razem z kompensacją licznika. Czy jest jakiś sposób?
Masz na myśli rozliczanie produkcji/poboru prądu z tzw. "wirtualnym magazynem" i potrącaniem 80%?
Jeśli tak, to zerknij tutaj: viewtopic.php?f=46&t=10028
Szykują się zmiany w prawie. Będzie korzystniej, ale wg mnie nie będzie się dało tego liczyć samemu - chyba że na podstawie tych samych danych, które powinien udostępnić sprzedawca prądu.
Widzimy się na Supla Offline Party vol. 2 :!:
Awatar użytkownika
klimasstudio
Posty: 1114
Rejestracja: śr sie 28, 2019 9:35 pm
Lokalizacja: localhost
Kontakt:

Zrobiłem wszystko wg. poradnika i widzę taki błąd:

Kod: Zaznacz cały

pi@rpi-web:/ $ /usr/bin/zabbix_gateway.sh 
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    53  100    53    0     0    242      0 --:--:-- --:--:-- --:--:--   242
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   589  100   589    0     0   2873      0 --:--:-- --:--:-- --:--:--  2873
/usr/bin/zabbix_gateway.sh: 40: zabbix_sender: not found
Tak pliki przekopiowalem do /usr/bin (odpowiedni dla raspberry tez)
Tak nadałem odpowiednie uprawnienia
Tak zedytowałem plik .sh uzupelniajac dane linku bezposredniego i nazwe hosta
Więc chodź OSUPLUJE Ci dom :mrgreen:

Druk 3D - > https://klimastech.eu.org/druk-3d
djack2017
Posty: 686
Rejestracja: pn lis 27, 2017 7:36 am
Kontakt:

klimasstudio pisze: czw wrz 15, 2022 8:10 am /usr/bin/zabbix_gateway.sh: 40: zabbix_sender: not found
Czy ustawiłeś plikowi zabbix_sender flagę X (do wykonania). Najlepiej ustaw 777.
Ewentualnie skopiuj jeszcze ten plik do katalogu /bin
__________________________________________________________
Specjalizowane oprogramowanie do sterowników Sonoff, Gosund, Blitzwolf, Shelly i innych:
https://djack.com.pl/modules.php?name=Downloads&d_op=viewdownload&cid=54
Awatar użytkownika
klimasstudio
Posty: 1114
Rejestracja: śr sie 28, 2019 9:35 pm
Lokalizacja: localhost
Kontakt:

Oczywiście że tak ;)
Oto wynik z konsoli:

Kod: Zaznacz cały

pi@rpi-web:/usr/bin $ chmod +x /usr/bin/zabbix_gateway.sh
pi@rpi-web:/usr/bin $ /usr/bin/zabbix_gateway.sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    53  100    53    0     0    152      0 --:--:-- --:--:-- --:--:--   152
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   593  100   593    0     0   2745      0 --:--:-- --:--:-- --:--:--  2745
/usr/bin/zabbix_gateway.sh: 40: zabbix_sender: not found
Więc chodź OSUPLUJE Ci dom :mrgreen:

Druk 3D - > https://klimastech.eu.org/druk-3d
djack2017
Posty: 686
Rejestracja: pn lis 27, 2017 7:36 am
Kontakt:

klimasstudio pisze: czw wrz 15, 2022 11:38 am Oczywiście że tak ;)
No dobra. Poszukam dzisiaj jakiegoś raspberry i sprawdzę jak to jest.

A może spróbuj jeszcze w skrypcie wpisać pełną ścieżkę do pliku zabbix_sender:
/usr/bin/zabbix_sender
__________________________________________________________
Specjalizowane oprogramowanie do sterowników Sonoff, Gosund, Blitzwolf, Shelly i innych:
https://djack.com.pl/modules.php?name=Downloads&d_op=viewdownload&cid=54
djack2017
Posty: 686
Rejestracja: pn lis 27, 2017 7:36 am
Kontakt:

klimasstudio pisze: czw wrz 15, 2022 11:38 am

Kod: Zaznacz cały

pi@rpi-web:/usr/bin $ chmod +x /usr/bin/zabbix_gateway.sh
W powyższym nIe widzę polecenia
chmod a+rx /usr/bin/zabbix_sender
__________________________________________________________
Specjalizowane oprogramowanie do sterowników Sonoff, Gosund, Blitzwolf, Shelly i innych:
https://djack.com.pl/modules.php?name=Downloads&d_op=viewdownload&cid=54
Awatar użytkownika
klimasstudio
Posty: 1114
Rejestracja: śr sie 28, 2019 9:35 pm
Lokalizacja: localhost
Kontakt:

djack2017 pisze: czw wrz 15, 2022 11:47 am
klimasstudio pisze: czw wrz 15, 2022 11:38 am Oczywiście że tak ;)
No dobra. Poszukam dzisiaj jakiegoś raspberry i sprawdzę jak to jest.

A może spróbuj jeszcze w skrypcie wpisać pełną ścieżkę do pliku zabbix_sender:
/usr/bin/zabbix_sender
The same...

Kod: Zaznacz cały

pi@rpi-web:~/appdata/zabbix-gateway $ chmod a+rx /usr/bin/zabbix_sender
pi@rpi-web:~/appdata/zabbix-gateway $ /usr/bin/zabbix_gateway.sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    53  100    53    0     0    228      0 --:--:-- --:--:-- --:--:--   228
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   595  100   595    0     0   1643      0 --:--:-- --:--:-- --:--:--  1639
/usr/bin/zabbix_gateway.sh: 40: zabbix_sender: not found
odpalanie bezposrednio z /usr/bin:

Kod: Zaznacz cały

pi@rpi-web:/usr/bin $ ./zabbix_gateway.sh 
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    53  100    53    0     0    219      0 --:--:-- --:--:-- --:--:--   219
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   584  100   584    0     0   2393      0 --:--:-- --:--:-- --:--:--  2403
./zabbix_gateway.sh: 40: zabbix_sender: not found
Więc chodź OSUPLUJE Ci dom :mrgreen:

Druk 3D - > https://klimastech.eu.org/druk-3d
djack2017
Posty: 686
Rejestracja: pn lis 27, 2017 7:36 am
Kontakt:

Możesz załączyć co otrzymasz po poleceniu:
ls -l /usr/bin/zab*
__________________________________________________________
Specjalizowane oprogramowanie do sterowników Sonoff, Gosund, Blitzwolf, Shelly i innych:
https://djack.com.pl/modules.php?name=Downloads&d_op=viewdownload&cid=54
ODPOWIEDZ

Wróć do „Zabbix”