Uwaga! Poniższe instrukcja została przygotowana w oparciu o instrukcję integracji z inwerterem Fronius, która dostępna jest pod poniższym adresem: https://support.grenton.pl/pl/support/solutions/articles/35000182222-integracja-z-inwerterem-fronius
Dzięki integracji z inwerterem mamy możliwość m. in.:
* maksymalizowania wykorzystania energii w momencie jej nadprodukcji, w celu zmniejszenia ilości energii oddawanej do sieci przez uruchamianie dodatkowych urządzeń (ładowarek, hydroforów, itd).
Jak w poprzednim przykładzie - do zrealizowania poniższego przykładu potrzebujemy:
- CLU Z-Wave (o nazwie CLU)
- Gate Modbus (o nazwie Gate_Modbus)
- Inverter Fronius
W CLU tworzymy cechy użytkownika:
* current_energy_modbus - zwraca wartość energii chwilowej;
* avarage_energy_modbus - zwraca sumaryczną wartość energii z pomiarów oraz średnią po ostatnim pomiarze;
* counter - zwraca informację na temat liczby wykonanych pomiarów.
Do zdarzenia OnChange w obiekcie wirtualnym, zwracającym wartość chwilowej energii (obiekt o nazwie x500_ac_power_current) przypisujemy przekazanie wartości cechy Value do zmiennej current_energy_modbus:
W CLU tworzymy skrypt (o nazwie average_energy):
if(CLU->counter<15) then CLU->average_energy_modbus=CLU->average_energy_modbus+CLU->current_energy_modbus CLU->counter=CLU->counter+1 end if(CLU->counter==15) then CLU->average_energy_modbus=math.floor(CLU->average_energy_modbus/15) CLU->counter=0 CLU->actions() SYSTEM.Wait(5000) CLU->average_energy_modbus=0 end
gdzie skrypt actions to skrypt odpowiedzialny za sprawdzenie średniej wartości energii oraz podjęcie odpowiednich działań, np:
if(CLU->average_energy_modbus>8000) then CLU->CHARGER_DOUT1->SwitchOn(900000) end if(CLU->average_energy_modbus>6000) then CLU->CHARGER_DOUT2->SwitchOn(900000) end if(CLU->average_energy_modbus>5000) then CLU->WATER_HEATER_DOUT3->SwitchOn(900000) end if(CLU->average_energy_modbus>4000) then CLU->WATER_HEATER_DOUT4->SwitchOn(900000) end
Uwaga! Wartość 900000ms to czas całego cyklu - wykonywanych jest 15 pomiarów w odstępach 1 minuty.
Następnie tworzymy obiekt wirtualny Calendar:
Jego regułę ustawiamy w wybrany sposób - w przykładzie kalendarz będzie uruchamiany co minutę:
Do zdarzenia OnCalendar przypisujemy wcześniej utworzony skrypt:
Następnie tworzymy obiekt wirtualny Timer:
Jego cechy wbudowane konfigurujemy w następujący sposób:
Do zdarzenia OnStart przypisujemy metodę Stop() kalendarza, a do OnTimer uruchomienie kalendarza metodą Start():
Uruchomienie Timer'a przypisujemy do zdarzenia OnInit w CLU:
Tak utworzoną konfigurację przesyłamy do modułu CLU oraz Gate Modbus.