Wykorzystanie informacji uzyskanych z inwertera w celu optymalnego wykorzystania energii

Uwaga! Poniższe instrukcja została przygotowana w oparciu o instrukcję integracji z inwerterem Fronius, która dostępna jest pod adresem.

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.