Anleitung: OpenDTU als ESP32-Fernbedienung für Hoymiles-Wechselrichter
20250321 DerSchneider
Einleitung
Diese Anleitung beschreibt, wie du mit einem ESP32 und einem Funkmodul deine eigene OpenDTU (Data Transfer Unit) aufbaust. Damit kannst du deinen Hoymiles-Wechselrichter (z. B. HM-800, HMS-800) direkt auslesen und steuern – ohne Internet, ohne originale DTU und mit voller Kontrolle über deine Daten.
Teil 1: Was ist OpenDTU und wozu brauche ich es?
OpenDTU ersetzt die originale Hoymiles-DTU und bietet folgende Vorteile:
- Direkte Auslesung aller Leistungsdaten (auch ohne Internet)
- Steuerung des Wechselrichters (Ein/Aus, Leistungsbegrenzung)
- Integration in Smart Home Systeme wie Home Assistant
- Datenhoheit – alles bleibt in deinem eigenen Netzwerk
- Kosten ca. 20–40 € für die Hardware (je nach Ausführung)
Teil 2: Hardware-Beschaffung – Welche Teile brauche ich?
2.1 Den richtigen Funkchip bestimmen
Die Wahl des Funkchips hängt von deinem Wechselrichter-Modell ab (siehe Aufkleber am Gerät):
| Wechselrichter-Serie | Benötigter Funkchip | Typische Modelle |
|---|---|---|
| HM-Serie | NRF24L01+ (mit externer Antenne) | HM-300, HM-400, HM-600, HM-800 |
| HMS / HMT-Serie | CMT2300A | HMS-800-2T, HMS-1000-2T, HMT-1800-6T |
| Modelle mit „W“ | ❌ nicht unterstützt | HMS-800W-2T (diese haben WLAN integriert) |
2.2 Einkaufsliste
Option A: Selbstbau (löten erforderlich)
| Komponente | Empfehlung | Preis ca. |
|---|---|---|
| ESP32-Entwicklungsboard | Wemos D1 mini ESP32, ESP32-C3, AZ-Delivery DevKit | 8–12 € |
| Funkmodul | NRF24L01+ mit externer Antenne (PA+LNA) oder CMT2300A-Modul | 3–8 € |
| Display (optional) | SSD1306 oder SH1106 (128×64, I2C) | 3–5 € |
| Gehäuse | 3D-Druck oder Universal-Gehäuse | 2–10 € |
| Kabel / Buchsenleisten | Jumper-Kabel, Stiftleisten | 2–5 € |
Option B: Fertigplatine (lötfrei)
| Produkt | Bezug | Preis ca. |
|---|---|---|
| OpenDTU Fusion Board | Spezialisierte Shops (z. B. awesome-opendtu.de) | 35–50 € |
| Fertig aufgebaute OpenDTU | eBay / Kleinanzeigen | 40–70 € |
Teil 3: Verkabelung – Schritt für Schritt
3.1 Vorbereitung
- Arbeitsplatz: gut beleuchtet, sauber, frei von statischer Aufladung
- Werkzeuge: Feinlötkolben (max. 350 °C), Seitenschneider, Pinzette, „Dritte Hand“
- Vor dem Löten alle Komponenten auf Beschädigungen prüfen.
3.2 Pin-Belegung für NRF24L01+ (für HM-Wechselrichter)
| NRF24L01+ Pin | ESP32 GPIO | Hinweis |
|---|---|---|
| VCC (3,3V) | 3.3V | Nur 3,3V! |
| GND | GND | |
| CE | GPIO 4 | |
| CSN | GPIO 5 | |
| SCK | GPIO 18 | |
| MOSI | GPIO 23 | |
| MISO | GPIO 19 | |
| IRQ | GPIO 16 | (optional für verbesserte Kommunikation) |
⚠️ Wichtig: Das NRF24L01+ wird nur mit 3,3 V betrieben. Nicht an 5 V anschließen – das zerstört das Modul.
3.3 Pin-Belegung für CMT2300A (für HMS/HMT-Wechselrichter)
| CMT2300A Pin | ESP32 GPIO |
|---|---|
| VCC (3,3V) | 3.3V |
| GND | GND |
| SDIO | GPIO 14 |
| SCLK | GPIO 12 |
| CS (Register) | GPIO 27 |
| FCS (FIFO) | GPIO 26 |
3.4 Optional: Display anschließen (I2C)
| Display Pin | ESP32 GPIO |
|---|---|
| VCC | 3,3V oder 5V (je nach Display) |
| GND | GND |
| SCL | GPIO 22 |
| SDA | GPIO 21 |
3.5 Verdrahtung prüfen
Vor dem ersten Einschalten unbedingt prüfen:
- Liegt VCC am NRF24L01+ wirklich an 3,3V?
- Alle GND-Verbindungen vorhanden?
- Keine Kurzschlüsse zwischen benachbarten Pins?
- Bei CMT2300A: Sind CS und FCS nicht vertauscht? (häufiger Fehler)
Teil 4: Software-Installation (Firmware flashen)
4.1 Methode A: Web Flasher (einfachste Methode)
- ESP32 mit Computer verbinden (USB-Datenkabel, kein reines Ladekabel).
- Browser öffnen: https://www.opendtu.solar/firmware/webinstall/
- ESP32 ggf. in Boot-Modus versetzen:
- BOOT-Taste gedrückt halten
- kurz EN-Taste (Reset) drücken
- BOOT-Taste loslassen
- Auf „Install“ klicken, COM-Port auswählen und bestätigen.
- Warten bis „Done!“ erscheint (ca. 1–2 Minuten).
4.2 Methode B: Manuelles Flashen
- Firmware von GitHub Releases herunterladen (
opendtu-*.bin). - Mit ESPHome-Flasher oder esptool flashen:bashesptool.py –chip esp32 –port COM3 write_flash 0x0 opendtu.bin
Teil 5: Ersteinrichtung im Browser
5.1 WLAN konfigurieren
- Nach dem Flashen startet der ESP32 als Access Point.
- Mit dem WLAN
OpenDTU-xxxxxxverbinden, PasswortopenDTU42. - Browser öffnen:
192.168.4.1 - Anmelden: Benutzername:
admin, Passwort:openDTU42 - Unter Einstellungen → Netzwerk → WiFi dein heimisches WLAN auswählen und Passwort eingeben.
- Speichern – der ESP32 startet neu und verbindet sich mit deinem WLAN.
5.2 IP-Adresse herausfinden
- Router-Oberfläche: In der Liste der verbundenen Geräte nach „OpenDTU“ oder „ESP32“ suchen.
- Display: Falls angeschlossen, wird die IP angezeigt.
- mDNS:
http://opendtu.local(nicht mit allen Betriebssystemen kompatibel).
5.3 Passwort ändern
- Mit der IP-Adresse einloggen.
- Einstellungen → Sicherheit → neues Passwort vergeben und speichern.
Teil 6: Hardware konfigurieren (Pin Mapping)
Unter Einstellungen → Hardware → Pin Mapping die Pins entsprechend deiner Verkabelung einstellen.
Für NRF24L01+:
| Parameter | Wert |
|---|---|
| Modul aktivieren | ☑ |
| CE-Pin | 4 |
| CSN-Pin | 5 |
| IRQ-Pin | 16 |
| Modul-Typ | NRF24L01 |
Für CMT2300A:
| Parameter | Wert |
|---|---|
| Modul aktivieren | ☑ |
| SDIO-Pin | 14 |
| SCLK-Pin | 12 |
| CS-Pin | 27 |
| FCS-Pin | 26 |
Für Display (optional):
| Parameter | Wert |
|---|---|
| Display aktivieren | ☑ |
| Typ | SSD1306 oder SH1106 |
| SDA | 21 |
| SCL | 22 |
Speichern nicht vergessen.
Teil 7: Wechselrichter anlernen und verbinden
7.1 Wechselrichter-Seriennummer finden
- Auf dem Aufkleber am Wechselrichter (beginnt mit „10“ oder „11“)
- In der originalen Hoymiles-App (falls genutzt)
7.2 Original-DTU außer Betrieb nehmen
- Originale Hoymiles-DTU vom Strom trennen.
- Wechselrichter zurücksetzen:
- AC-Seite (Netzstecker) ziehen
- DC-Seite (Solarmodule) abklemmen oder abdecken
- 5 Minuten warten
- Alles wieder anschließen
7.3 Wechselrichter in OpenDTU hinzufügen
- In OpenDTU: Einstellungen → Wechselrichter → Hinzufügen
- Seriennummer eingeben, optional Namen vergeben.
- Speichern.
- Nach ca. 30–60 Sekunden sollten auf der Startseite die ersten Werte erscheinen.
Teil 8: Leistungsbegrenzung (Drosselung auf 600 W)
- Auf der Startseite den gewünschten Wechselrichter auswählen.
- Unter „Limit“ den gewünschten Wert eingeben (z. B. 600 für 600 Watt).
- „Set Limit“ klicken.
- Die Begrenzung wirkt sofort. Die aktuelle Leistung wird alle 15 Minuten aktualisiert.
Teil 9: MQTT und Home Assistant einrichten
9.1 MQTT aktivieren
- Einstellungen → MQTT
- MQTT aktivieren ☑
- Broker-Adresse, Port, ggf. Benutzername/Passwort eintragen.
- Home Assistant Auto Discovery aktivieren ☑
- Speichern.
9.2 In Home Assistant integrieren
Bei aktiviertem Auto Discovery wird OpenDTU automatisch unter Einstellungen → Geräte & Dienste erkannt. Alle Wechselrichter erscheinen als eigene Geräte.
Teil 10: Häufige Probleme und Lösungen
| Problem | Lösung |
|---|---|
| ESP32 wird nicht erkannt | Anderes USB-Kabel, anderen Port testen, Boot-Modus manuell aktivieren |
| Keine Verbindung zum Wechselrichter | Pin-Belegung prüfen; Original-DTU entfernt? Wechselrichter zurückgesetzt? |
| Funkverbindung reißt ab | Antenne ausrichten; Sendeleistung erhöhen; CMT2300A: Frequenz leicht anpassen |
| Display bleibt dunkel | I2C-Adresse prüfen (0x3C / 0x3D); Spannungsversorgung prüfen; SDA/SCL richtig? |
| Seriennummer wird nicht akzeptiert | Wechselrichter muss Strom haben (tagsüber); 30–60 Minuten warten |
Teil 11: Backup und Wiederherstellung
- Einstellungen → Konfigurationsverwaltung → Exportieren – speichert
opendtu_config.json - Bei Bedarf: Datei auswählen und Importieren – nach Neustart ist alles wiederhergestellt.
Checkliste für den erfolgreichen Aufbau
- Funkchip-Typ anhand Wechselrichter-Modell bestimmt
- Alle Hardware-Komponenten beschafft
- ESP32 mit Funkmodul verdrahtet (3,3V beachtet!)
- Verkabelung auf Kurzschlüsse geprüft
- Firmware über Web Flasher installiert
- WLAN-Konfiguration durchgeführt
- IP-Adresse notiert
- Pin Mapping in der Oberfläche konfiguriert
- Wechselrichter-Seriennummer eingetragen
- Original-DTU entfernt, Wechselrichter zurückgesetzt
- Daten auf der Startseite sichtbar
- (Optional) MQTT eingerichtet
Weiterführende Ressourcen
- Offizielle Dokumentation: opendtu.solar
- GitHub: github.com/tbnobody/OpenDTU
- Deutsche Community: mikrocontroller.net – Hoymiles DTU alternative
Kommentar abschicken