Balkonkraftwerk in Home Assistant: Hoymiles mit OpenDTU
Hoymiles-Wechselrichter lokal auslesen: OpenDTU auf einem ESP32 einrichten, per MQTT in Home Assistant einbinden und Solarstrom gezielt nutzen.
Von Nathan Base
Ein Balkonkraftwerk liefert an einem guten Tag mehrere Kilowattstunden, aber wie viel davon wirklich im eigenen Haushalt landet, siehst Du ohne Messung nicht. Die meisten Anlagen in Deutschland arbeiten mit einem Wechselrichter von Hoymiles. Dessen Daten landen ab Werk entweder gar nicht bei Dir oder nur über eine Hersteller-Cloud mit eigener App, die sich nicht sinnvoll mit dem Rest Deines Smart Homes verbinden lässt.
OpenDTU ändert das. Die Open-Source-Firmware läuft auf einem ESP32 mit einem kleinen Funkmodul, spricht direkt per Funk mit dem Wechselrichter und gibt die Werte lokal per MQTT an Home Assistant weiter. Du siehst dann Leistung, Tagesertrag und Gesamtertrag in Echtzeit, kannst das Energie-Dashboard füttern und Geräte genau dann einschalten, wenn die Sonne scheint.
Diese Anleitung bezieht sich auf OpenDTU in der Version v26.9.28 vom September 2026 und Home Assistant 2026.11. Grundlage ist die offizielle OpenDTU-Dokumentation.
Welches Funkmodul Dein Wechselrichter braucht
Hoymiles hat zwei Gerätefamilien, die auf unterschiedlichen Frequenzen funken. Bevor Du Hardware kaufst, schau auf das Typenschild Deines Wechselrichters:
| Modellreihe | Beispiele | Funkmodul |
|---|---|---|
| HM | HM-300, HM-600, HM-800, HM-1500 | NRF24L01+ |
| HMS und HMT | HMS-800W-2T, HMS-1600-4T, HMT-2250-6T | CMT2300A |
Die meisten Balkonkraftwerke, die seit 2023 verkauft werden, haben einen HMS-Wechselrichter, also brauchst Du in der Regel das CMT2300A. Die vollständige Liste unterstützter Modelle steht in der Hardware-Übersicht von OpenDTU.
Die Hardware
Du kannst ein ESP32-Board und das Funkmodul selbst verkabeln. Einfacher und weniger fehleranfällig ist eine fertige Platine, auf der beides schon verbunden ist und die oft mit vorinstallierter OpenDTU-Firmware geliefert wird. Solche Boards findest Du unter dem Suchbegriff OpenDTU-Platine für Hoymiles HMS (Affiliate Link). Achte beim Kauf darauf, dass das passende Funkmodul aus der Tabelle oben dabei ist.
Dazu kommen ein USB-Netzteil mit 5 Volt und mindestens 1 Ampere und ein Platz in Funkreichweite des Wechselrichters. Bewährt hat sich ein Fensterbrett auf der Seite, auf der die Anlage hängt. Durch eine Stahlbetonwand reicht der Funk oft nicht.
Auf der Home-Assistant-Seite brauchst Du einen MQTT-Broker. Wenn Du Home Assistant OS nutzt, installierst Du dafür unter Einstellungen > Apps die App Mosquitto broker aus dem Store, startest sie und fügst danach die Integration MQTT hinzu, die Home Assistant Dir meist schon als neu erkannt anbietet.
OpenDTU aufspielen
Ist Dein Board schon mit OpenDTU geliefert worden, überspringst Du diesen Abschnitt. Sonst lädst Du von der Release-Seite auf GitHub die Datei opendtu-generic_esp32.factory.bin herunter. Bei einem Board mit ESP32-S3 nimmst Du stattdessen die Datei mit esp32s3 im Namen. Für den ersten Flash ist die Variante mit .factory im Namen wichtig, weil sie zusätzlich den Bootloader und die Partitionstabelle enthält.
Zum Flashen nutzt Du am Mac oder unter Linux das Werkzeug esptool. Mit Homebrew installierst Du es so:
brew install esptoolSchließ das Board per USB an und schreibe die Firmware an den Anfang des Flash-Speichers:
esptool --chip esp32 write-flash 0x0 opendtu-generic_esp32.factory.binesptool findet den seriellen Anschluss in der Regel selbst. Findet es keinen, fehlt meist der Treiber für den USB-Chip des Boards, oder das USB-Kabel kann nur laden und keine Daten übertragen.
Die Ersteinrichtung
Nach dem ersten Start öffnet OpenDTU ein eigenes WLAN mit dem Namen OpenDTU- und einer Nummer dahinter. Verbinde Dich mit dem Passwort openDTU42 und öffne im Browser http://192.168.4.1. Für die Einstellungen meldest Du Dich mit dem Benutzer admin und demselben Passwort an.
Arbeite dann diese Punkte der Reihe nach ab:
- Passwort ändern. Unter Settings > Security Settings vergibst Du ein eigenes Passwort. Das Standardpasswort ist öffentlich bekannt.
- WLAN einrichten. Unter Settings > Network Settings trägst Du Dein Heimnetz ein. Sobald OpenDTU verbunden ist, schaltet es das eigene WLAN nach drei Minuten ab. Die neue IP-Adresse findest Du in Deinem Router, bei einer FRITZ!Box unter Heimnetz > Netzwerk.
- Geräteprofil wählen. Unter Settings > Device Manager wählst Du das Profil, das zu Deiner Platine passt. Der Hersteller einer fertigen Platine nennt Dir das richtige. Ohne Profil weiß die Firmware nicht, an welchen Pins das Funkmodul hängt.
- Wechselrichter hinzufügen. Unter Settings > Inverter Settings trägst Du die Seriennummer vom Typenschild ein. OpenDTU kann Wechselrichter nicht selbst finden, die Nummer muss also exakt stimmen.
Nach ein bis zwei Minuten erscheint der Wechselrichter in der Live-Ansicht mit Leistung je Modul und Tagesertrag. Nachts steht dort, dass er nicht erreichbar ist. Das ist normal, denn ohne Sonne hat der Wechselrichter keinen Strom und schaltet sich ab.
Die Werte an Home Assistant schicken
Öffne in OpenDTU Settings > MQTT Settings und trage diese Werte ein:
- Enable MQTT einschalten.
- Hostname: die IP-Adresse Deines Home Assistant.
- Port:
1883. - Username und Password: ein Home-Assistant-Benutzer. Am saubersten legst Du dafür unter Einstellungen > Personen einen eigenen Benutzer
opendtuan. - Enable Home Assistant MQTT Auto Discovery einschalten.
Nach dem Speichern legt Home Assistant automatisch ein Gerät für OpenDTU und eines für jeden Wechselrichter an. Du findest sie unter Einstellungen > Geräte & Dienste > MQTT. Die wichtigsten Entitäten sind die aktuelle Leistung in Watt, der Tagesertrag und der Gesamtertrag in Kilowattstunden.
Das Energie-Dashboard füttern
Öffne Einstellungen > Dashboards > Energie und füge unter Solarmodule die Entität für den Gesamtertrag Deines Wechselrichters hinzu, also den Wert mit YieldTotal im Namen. Nimm bewusst den Gesamtertrag und nicht den Tagesertrag: Home Assistant berechnet die Differenzen selbst und kommt mit einem stetig steigenden Zähler am besten zurecht.
Ab dem nächsten Tag zeigt das Dashboard, wie viel Strom die Anlage pro Stunde erzeugt hat. Wenn Du zusätzlich einen Zähler für Bezug und Einspeisung hast, etwa einen Lesekopf am digitalen Stromzähler, rechnet Home Assistant auch aus, wie viel Deines Solarstroms Du selbst verbraucht hast.
Geräte bei Sonnenschein einschalten
Jede Kilowattstunde, die Du selbst verbrauchst, statt sie ohne Vergütung ins Netz zu schicken, spart den vollen Strompreis. Am einfachsten nutzt Du den Überschuss mit Geräten, die nur Strom brauchen und es nicht eilig haben: ein E-Bike-Akku, eine Powerstation oder ein Luftentfeuchter im Keller. Sie hängen an einer schaltbaren Steckdose, wie der im Shelly Outdoor Plug S Gen3 im Test: smarte Außensteckdose vorgestellten.
Diese Automation schaltet die Steckdose ein, wenn die Anlage zehn Minuten lang mehr als 400 Watt liefert, und wieder aus, wenn die Leistung zehn Minuten unter 250 Watt fällt:
alias: Solarüberschuss Ladegerät
mode: single
triggers:
- trigger: numeric_state
entity_id: sensor.hms_800w_2t_power
above: 400
for:
minutes: 10
id: sonne
- trigger: numeric_state
entity_id: sensor.hms_800w_2t_power
below: 250
for:
minutes: 10
id: wolken
actions:
- choose:
- conditions:
- condition: trigger
id: sonne
sequence:
- action: switch.turn_on
target:
entity_id: switch.ladegeraet
- conditions:
- condition: trigger
id: wolken
sequence:
- action: switch.turn_off
target:
entity_id: switch.ladegeraetErsetze sensor.hms_800w_2t_power durch die Leistungs-Entität Deines Wechselrichters und switch.ladegeraet durch Deine Steckdose. Die Lücke zwischen 400 und 250 Watt verhindert, dass die Steckdose bei jeder Wolke an- und ausgeht. Die Werte passen zu einem Verbraucher mit etwa 100 bis 200 Watt und einem Grundverbrauch im Haushalt von rund 150 Watt. Liegt Dein Grundverbrauch höher, setzt Du beide Schwellen entsprechend nach oben.
Die Regel ist eine Näherung, weil sie nur die Erzeugung kennt und nicht, was gerade im Haus verbraucht wird. Genauer wird es mit einem Lesekopf am Stromzähler, dann kannst Du auf die tatsächliche Einspeisung reagieren. Wenn Du einen dynamischen Stromtarif hast, lohnt sich zusätzlich der Artikel Dynamischer Stromtarif in Home Assistant nutzen, denn dann ist auch Netzstrom zu bestimmten Stunden günstig.
Leistung begrenzen
OpenDTU kann die Ausgangsleistung des Wechselrichters begrenzen. In der Live-Ansicht findest Du dafür beim Wechselrichter den Knopf für die Leistungsbegrenzung, und per MQTT gibt es dafür eigene Befehle. Eine persistente Begrenzung bleibt über Nacht erhalten, eine nicht persistente gilt nur, bis der Wechselrichter abends abschaltet.
Für Balkonkraftwerke gilt in Deutschland seit dem Solarpaket I eine Wechselrichterleistung von bis zu 800 Voltampere. Ob Deine Anlage diese Grenze einhält, regelt das Zertifikat des Wechselrichters und nicht eine Einstellung in OpenDTU. Die Begrenzung ist eher für Fälle gedacht, in denen Du die Einspeisung bewusst drosseln willst. Häufiges Ändern der persistenten Grenze solltest Du vermeiden, denn sie wird jedes Mal in den Speicher des Wechselrichters geschrieben.
Wenn etwas hakt
Der Wechselrichter bleibt tagsüber unerreichbar. Prüfe zuerst die Seriennummer. Danach den Abstand: Stell OpenDTU testweise direkt neben den Wechselrichter. Klappt es dort, fehlt im normalen Betrieb Funkreichweite. Eine externe Antenne am Funkmodul oder ein Platz näher am Fenster hilft.
OpenDTU zeigt Werte, Home Assistant nicht. Prüfe auf der OpenDTU-Seite unter Info > MQTT, ob die Verbindung zum Broker steht. Steht sie, aber es erscheint kein Gerät, ist meist die Auto Discovery ausgeschaltet oder der MQTT-Benutzer falsch.
Die Uhrzeit stimmt nicht. OpenDTU braucht Zugriff auf einen NTP-Server. Unter Settings > NTP Settings stellst Du die Zeitzone auf Europe/Berlin ein. Ohne korrekte Uhrzeit rechnet der Tagesertrag falsch.
Fazit
Mit einer Platine für 20 bis 40 Euro und einer halben Stunde Einrichtung wird aus der Blackbox am Balkon eine Datenquelle, die in Home Assistant mitspielt. Der größte Nutzen liegt nicht in den hübschen Kurven, sondern darin, dass Du Verbraucher in die Sonnenstunden verschieben kannst. Bei einem Strompreis um 30 Cent je Kilowattstunde bringt jede Kilowattstunde Eigenverbrauch mehr, als die Einspeisung jemals einbringen würde.
Weiterlesen.
-
Raspberry Pi & LinuxDynamischer Stromtarif in Home Assistant nutzen
Börsenstrompreise mit Nord Pool in Home Assistant holen, das günstigste Zeitfenster berechnen und Geräte automatisch in die billigen Stunden legen.
Nathan Base -
Digital LifestyleShelly Outdoor Plug S Gen3 im Test: smarte Außensteckdose
Shelly Outdoor Plug S Gen3 im Test: wetterfeste smarte Steckdose mit Strommessung, Matter und lokaler Steuerung ohne Cloud-Zwang.
Nathan Base -
Raspberry Pi & LinuxHome Assistant: Drucker automatisch abschalten und Strom sparen
Eine Steckdose mit Strommessung erkennt, wann der Drucker nur im Standby hängt, und Home Assistant schaltet ihn nach einer Stunde ab. Mit Automation.
Nathan Base -
Raspberry Pi & LinuxZigbee in Home Assistant: ZHA oder Zigbee2MQTT?
ZHA oder Zigbee2MQTT für Home Assistant: konkrete Vor- und Nachteile aus der Community, bewertet, mit klarer Empfehlung und Einrichtung von ZHA.
Nathan Base -
Raspberry Pi & LinuxmmWave-Präsenzmelder mit LD2410 und ESPHome bauen
Präsenzmelder für Home Assistant selbst bauen: ESP32 und LD2410 mit ESPHome, damit das Licht anbleibt, solange jemand still im Raum sitzt.
Nathan Base -
Raspberry Pi & LinuxNode-RED auf dem Raspberry Pi installieren und absichern
Node-RED mit dem offiziellen Skript auf Raspberry Pi OS Trixie installieren, als Dienst starten, mit Passwort schützen und den ersten Flow bauen.
Nathan Base