GATEWAY DO SERWERA ZABBIX DLA MIERNIKA ZAMEL LEW-01 (TARYFY G11 i G12w)

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

GATEWAY DO SERWERA ZABBIX DLA MIERNIKA ZAMEL LEW-01

GATEWAY LEW-01 do SERWERA ZABBIX
Gateway ma za zadanie przekazywać dane z serwera SUPLA do systemu ZABBIX poprzez odpytywanie serwera SUPLA co jedną minutę i zapisywanie tych danych na serwerze ZABBIX. Dodatkowo rejestrowane jest zużycie energii w cyklu dziennym oraz miesięcznym (28 każdego miesiąca). Definiując współczynnik kompensacyjny otrzymujemy też rejestrację energii zgodą z fizycznym licznikiem operatora. Możliwe jest też długofalowe, praktyczne porównanie kosztów taryf G11 i G12w.

Gateway obsługuje taryfy:
G11 - koszt 1kWh energii jest stały przez całą dobę
G12w - koszt 1kWh energii jest tańszy w okresach:
  • codziennie w godzinach 13.00 – 15.00 oraz 22.00 – 06.00
  • w weekendy
  • w dni świąteczne

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 lew01gateway.zip z adresu:
https://djack.com.pl/modules.php?name=D ... it&lid=355

3. Po rozpakowaniu kopiujemy pliki lew01.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/lew01.sh
sudo  chmod  a+rx   /usr/bin/zabbix_sender
KONFIGURACJA GATEWAY’A:
1. Na serwerze SUPLA, dla sterownka LEW-01, należy utworzyć linki bezpośrednie („do odczytu”). Link ten należy wpisać w skrypcie lew01.sh, jak opisano w pkt.2

2. Otwieramy skrypt lew01.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="lew01"
# == Link bezposredni z serwera SUPLA (json) =====
SUPLA_LINK="https://................/read?format=json"
#== Rodzaj taryfy: G11 wpisz 11, G12w wpisz 12 ==
TARIFF=11
#== Koszt 1kWh dla strefy 1 i 2, taryfa G12w ====
#== Strefa 1: 1.8.1 , strefa 2: 1.8.2 ===========
COST1=0.6
COST2=0.3
#== Święta ruchome (dla taryfy G12w) ============
BOZECIALO=0806
PONWIELKANOC=0904
#================================================
#== Porównanie opłacalności taryf G11 i G12w =========
#== 0-symulacja wyłączona , 1-symulacja włączona
COMPARE=0
#================================================

  • Nazwa hosta może być dowolna (zgodna z nazwą określoną na serwerze Zabbix). W powyższym przykładzie jest „lew01”.
  • TARIFF oznacza rodzaj taryfy, z której korzystamy u naszego operatora energii.
    Dla taryfy G11 należy wpisać wartość 11, dla G12w wartość 12.
  • COST1 oznacza koszt 1kWh dla strefy droższej (1.8.1), a COST2 koszt 1kWh dla strefy tańszej (1.8.2). Parametry te odnoszą się do taryfy G12w.
    Całkowite koszty energii obliczane są dla taryfy G12w według stawek określonych w skrypcie (COST1 i COST2), a dla taryfy G11 według stawki zadeklarowanej w konfiguracji LEW01 na serwerze SUPLA
  • Pola świąt ruchomych należy modyfikować raz do roku w formacie dzien+miesiąc
    W podanym wyżej przykładzie są to 8 czerwca (Boże Ciało w 2023 roku) oraz 9 kwietnia (Poniedziałek Wielkanocny w 2023 roku).
  • COMPARE umożliwia porównanie opłacalności taryf G11 i G12w dla osób z taryfą G11. Obliczny jest wtedy (COMPARE=1) dodatkowo koszt zużytej energii w przypadku gdyby była taryfa G12w (w wersji gateway'a z datą co najmniej 02.01.2023)
3. Wykonujemy polecenie:

Kod: Zaznacz cały

crontab  –e
i wpisujemy linię:

*/1 * * * * lew01.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 * * * * lew01.sh > /dev/null 2>&1
*/1 * * * * (sleep 10; lew01.sh > /dev/null 2>&1)
*/1 * * * * (sleep 20; lew01.sh > /dev/null 2>&1)
*/1 * * * * (sleep 30; lew01.sh > /dev/null 2>&1)
*/1 * * * * (sleep 40; lew01.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 * * * * lew01.sh > /dev/null 2>&1
*/1 * * * * (sleep 10; lew01.sh > /dev/null 2>&1)
*/1 * * * * (sleep 20; lew01.sh > /dev/null 2>&1)
*/1 * * * * (sleep 30; lew01.sh > /dev/null 2>&1)
*/1 * * * * (sleep 40; lew01.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.

Przykładowy ekran w systemie Zabbix:
.
lew01_pulpit.png
lew01_pulpit.png (67.11 KiB) Przejrzano 295 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
Awatar użytkownika
klimasstudio
Posty: 1114
Rejestracja: śr sie 28, 2019 9:35 pm
Lokalizacja: localhost
Kontakt:

Po pierwszych testach wygląda że dane zbiera.

Jedyne co zmieniłem w pliku .sh to ścieżke do zapisu danych na: "/home/pi/appdata/zabbix-gateway/tmp/"
Ze względu na błędy zapisu:

Kod: Zaznacz cały

./pwr-unraid.sh: 70: cannot create /var/local/pwr-unraid_fullenergy.txt: Permission denied
./pwr-unraid.sh: 73: cannot create /var/local/pwr-unraid_fullenergy.txt: Permission denied
./pwr-unraid.sh: 80: cannot create /var/local/pwr-unraid_fullrenergy.txt: Permission denied
./pwr-unraid.sh: 83: cannot create /var/local/pwr-unraid_fullrenergy.txt: Permission denied
./pwr-unraid.sh: 90: cannot create /var/local/pwr-unraid_compensation.txt: Permission denied
./pwr-unraid.sh: 99: cannot create /var/local/pwr-unraid_rcompensation.txt: Permission denied
Załączniki
lew-01.png
lew-01.png (32.88 KiB) Przejrzano 439 razy
Więc chodź OSUPLUJE Ci dom :mrgreen:

Druk 3D - > https://klimastech.eu.org/druk-3d
ODPOWIEDZ

Wróć do „Zabbix”