OpenDTU und AhoyDTU: Open-Source Monitoring für Hoymiles & Co.
Die Hersteller-Apps für Mikrowechselrichter funktionieren, aber sie haben einen fundamentalen Nachteil: Deine Daten landen in einer Cloud in China, und du hast keine Kontrolle darüber. Wer die Vor- und Nachteile besser verstehen will, liest den Vergleich Cloud vs. lokales Monitoring. OpenDTU und AhoyDTU sind Open-Source-Projekte, die genau dieses Problem lösen. Mit einem ESP32-Mikrocontroller für unter 15 Euro baust du dir ein lokales Monitoring, das deinen Wechselrichter direkt ausliest und die Daten bei dir zuhause behält.
TL;DR
- OpenDTU und AhoyDTU lesen Hoymiles-Wechselrichter (HM-, HMS-, HMT-Serie) direkt per Funk aus, ohne Cloud-Zwang
- Hardware-Kosten: 10-25 Euro (ESP32-Board + Funkmodul NRF24L01+ oder CMT2300A)
- Für die HM-Serie brauchst du ein NRF24L01+ Modul (2,4 GHz), für HMS/HMT ein CMT2300A Modul (868 MHz)
- Die Firmware wird über USB geflasht, die Konfiguration läuft komplett über ein Webinterface im Browser
- Daten können per MQTT an Home Assistant, InfluxDB oder andere Systeme weitergeleitet werden
Warum Open-Source-Monitoring?
Bevor wir in die technischen Details einsteigen: Warum solltest du dir den Aufwand machen, wenn die Hersteller-App doch kostenlos ist?
Drei Gründe. Erstens: Datensouveränität. Deine Ertragsdaten bleiben in deinem Netzwerk. Kein chinesischer Cloud-Dienst, kein Account-Zwang, keine Frage, was mit deinen Daten passiert. Zweitens: Unabhängigkeit. Wenn Hoymiles seinen Cloud-Dienst ändert, abschaltet oder die Server streiken, bist du nicht betroffen. Dein lokales Monitoring läuft weiter. Und drittens: Integration. Per MQTT kannst du die Daten an praktisch jedes Smart-Home-System weitergeben, ob Home Assistant, Node-RED, InfluxDB oder Grafana. Damit baust du dir ein Monitoring-System, das genau das tut, was du willst.
OpenDTU hat sich seit seinem Start 2022 zum De-facto-Standard für lokales Hoymiles-Monitoring entwickelt. Das Projekt auf GitHub hat tausende Sterne, eine aktive Community und regelmäßige Updates. AhoyDTU ist das ältere Schwesterprojekt, das einen etwas anderen technischen Ansatz verfolgt, aber im Kern das Gleiche tut.
OpenDTU vs. AhoyDTU: Welches Projekt für dich?
Beide Projekte lesen Hoymiles-Wechselrichter aus und stellen die Daten lokal bereit. Die Unterschiede liegen im Detail.
OpenDTU
OpenDTU ist das aktivere Projekt mit mehr Entwicklern und häufigerem Updates. Es unterstützt sowohl die ältere HM-Serie (über NRF24L01+) als auch die neuere HMS/HMT-Serie (über CMT2300A). Das Webinterface ist übersichtlich und bietet Live-Daten, Konfiguration, Firmware-Updates und MQTT-Einstellungen. OpenDTU kann auch die Leistungsbegrenzung des Wechselrichters steuern, also etwa die Einspeiseleistung auf 600 oder 800 Watt begrenzen.
Ein wichtiger Ableger ist OpenDTU-OnBattery, der zusätzlich Batteriespeicher und Victron-Laderegler integriert. Wenn du neben dem Wechselrichter auch einen Speicher überwachen willst, ist das dein Projekt.
AhoyDTU
AhoyDTU war das erste Open-Source-DTU-Projekt und hat die Grundlagenarbeit geleistet, die Funkprotokolle der Hoymiles-Wechselrichter zu reverse-engineeren. Es läuft auf dem gleichen Hardware-Setup und bietet ähnliche Funktionen. Die Community ist kleiner, aber das Projekt wird aktiv gepflegt.
AhoyDTU hat einen etwas schlankeren Footprint und läuft tendenziell auch auf älteren oder günstigeren ESP32-Boards stabil. Wenn du einen besonders minimalen Aufbau willst, kann AhoyDTU die bessere Wahl sein.
Meine Empfehlung: Für die meisten Anwender ist OpenDTU die sicherere Wahl, weil die Community größer ist und mehr Hilfe verfügbar ist. Wenn du dich für AhoyDTU entscheidest, funktioniert das genauso gut, du findest nur weniger Tutorials und Forum-Posts, wenn du mal festhängst.
Hardware: Was du brauchst
Die Einkaufsliste ist kurz und günstig. Du brauchst drei Dinge: ein ESP32-Board, ein Funkmodul und ein paar Kabel. Welches Funkmodul du brauchst, hängt von deinem Wechselrichter ab.
Für Hoymiles HM-Serie (HM-300, HM-600, HM-800, HM-1500)
Die HM-Serie kommuniziert auf 2,4 GHz. Du brauchst:
- ESP32-Entwicklungsboard: Ein "ESP32 DevKitC" oder "NodeMCU ESP32" reicht völlig. Kostenpunkt: 5-8 Euro. Achte darauf, dass es ein ESP32 mit WROOM-32 oder ESP32-S3 Chip ist.
- NRF24L01+ Funkmodul: Am besten die Variante mit externer Antenne (NRF24L01+PA+LNA), die hat deutlich mehr Reichweite. Kostet 2-4 Euro.
- Dupont-Kabel: Zum Verbinden von ESP32 und Funkmodul. Kosten: 1-2 Euro.
- USB-Kabel: Micro-USB oder USB-C, je nach Board, zum Flashen und zur Stromversorgung.
Gesamtkosten: 10-15 Euro.
Für Hoymiles HMS- und HMT-Serie
Die HMS- und HMT-Wechselrichter kommunizieren auf 868 MHz (Sub-1G). Hier brauchst du:
- ESP32-S3 Entwicklungsboard: Die S3-Variante, weil du zwei SPI-Busse brauchst, wenn du sowohl NRF24L01+ als auch CMT2300A nutzen willst. Kosten: 6-10 Euro.
- CMT2300A Funkmodul: Speziell für die 868-MHz-Kommunikation. Kostet 5-8 Euro.
- Dupont-Kabel und USB-Kabel: wie oben.
Gesamtkosten: 15-25 Euro.
Fertige Kits
Wenn du nicht einzeln bestellen willst, gibt es fertige OpenDTU-Kits mit ESP32, Funkmodul und Display für 25-35 Euro. Diese Kits haben den Vorteil, dass die Verkabelung schon passt und du nicht selbst löten oder stecken musst. Der OpenDTU Fusion ist ein kompaktes Board, das ESP32-S3, CMT2300A und NRF24L01+ auf einer Platine vereint.
Firmware flashen: Schritt für Schritt
Keine Sorge, du musst nicht programmieren können. Die Firmware kommt fertig kompiliert und wird über USB auf das Board gespielt. Es gibt zwei Wege: den einfachen über den Web-Flasher und den manuellen über ein Flash-Tool.
Weg 1: Web-Flasher (empfohlen für Einsteiger)
OpenDTU bietet einen Web-Flasher auf der Projekt-Website (opendtu.solar), der direkt im Browser läuft. Du brauchst einen Chrome- oder Edge-Browser (Firefox funktioniert nicht wegen fehlender WebSerial-Unterstützung).
- Verbinde dein ESP32-Board per USB mit dem Computer
- Öffne den Web-Flasher auf opendtu.solar/firmware
- Wähle dein Board-Modell aus der Liste
- Klicke auf "Connect", wähle den COM-Port deines Boards
- Klicke auf "Install" und warte, bis der Flash-Vorgang abgeschlossen ist (ca. 1-2 Minuten)
Falls der Browser dein Board nicht erkennt: Du brauchst möglicherweise einen USB-Treiber. Die meisten ESP32-Boards nutzen entweder den CP2102 oder den CH340 Chip für die USB-Kommunikation. Die Treiber findest du mit einer kurzen Suche.
Weg 2: Manuelles Flashen
Wenn der Web-Flasher nicht funktioniert, geht es auch manuell:
- Lade die aktuelle Firmware von der GitHub-Releases-Seite herunter. Für den ersten Flash brauchst du die Datei mit ".factory" im Namen - diese enthält Bootloader, Partition Table und Firmware.
- Lade das ESP Flash Download Tool von Espressif herunter
- Starte das Tool, wähle "ESP32" als Chip-Typ
- Konfiguriere: SPI Speed 40 MHz, SPI Mode DOUT, Haken bei "DoNotChgBin" entfernen
- Wähle den COM-Port deines Boards und stelle die Baud-Rate auf 115200
- Klicke erst auf "Erase" (wartet bis "Finish"), dann auf "Start"
Der Flash-Vorgang dauert 1-2 Minuten. Danach startet das Board neu und öffnet einen eigenen WLAN-Hotspot namens "OpenDTU".
Ersteinrichtung über das Webinterface
Nach dem Flashen ist die Firmware auf dem Board, aber die Konfiguration fehlt noch. Die läuft komplett über ein Webinterface, das du im Browser aufrufst.
WLAN-Verbindung herstellen
- Das frisch geflashte Board öffnet einen WLAN-Hotspot "OpenDTU-XXXXXX" (die letzten Zeichen sind die MAC-Adresse)
- Verbinde dein Handy oder Laptop mit diesem Hotspot. Passwort: "openDTU42"
- Öffne im Browser die Adresse 192.168.4.1
- Du siehst das OpenDTU-Webinterface
WLAN konfigurieren
Unter "Settings" > "Network Settings" gibst du deine WLAN-Daten ein (SSID und Passwort deines Heimnetzwerks). Nach dem Speichern und Neustart verbindet sich das Board mit deinem WLAN. Die neue IP-Adresse findest du in deinem Router unter den verbundenen Geräten.
Wechselrichter hinzufügen
Unter "Settings" > "DTU Settings" vergibst du eine DTU-Seriennummer (eine beliebige 12-stellige Nummer). Unter "Settings" > "Inverter Settings" fügst du deinen Wechselrichter hinzu. Du brauchst die Seriennummer, die auf dem Typenschild des Wechselrichters steht. Wähle das richtige Modell aus der Dropdown-Liste.
Pin-Konfiguration
Unter "Settings" > "Device Manager" wählst du dein Board-Profil aus oder konfigurierst die GPIO-Pins manuell. Wenn du ein fertiges Kit verwendest, gibt es meistens ein passendes Profil. Wenn du selbst verkabelt hast, musst du die Pins entsprechend deiner Verdrahtung einstellen.
Nach dem Speichern sollte OpenDTU innerhalb weniger Sekunden die Verbindung zu deinem Wechselrichter aufbauen. Auf der Startseite siehst du dann die Live-Daten: aktuelle Leistung, Spannung, Strom und Energie pro Moduleingang.
Die Verkabelung im Detail
Die Verbindung zwischen ESP32 und Funkmodul ist der Teil, wo die meisten Fehler passieren. Hier die Pin-Belegung für die gängigsten Kombinationen.
ESP32 DevKitC + NRF24L01+
Das NRF24L01+ Modul wird über den SPI-Bus angeschlossen. Die Standard-Pinbelegung:
- VCC (Modul) an 3.3V (ESP32) - nicht an 5V, das zerstört das Modul
- GND an GND
- CE an GPIO 4
- CSN an GPIO 5
- SCK an GPIO 18
- MOSI an GPIO 23
- MISO an GPIO 19
- IRQ an GPIO 16 (optional, aber empfohlen)
Wichtig: Das NRF24L01+ Modul ist empfindlich bei der Stromversorgung. Wenn die Verbindung zum Wechselrichter instabil ist, hilft oft ein 10-100 µF Kondensator zwischen VCC und GND am Modul. Manche Boards haben eine zu schwache 3.3V-Leitung, in dem Fall kann ein separates Netzteil oder ein Spannungsregler helfen.
ESP32-S3 + CMT2300A
Die CMT2300A-Pinbelegung hängt vom konkreten Board ab und wird seit Firmware-Version 2024.09.11 dynamisch konfiguriert. In den meisten Fällen funktioniert die Standard-Konfiguration des gewählten Board-Profils. Die Pins werden im Webinterface unter "Device Manager" zugewiesen.
Reichweite und Positionierung
Die Funkreichweite hängt stark von der Umgebung ab. Das NRF24L01+ mit externer Antenne schafft im Freien 50-100 Meter, durch eine Außenwand reduziert sich das auf 10-30 Meter. Das CMT2300A Modul auf 868 MHz hat prinzipbedingt eine bessere Durchdringung von Wänden und Decken, 15-40 Meter durch Bausubstanz sind realistisch.
Positioniere das ESP32-Board möglichst nah am Wechselrichter, idealerweise im gleichen Raum oder an einer Wand, die nicht zum Wechselrichter hin durch Stahlbeton getrennt ist. Wenn die Verbindung trotzdem wackelt, hilft eine bessere Antenne mehr als eine Erhöhung der Sendeleistung.
MQTT: Die Brücke zu allem anderen
MQTT ist das Protokoll, über das OpenDTU seine Daten an andere Systeme weitergibt. Es funktioniert nach dem Publish-Subscribe-Prinzip: OpenDTU veröffentlicht Daten in sogenannten Topics (z.B. "solar/ac/power" für die aktuelle AC-Leistung), und jedes System, das sich für diese Topics interessiert, bekommt die Daten automatisch zugestellt.
MQTT-Broker einrichten
Du brauchst einen MQTT-Broker in deinem Netzwerk. Wenn du Home Assistant nutzt, ist der Mosquitto-Broker ein Add-on, das du in zwei Klicks installierst. Alternativ kannst du Mosquitto auf einem Raspberry Pi oder einem NAS installieren.
In OpenDTU konfigurierst du unter "Settings" > "MQTT Settings" die IP-Adresse deines Brokers, den Port (Standard: 1883) und optional Benutzername und Passwort. Nach dem Speichern beginnt OpenDTU sofort, Daten an den Broker zu senden.
Was über MQTT rausgeht
OpenDTU sendet über MQTT eine Fülle von Daten:
- AC-Leistung, Spannung, Strom und Frequenz
- DC-Leistung, Spannung und Strom pro Moduleingang
- Tagesertrag und Gesamtertrag
- Wechselrichter-Status und Fehlercodes
- Temperatur des Wechselrichters
- Effizienz und Leistungsfaktor
Diese Daten werden alle paar Sekunden aktualisiert und können von Home Assistant, InfluxDB (über Telegraf), Node-RED oder jedem anderen MQTT-fähigen System weiterverarbeitet werden.
Integration in Home Assistant
Home Assistant erkennt OpenDTU automatisch über MQTT Auto-Discovery. Sobald OpenDTU mit dem MQTT-Broker verbunden ist, tauchen die Sensoren in Home Assistant auf: Leistung pro Modul, Gesamtleistung, Tagesertrag, Gesamtertrag und diverse Status-Sensoren.
Von dort aus kannst du die Daten im Home Assistant Energy Dashboard nutzen, Automationen erstellen (z.B. "Wenn Solarleistung über 300 W, schalte Waschmaschine ein") und die Daten langfristig in InfluxDB speichern. Das Home Assistant Energy Dashboard mit OpenDTU-Daten ist für viele Balkonkraftwerk-Betreiber das Nonplusultra der Überwachung.
Fehlerbehebung: Die häufigsten Probleme
Die meisten Probleme bei OpenDTU und AhoyDTU lassen sich auf drei Ursachen zurückführen: Verkabelung, Funkreichweite und WLAN.
Wechselrichter wird nicht gefunden
Prüfe als Erstes die Seriennummer. Ein Zahlendreher ist der häufigste Fehler. Dann kontrolliere die Verkabelung zwischen ESP32 und Funkmodul: Sitzt alles fest? Sind die richtigen Pins verbunden? Starte das Board neu und warte 2-3 Minuten, manchmal braucht der Wechselrichter etwas, bis er antwortet.
Instabile Verbindung (häufige Timeouts)
Meist ein Reichweiten- oder Stromversorgungsproblem. Bringe das Board näher an den Wechselrichter. Verwende ein NRF24L01+ Modul mit externer Antenne statt einem mit aufgedruckter Antenne. Schließe einen Kondensator an die Stromversorgung des Funkmoduls an.
WLAN-Verbindung bricht ab
Wenn das Board immer wieder die WLAN-Verbindung verliert, liegt es oft an einem schwachen WLAN-Signal am Standort des Boards. Ein WLAN-Repeater oder ein Mesh-System kann helfen. Alternativ kannst du in den WLAN-Einstellungen einen festen Kanal konfigurieren, wenn dein Router im Auto-Modus zwischen Kanälen springt.
Wie geht es weiter?
OpenDTU ist erst der Anfang. Sobald deine Daten per MQTT fließen, kannst du darauf aufbauen: Grafana-Dashboards für schicke Visualisierungen, InfluxDB für Langzeitdaten über Jahre, Home Assistant für Automationen und Energiemanagement. Die einzelnen Bausteine werden in den folgenden Artikeln dieses Clusters Schritt für Schritt erklärt.
OpenDTU-OnBattery: Die Erweiterung für Speicherbesitzer
Falls du neben dem Balkonkraftwerk auch einen Batteriespeicher hast oder planst, lohnt sich ein Blick auf OpenDTU-OnBattery. Das ist ein Fork (Abspaltung) des OpenDTU-Projekts, der zusätzlich Batteriemanagementsysteme und Victron-Laderegler integriert. Die aktuelle Version (basierend auf OpenDTU v25.5.10) unterstützt unter anderem Marstek B2500, Anker Solix und Zendure Speichersysteme.
OpenDTU-OnBattery läuft auf der gleichen Hardware und wird genauso geflasht. Der Unterschied liegt in den zusätzlichen Konfigurationsseiten für Batterie-Parameter und der erweiterten MQTT-Ausgabe, die Ladestand, Lade-/Entladeleistung und Batterietemperatur umfasst. Wenn du dein System irgendwann um einen Speicher erweiterst, kannst du von OpenDTU auf OnBattery wechseln, ohne die bestehende Konfiguration zu verlieren.
OpenDTU Fusion: Die All-in-One-Platine
Für alle, die nicht mit Dupont-Kabeln und Steckbrettern hantieren wollen, gibt es den OpenDTU Fusion. Das ist eine speziell entwickelte Platine, die ESP32-S3, CMT2300A und NRF24L01+ auf einem einzigen Board vereint. Kein Verkabeln, kein Löten, alles ist vorkonfektioniert.
Der OpenDTU Fusion hat ein paar Extras, die das DIY-Setup nicht bietet: einen integrierten USB-C-Anschluss für Stromversorgung und Flashen, optionalen Display-Anschluss, und ein durchdachtes Gehäuse. Preislich liegt er bei 30-45 Euro, also teurer als das Selbstbau-Setup, aber deutlich unkomplizierter in der Inbetriebnahme.
Für Einsteiger, die sich die Verkabelung nicht zutrauen, ist der Fusion die beste Option. Für Bastler, die den Lerneffekt genießen und vielleicht schon Erfahrung mit ESP32-Projekten haben, ist das DIY-Setup befriedigender und günstiger.
Was OpenDTU nicht kann
Bei aller Begeisterung gibt es ein paar Grenzen, die du kennen solltest.
OpenDTU unterstützt nur Hoymiles-Wechselrichter (und einige wenige TSUN/Solenso-Modelle). Wenn du einen Deye, Sofar oder Growatt hast, brauchst du eine andere Lösung (SolarAssistant für lokales Monitoring oder die Hersteller-Cloud).
OpenDTU misst nur, was der Wechselrichter misst. Es kann dir nicht sagen, wie viel Strom du gerade verbrauchst oder ob der Solarstrom ins Netz fließt. Dafür brauchst du zusätzliche Sensorik (Shelly Pro 3EM, IR-Lesekopf) und ein übergeordnetes System wie Home Assistant.
Und: OpenDTU hat kein eingebautes Langzeitgedächtnis. Es zeigt Live-Daten und die Erträge des aktuellen Tages, speichert aber keine historischen Daten über Wochen und Monate. Dafür brauchst du InfluxDB oder Home Assistant als Datensenke.
Die Community: Dein wichtigstes Asset
Was OpenDTU und AhoyDTU von kommerziellen Produkten unterscheidet, ist nicht nur der Quellcode, sondern die Community dahinter. Auf GitHub, in den OpenDTU-Discussions und im Photovoltaikforum findest du tausende Nutzer, die ihre Erfahrungen teilen, Probleme lösen und neue Features vorschlagen.
Wenn du bei der Einrichtung nicht weiterkommst, ist die Wahrscheinlichkeit hoch, dass jemand das gleiche Problem hatte und die Lösung bereits dokumentiert ist. Die GitHub Discussions von OpenDTU haben über 900 Threads mit Fragen und Antworten, von Anfängerproblemen bis zu fortgeschrittenen MQTT-Konfigurationen.
Diese Community ist auch der Grund, warum OpenDTU so schnell neue Wechselrichter-Modelle unterstützt. Wenn Hoymiles ein neues Modell rausbringt, dauert es oft nur Wochen, bis die Community das Funkprotokoll reverse-engineered hat und die Unterstützung in der Firmware landet. Bei kommerziellen Lösungen würdest du auf den Hersteller warten, bei Open Source macht es die Gemeinschaft.
Was du jetzt schon hast, ist ein Monitoring-System, das unabhängig von Hersteller-Clouds läuft, alle relevanten Daten in Echtzeit liefert und das du jederzeit erweitern kannst. Für 15-25 Euro Hardware und einen Nachmittag Einrichtungszeit ist das schwer zu schlagen.