Integracja SmartESS z Home Assistant: Modbus, API, MQTT

Pytanie

jak zintegrować aplikację smartess z home assistant

Odpowiedź Sztucznej Inteligencji


Bezpośrednia odpowiedź na pytanie

  • Najpewniejszą i rekomendowaną metodą jest lokalne połączenie Modbus TCP pomiędzy falownikiem używającym aplikacji SmartESS (Deye/Sunsynk/OEM) a Home Assistantem.
  • W praktyce sprowadza się to do zainstalowania (przez HACS) integracji „Sunsynk (multi-inverter) with advanced controls” i wskazania IP falownika, portu 502 oraz numeru seryjnego.
  • Alternatywy: własnoręczna konfiguracja wbudowanej integracji Modbus, odpytywanie chmurowego API SolarMAN/SmartESS przez REST, bądź mostek MQTT/Node-RED.

Szczegółowa analiza problemu

1. Topologia i protokoły

  1. Falowniki obsługiwane przez SmartESS korzystają z loggera Wi-Fi Pro (lub LAN) łączącego się równolegle:
    • lokalnie po Modbus TCP (port 502)
    • z chmurą SolarMAN (HTTPS).
  2. Logger akceptuje zazwyczaj tylko jedno równoczesne połączenie Modbus – HA musi „zabrać” je chmurze lub pracować na osobnym RS-485.

2. Integracja przez HACS (zalecana)

  1. W HACS → Integrations wyszukaj „Sunsynk (multi-inverter) with advanced controls” (autor kellerza).
  2. Zainstaluj, zrestartuj HA.
  3. Ustawienia → Urządzenia i usługi → Dodaj integrację → Sunsynk:
    • Inverter Host: 192.168.x.x
    • Port: 502
    • Serial No.: z tabliczki / aplikacji
    • Slave ID: 1 (czasem 0)
    • Scan interval: 10-30 s
  4. Połączenie udane → powstaje urządzenie + ~150 encji (PV, bateria, sieć, temperatury, tryby pracy, komendy).

3. Ręczna konfiguracja Modbus w configuration.yaml

Przykład minimalny:

modbus:
  - name: smartess
    type: tcp
    host: 192.168.1.123
    port: 502
    sensors:
      - name: "Battery SOC"
        slave: 1
        address: 30003
        input_type: input
        unit_of_measurement: "%"
      - name: "Inverter Power"
        slave: 1
        address: 30004
        input_type: input
        unit_of_measurement: "W"

Adresy rejestrów zależą od modelu – pełną mapę znajdziesz w dokumentacji Deye/Sunsynk lub w repozytorium integracji.

4. Integracja chmurowa (REST)

  1. Zaloguj się na dessmonitor.com, przechwyć zapytanie querySPDeviceLastData.
  2. W secrets.yaml wstaw pełny URL.
  3. Dodaj sensor REST z json_attributes_path: $.dat.pars.
    Wady: opóźnienia 5-15 min, zależność od serwerów i Polityki RODO.

5. Bridge MQTT / Node-RED

Gdy logger nie obsługuje lokalnego Modbus (starsze firmware) lub chcemy hurtowo przerobić dane:

  • Node-RED → node modbus → publikuj na smartess/#,
  • Home Assistant → sensory MQTT.
    Pozwala na dodatkowe przetwarzanie, ale zwiększa złożoność.

6. Sprzętowy RS-485→ETH/Wi-Fi

Stabilniejsze niż fabryczny logger: Waveshare RS485-ETH, ESP32+MAX485 (ESPHome). Pozwala na >1 połączenie równolegle.

Aktualne informacje i trendy

  • 2023/24: Społeczność HA koncentruje się na pełnym lokalnym HEMS; integracja „Sunsynk multi-inverter” dostała wsparcie dla wielu falowników równocześnie i zapisu parametrów pracy.
  • Firmware loggera Wi-Fi Pro ≥v3.1.14 umożliwia jednoczesne Modbus TCP+chmura, co redukuje konflikt połączeń.
  • Pojawiają się open-source firmware (ESP-Logger) eliminujące chmurę.

Wspierające wyjaśnienia i detale

  • Modbus TCP = warstwa Ethernet protokołu Modbus, 16-bitowe rejestry (Holding/Input).
  • Serial No. wymagany przez integrację HACS służy do dekodowania ramek i kontroli komand.
  • Przy częstym skanowaniu (<5 s) logger potrafi zerwać Wi-Fi – zalecane 10-15 s.

Aspekty etyczne i prawne

  • Integracja lokalna minimalizuje transfer danych osobowych do Chin (SolarMAN), wspiera zgodność z RODO.
  • Zmiana firmware lub ingerencja w RS-485 może naruszyć gwarancję – sprawdź warunki producenta.
  • Przy wysyłaniu komend (np. ustawianie limitu eksportu) zachować ostrożność – błędne parametry mogą zagrozić instalacji elektrycznej.

Praktyczne wskazówki

  • Ustaw statyczny IP loggera (rezerwacja DHCP).
  • Jeśli encje przechodzą w „unavailable”, wydłuż scan_interval lub odłącz logger od chmury na czas testów.
  • Użyj persistent_notification.create w HA, aby alarmować o braku łączności.
  • Backup configuration.yaml i bazy danych energii (SQLite) przed większymi zmianami.

Ewentualne zastrzeżenia lub uwagi dodatkowe

  • Logger czasem restartuje się przy długich ramek Modbus (>60 rejestrów).
  • Mapy rejestrów różnią się między wersjami oprogramowania – zawsze weryfikuj offsety.
  • Cloud API ma limit 1000 zapyt./dobę; przekroczenie blokuje konto na 24 h.

Sugestie dalszych badań

  • Testy nowego „Solarman SmartLogger Pro” z otwartym API.
  • Analiza możliwości sterowania trybem pracy baterii (charge/discharge windows) przez HA automatycznie pod cenę dynamiczną (np. spot NordPool).
  • Śledzenie projektu open-source “inverter-control” (Python) pozwalającego na zaawansowane profile mocy.

Krótkie podsumowanie

Integracja SmartESS z Home Assistant jest obecnie najlepiej realizowana lokalnie przez Modbus TCP z użyciem społecznościowej integracji „Sunsynk multi-inverter”. Zapewnia ona szybkie, prywatne i bogate w dane połączenie z falownikiem, umożliwia zarówno monitoring, jak i sterowanie. Rozwiązania oparte o chmurę lub MQTT sprawdzają się jako alternatywa, jednak wiążą się z większymi opóźnieniami lub złożonością. Przed wdrożeniem zadbaj o statyczny IP, właściwe rejestry i świadomość ograniczeń loggera, a w przyszłości rozważ przejście na całkowicie otwarte oprogramowanie dataloggera dla pełnej niezależności.

Oceń odpowiedź:
Zastrzeżenie: Odpowiedzi udzielone przez sztuczną inteligencję (model językowy) mogą być niedokładne i wprowadzające w błąd. Elektroda nie ponosi odpowiedzialności za dokładność, rzetelność ani kompletność prezentowanych informacji. Wszystkie odpowiedzi powinny być zweryfikowane przez użytkownika.