Hej!
Nie pisałem wiele lat, ale zauważyłem bardzo duże zainteresowanie tematem inteligentnego domu opartego o Home Assistant.
Jako że jestem posiadaczem fotowoltaiki i Home Assistant, postanowiłem udostępnić kompletny konfig do ESPHome w celu czytania z Invertera SofarSolar KTL-X przy pomocy Modbus/RS485.
Jakie korzyści?
- Inwerter nie musi być podłączony do Internetu i do sieci domowej.
- Możliwość odczytu offline
- Interwał odczytu może być 5 sekundowy a nie 5 minutowy, dzięki czemu pomiary są precyzyjniejsze
- Integracja z Home Assistant z zakładką Energia
- Zrobisz coś samemu
- i pewnie inne 😉
Potrzebne elementy:
- “ESP-07 WiFi” – płytka z układem ESP8266 (może być ESP32*patrz niżej w aktualizacji*, NodeMCU)
- Konwerter RS485 do TTL pracujący na napięciu 3.3V (ważne ponieważ płytki ESP właśnie wymagają pracy w tam zakresie napięć)
- (opcjonalna) antena WiFi do modułu ESP o ile masz moduł z złączem uFL
- kabel RJ45 w celu połączenia konwertera ze złączem w inwerterze (dwie żyły tj. 4 i 5)
Koszt elementów zamówionych z Aliexpress nie powinien przekroczyć 30zł.
Montaż elementów:
Zasilanie +5V podłączamy do zacisków w Sofarze (szyna połączeniowa po zdjęciu zaślepki).
Oprogramowanie:
- Home Assistant – z takiej opcji korzystam, możliwe jest również zastosowanie Tasmoty lub autorskiego softu w C++
- ESPHome – obsługa ESP8266 w Home Assistant
Konfiguracja ESPHome i budowa obrazu dla ESP:
W powyższej konfiguracji podmień dane do WiFi na swoje i jeśli korzystasz włącz mdns wówczas krok poniżej możesz pominąć.
Po prawidłowym programowaniu i podłączeniu zestawu do inwertera, w Home Assistant dodajemy urządzenie Ustawienia -> Urządzenia -> ESPHome z użyciem hasła z konfiguracji.
Prawidłowo dodany logger eksponuje 37 encji.
Osobiście generuje z nich taki widok:
*Yaml do HomeAssistanta dostęþy tutaj:*
Oraz dodatkowo dane są gromadzone w bazie InfluxDB dzięki czemu będę posiadać długoterminową historię z produkcji mojej instalacji fotowoltaicznej.
Dodatkowo gromadzone dane można dodać do sekcji Energia w Home Assistant. Wystarczy dodać encję “SofarSolar Energy total” w ustawieniach dashboardu Energia.
Encja jest przygotowana do prawidłowej pracy. Poniżej prezentuje jak to wygląda w połączeniu z Zamel MEW-01
Dzięki połączeniu z Zamel MEW-01 można generować sobie dodatkowe encji takie jak autokonsumpcja czy suma mocy chwilowej na fazach, jak poniżej:
Mój logger po złożeniu wygląda tak: (polecam wersje z ESP32-U patrz poniższa aktualizacja)
Schowałem go w zaślepce złącz inwertera:
AKTUALIZACJA! 31.12.2022
Jak wspomniałem wcześniej – może być ESP32, zalecam wersje ESP32-U z złączem uFL do antenki zewnętrznej.
! (Pamiętać należy o odpowiedniej edycji kodu w ESPHome aby kompatybilny był z ESP32) !
ESP32-U mieści się w zaślepce falownika podobnie jak ESP8266, po wcześniejszym wyciągnięciu jednego dławika. (także nie polecam jeśli falownik jest narażony na wilgoć)
Wygląda to tak: (konwerter ma dolutowane złącza goldpin i łączówka zaciskowa/skręcana na złączu komunikacyjnym)
Schemat połączeń:
YAML do ESPHome:
UWAGA! Skonfiguruj w kodzie parametry:
W wifi: # https://esphome.io/components/wifi.html
ssid -> Twoja nazwa WiFi password: Twoje Hasło do WiFi
api:
key: Twój klucz do API # https://esphome.io/components/api.html
ota:
password: Hasło OTA # https://esphome.io/components/ota.html
Źródło/inspiracja i baza do tego wpisu:
https://github.com/pawelka/sofarsolar_esp_rs485_logger
Dużych produkcji i miłej zabawy! 😉