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.