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.