DIY i projekty

OpenDTU na ESP32 – samodzielna budowa telemetrii dla falowników Hoymiles

👁 9 wyświetleń

Co to jest DTU i po co budować własne?

Falowniki mikroinwerterowe Hoymiles (seria HM, HMS, HMST) komunikują się z zewnętrznym światem przez urządzenie zwane DTU (Data Transfer Unit). Oryginalny DTU Hoymilesa (DTU-Pro, DTU-Wlite) kosztuje 300–600 zł i wysyła dane wyłącznie do chmury Hoymiles – bez możliwości integracji z Home Assistant, InfluxDB czy Grafaną.

OpenDTU to projekt open-source stworzony przez Thomasa B. (github.com/tbnobody/OpenDTU), który zamienia tanie ESP32 w pełnoprawne DTU z obsługą MQTT, REST API i lokalnym panelem webowym. Całkowity koszt budowy: 30–80 zł.

Kompatybilne falowniki

OpenDTU wspiera szeroką gamę mikroinwerterów Hoymiles. Pełna lista na GitHubie projektu. Aktualnie (2024) obsługiwane serie:

  • HM-300, HM-350, HM-400 – jednopanelowe, jednofazowe
  • HM-600, HM-700, HM-800 – dwupanelowe, jednofazowe
  • HM-1000, HM-1200, HM-1500 – czteropanelowe
  • HMS-350, HMS-500, HMS-800-2T, HMS-1800-4T – nowa seria z nowym protokołem
  • HMT-1800-4T, HMT-2250-6T – trójfazowe

Wymagane komponenty

  • ESP32 (WROOM-32) – np. ESP32 DevKit v1 lub kopia na AliExpress. Koszt: 15–30 zł
  • Moduł radiowy NRF24L01+ – do komunikacji z falownikami starszej serii (HM). Koszt: 5–15 zł. Uwaga: dla serii HMS wymagany jest zamiast tego moduł CMT2300A lub dedykowany shield OpenDTU-Fusion.
  • Kondensator 100 µF / 10 V – stabilizacja zasilania NRF24L01 (bardzo ważne!)
  • Przewody dupont
  • Obudowa – opcjonalnie drukowana na drukarce 3D (pliki STL dostępne na Thingiverse)

Schemat połączeń ESP32 + NRF24L01

NRF24L01ESP32 GPIO
VCC3.3V
GNDGND
CEGPIO 16
CSNGPIO 15
SCKGPIO 18
MOSIGPIO 23
MISOGPIO 19
IRQGPIO 34 (opcjonalnie)

Dodaj kondensator 100 µF między VCC a GND NRF24L01 – brak kondensatora to najczęstsza przyczyna problemów z komunikacją.

Kompilacja i wgranie firmware

Najłatwiej korzystać z PlatformIO w VS Code:

  1. Sklonuj repozytorium: git clone https://github.com/tbnobody/OpenDTU.git
  2. Otwórz katalog w VS Code z rozszerzeniem PlatformIO
  3. Edytuj platformio.ini i wybierz środowisko dla twojego ESP32
  4. Utwórz plik src/config.h z danymi Wi-Fi (lub skonfiguruj przez AP mode po pierwszym uruchomieniu)
  5. Build + Upload: pio run -e esp32dev -t upload

Alternatywnie: użyj OpenDTU Fusion Flasher (dostępny online) do wgrania gotowego binarnego firmware przez przeglądarkę Chrome (Web Serial API) – bez instalacji narzędzi.

Pierwsze uruchomienie i konfiguracja

  1. Po uruchomieniu ESP32 tworzy sieć Wi-Fi OpenDTU-XXXXXX (hasło: openDTU42)
  2. Połącz się i otwórz 192.168.4.1
  3. Skonfiguruj połączenie z domową siecią Wi-Fi
  4. Po restarcie otwórz panel na adresie IP urządzenia
  5. Przejdź do Settings → Inverter → Add i wprowadź numer seryjny falownika (z naklejki lub aplikacji Hoymiles)

Konfiguracja MQTT

W Settings → MQTT włącz broker i podaj adres swojego Mosquitto (np. Raspberry Pi). OpenDTU automatycznie publikuje dane do topiku solar/hoymiles/SERIAL/ z polami: power, yieldday, yieldtotal, temperature, voltage (per panel).

Integracja z Home Assistant

Home Assistant ma dedykowaną integrację HACS dla OpenDTU (opensolarstats/ha-opendtu). Po zainstalowaniu i skonfigurowaniu masz dostęp do wszystkich encji falownika bezpośrednio w HA. Możesz tworzyć automatyzacje: np. gdy produkcja PV przekracza 500 W – włącz ładowanie EV.

REST API OpenDTU

OpenDTU udostępnia REST API pod adresem http://opendtu-ip/api/livedata/status. Odpowiedź JSON zawiera wszystkie dane produkcyjne. Możesz łatwo odpytywać je skryptem Python lub Node-RED i kierować do dowolnej bazy danych.

Szczegółowe poradniki konfiguracji OpenDTU i integracji z Linuksem znajdziesz na iPraktyk.pl. Jeśli natomiast szukasz kursów z ESP32 i programowania mikrokontrolerów, polecam Umiej.pl – praktyczne kursy programowania (C/C++, PHP, SQL) w języku polskim.

Problemy i rozwiązania

  • Brak komunikacji z falownikiem: Sprawdź anteny, odległość (max 10 m bez przeszkód), kondensator na NRF24L01, numer seryjny
  • Restart ESP32 co kilka minut: Zbyt mały zasilacz (min. 500 mA na 3.3 V), problem z pamięcią – sprawdź wersję firmware
  • Dane niedostępne w nocy: Normalne – mikroinwertery wyłączają się gdy brak produkcji, OpenDTU pokazuje ostatnie dane lub brak danych
  • MQTT nie łączy się: Sprawdź adres brokera, autoryzację, firewall na Raspberry Pi

Podsumowanie

OpenDTU na ESP32 to jeden z najlepszych projektów DIY w świecie fotowoltaiki – daje pełną kontrolę nad danymi falowników Hoymiles, eliminuje zależność od chmury i otwiera drogę do głębokiej integracji z systemami smart home. Koszt poniżej 80 zł, a satysfakcja bezcenna. Projekt aktywnie rozwijany – społeczność na GitHubie liczy setki kontrybutorów i tysiące użytkowników na całym świecie.

Powiązane artykuły