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:
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=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:
Code: Select all
sudo apt-get update
sudo apt-get install zabbix-agent
Code: Select all
sudo chmod a+rwx /usr/bin/lew01.sh
sudo chmod a+rx /usr/bin/zabbix_sender
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)
Code: Select all
crontab –e
*/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:
.