Home Assistant oraz współpraca z inwerterem solarnym Solis i pvoutput.org

Zanabyliśmy panele fotowoltaiczne. Lubię podejście do korzystania ze źródeł energii, która i tak jest nam dana przez naturę.
A skoro je mam w domu, za punkt honoru obrałem sobie integrację z Home Assistant. Paradoksalnie – łatwiej byłoby to zrobić w Domoticz, ale skoro już wszystko przestawiłem na HA – trzeba było się napracować.
Ogólnie powinno być prosto – inwerter (w moim przypadku Solis) podaje dane przez WiFi (do systemu firmy Ginlong), odbieramy je wcześniej w Home Assistant. Ale tak dobrze to jest rzadko…
Musiałem zrobić to przez serwis zewnętrzny – https://pvoutput.org/. To taki agregat zbierający dane – można tam wysłać zarówno zużycie jak i pozyskaną energię solarną. Owszem, niestety, z kolejnym 'tworem’ podzieliłem się nimi :/ Jeżeli znajdę prostszy sposób, postaram się pozyskiwać dane bezpośrednio z inwertera.
Przy okazji – przestał mi pokazywać poprawne wartości mój Owl Micro+. Niestety, nie jest 'kierunkowy’, czyli pokazuje mi teraz jednocześnie i zużycie i dostarczanie energii przez baterie solarne. Ale to temat na inny artykuł.
Zacząłem od utworzenia konta i stworzenia klucza API.
W zależności od inwertera na pewno trzeba skorzystać z innych integracji, ja znalazłem GinMon – https://github.com/wessel145/GinMon
Zgodnie z instrukcją najpierw wyszukałem: plantId a później deviceId.
"plantId":
https://m.ginlong.com/cpro/epc/plantDevice/inverterListAjax.json?plantId=
"deviceId":
Do pliku konfiguracyjnego /GinMon/config.ini wpisałem:
– username – do serwisu Ginlong
– password
– inverterID – to można znaleźć na wewnętrznej stronie www inwertera
– API key
– i znalezione deviceId w systemID
W sumie dopiero pisząc ten tekst przypomniałem sobie, że można dane eksportować również do własnej bazy MariaDB – muszę to zrobić w kolejnym kroku i uniezależnić się od pvoutput.org.
Po konfiguracji sprawdzamy czy wszystko działa poprawnie:
python3 GinMon.py
Skoro wszystko jest w porządku, wrzucamy skrypt to crontab (przez crontab -e) i ustawiamy uruchamianie jak nam wygodnie, na przykład co 15 minut.
Później pozostaje dodanie integracji w Home Assistant: https://www.home-assistant.io/integrations/pvoutput oraz sensora w configuration.yaml
Do formatowania wartości użyjemy jak w dokumentacji (świetnej jak zwykle) template sensor.
  – platform: template
    sensors:
      power_generation:
        value_template: '{% if is_state_attr(„sensor.pvoutput”, „power_generation”, „NaN”) %}0{% else %}{{ state_attr(„sensor.pvoutput”, „power_generation”) }}{% endif %}’
        friendly_name: 'Generating’
        unit_of_measurement: 'Watt’
      energy_generation:
        value_template: '{% if is_state_attr(„sensor.pvoutput”, „energy_generation”, „NaN”) %}0{% else %}{{ „%0.2f”|format(state_attr(„sensor.pvoutput”, „energy_generation”)|float/1000) }}{% endif %}’
        friendly_name: 'Generated’
        unit_of_measurement: 'kWh’
I jesteśmy gotowi!
Próbowałem zrobić Utility meter aby mieć podany pobór godzinowy, dzienny i miesięczny, ale jakoś nie potrafię tego poprawnie skonfigurować :/