!Wechselrichter über zwei Batteriemodulen an einer Kellerwand, davon Kabel und Sicherungskasten

Am 8. Oktober 2026 eröffnete ein Nutzer namens Herssens im GitHub-Repository der Huawei-Solar-Integration ein Issue mit dem Titel „Modbus TCP timeouts and unreliable recovery“. Sein Aufbau ist ein ziemlich typischer: ein SUN2000-4.6KTL-L1, ein LUNA2000 mit 15 kWh, ein DTSU666-Zähler, dazu der Smart Dongle per Ethernet und Home Assistant auf einem Raspberry Pi 5. Die Integration fragte alle 30 Sekunden ab, und irgendwann hörten Inverter- und Batteriedaten auf zu kommen. Im Log standen „Unexpected Modbus TCP Transaction IDs“, „Communication failure with a slave device at 192.168.68.61:502“ und „Battery data update failed due to a communication timeout“.

Er fand die Ursache selbst. Sie lag in seinem Ethernet, nicht in der Integration. Seine Lösung: weg vom Dongle, hin zu RS485 über einen USB-Adapter mit 9600 Baud. Der Maintainer schloss das Issue am 22. Oktober mit dem Hinweis, das sei Verbindungsinstabilität und keine Schwäche der Integration.

Ob das stimmt, ist offen. Die Entwickler selbst schreiben im Wiki über den Weg per Dongle: „Connections via a Huawei Dongle are noticeably more unreliable than other options. We therefore recommend AGAINST this option if possible.“ Der Satz steht dort wirklich so, in einem Warnkasten, und er ist der beste Ausgangspunkt, um die vier Anbindungswege zu sortieren.

Was die Integration kann

Die Integration „Huawei Solar“ von wlcrs gibt es über HACS, nicht als Teil von Home Assistant selbst. Installieren, Home Assistant neu starten, Integration hinzufügen. Die aktuelle Version ist laut GitHub 2.1.5 vom 9. September 2026. Schon Version 2.1.4 verlangt Home Assistant 2026.8 oder neuer, weil sich dort eine API geändert hat. Wer ein älteres Core betreibt, bleibt auf einer alten Integrationsversion hängen. Außerdem verlangt die Integration laut README Wechselrichter-Firmware von 2023 oder neuer.

Gesprochen wird Modbus. Die Integration nutzt Huaweis eigene Schnittstellenbeschreibungen („Solar Inverter Modbus Interface Definitions“) und liest damit Wechselrichter, LUNA2000-Speicher, Optimierer und den Stromzähler aus, alles lokal, ohne Umweg über die FusionSolar-Cloud. Standardmäßig fragt sie alle 30 Sekunden ab. Wer häufiger Werte will, schaltet das automatische Polling ab und baut sich eigene Automatisierungen. Für Speicher und Zähler gilt das gesondert, die brauchen jeweils ihre eigene.

Vier Wege zum Wechselrichter

Das Wiki unterscheidet bei der Netzwerkanbindung vier Zugänge. Welcher bei Ihnen geht, hängt von Modell, Firmware und davon ab, ob ein Dongle steckt.

Über die eigene IP des Wechselrichters. Mit Firmware aus dem vierten Quartal 2022 geht das bei der SUN2000L wieder, bei der SUN2000MA offenbar nicht. Dazu muss im FusionSolar-Gerätemenü mit einem Installateurkonto „Local O&M“ unter den Router-Verbindungseinstellungen eingeschaltet werden. Das Wiki merkt an, der Schalter sei „somewhat buggy“ und brauche manchmal mehrere Versuche. Danach öffnet sich Port 6607 oder Port 502.

Über den Smart Dongle (SDongleA-05 oder SDongle FE). Hier muss im Wechselrichter für die Dongle-Kommunikation der „Unrestricted“-Modus für Modbus TCP aktiviert werden. Huawei hat dafür einen eigenen Modbus-TCP-Guide, auf den das Wiki verlinkt. Danach spricht der Dongle auf Port 502, die Slave-ID ist typischerweise 1. Geben Sie dem Dongle im Router eine feste IP, sonst fängt die Integration nach jedem DHCP-Wechsel von vorne an.

Über den WLAN-Access-Point des Wechselrichters. Er heißt SUN2000-, die Adresse ist 192.168.200.1, der Port 6607 (Firmware ab Dezember 2021) oder 502 (ältere Stände), die Slave-ID typischerweise 0. Das Wiki nennt diesen Weg „the most reliable“, weil die Commissioning-Funktion der FusionSolar-App genauso verbindet. Der Haken liegt im Netzwerk: Ein WLAN-Interface kann nicht gleichzeitig im Heimnetz und im Inverter-WLAN hängen. Sie brauchen einen zweiten Adapter, etwa einen USB-WLAN-Stick am Home-Assistant-Rechner, oder einen WLAN-Repeater im Client-Modus mit Portweiterleitung auf 192.168.200.1:6607. Das Wiki liefert sogar eine OpenWrt-Konfiguration dafür mit, samt Warnung, defaultroute auf 0 zu setzen, weil der Router sonst versucht, den gesamten Internetverkehr über den Wechselrichter zu schicken.

Über RS485. Die Pins RS485A1 und RS485B1 am COM-Port des Wechselrichters gehen per verdrilltem Paar, etwa aus einem CAT5e-Kabel, an einen USB-RS485-Adapter oder an einen Modbus-RTU-zu-TCP-Gateway. Der Haken: Das Wiki warnt, dass die Dongles SDongleA-05 und SDongleA-FE Geräte an diesen Pins stören. Steckt ein Dongle, ist laut Wiki die serielle Variante keine Option, und man soll stattdessen dessen Modbus-TCP-Port nutzen. Dass Herssens trotzdem erfolgreich auf RS485 gewechselt ist, passt dazu nur, wenn sein Aufbau diese Konstellation nicht hatte. Aus dem Issue lässt sich das nicht ablesen.

Die Dongle-Variante bleibt trotzdem die häufigste, schlicht weil der Dongle bei vielen Anlagen ohnehin im Wechselrichter steckt. Und es gibt einen Grund, ihn nicht einfach zu ziehen. In Issue #714 beschrieb ein Nutzer mit drei SUN2000-6KTL-L1, neun LUNA2000-Modulen und einem EW11-WLAN-Adapter anstelle des Dongles, dass die Anlage plötzlich „Grid connection with derating due to power rationing“ meldete und der Speicher unruhig lud. Das Wiki fasst die Lehre so zusammen: Bei mehreren Wechselrichtern und Batterie regelt der Dongle offenbar einen Teil des Zusammenspiels, Entfernen kann die Leistung verschlechtern.

Nur eine Verbindung gleichzeitig

Die wichtigste Regel steht fett im README: Modbus-Geräte unterstützen nur eine Verbindung gleichzeitig. Wenn ein zweites Programm zugreift, verliert die erste Verbindung, und die Integration fällt aus.

Das erklärt einen Großteil der Fehlermeldungen. Die FAQ nennt zum Fehler „Connection succeeded, but failed to read from inverter“ zwei Ursachen: eine falsche Slave-ID (0 oder 1, einfach beide probieren) oder ein anderes Gerät, das sich zwischenzeitlich mit dem Wechselrichter verbunden hat. Einen Hinweis auf den zweiten Fall liefert das README bei der Frage, ob die FusionSolar-App weiter funktioniert. Die Antwort: Die Livewerte in der App laufen weiter, denn der Wechselrichter meldet an die Cloud. Wer aber die Funktion „Inbetriebnahme“ der App braucht, muss die Integration vorher ausschalten. Wenn Ihr Installateur zur Inbetriebnahme kommt, muss Ihre Home-Assistant-Anbindung also kurz aus.

Dazu kommt ein Mechanismus, den man erst im Wiki findet. Wenn ein Dongle oder ein EMMA den Standard-Gateway nicht erreicht oder keine Verbindung zur Huawei-Cloud bekommt, etwa bei Internetausfall, startet er regelmäßig neu und versucht, die Verbindung zurückzuholen. Das reißt Ihre Modbus-Verbindung jedes Mal mit. Ein Cloud-Ausfall bei Huawei kann also lokale Messwerte unterbrechen, obwohl alles lokal gedacht war.

Ein Stolperstein ist auch die Firmware. Im README steht ausdrücklich, dass sich der Port nach einem Update ändern kann: Manche Wechselrichter nutzen 6607 statt 502. In der Liste bestätigter Firmware-Versionen im Wiki tauchen Konstellationen wie ein SUN2000-4.6KTL-L1 mit der Firmware V200R001C00SPC157 und einem SDongleA-05 auf V200R022C10SPC210 auf, getestet am 22. Oktober 2026 auf Port 502. Solche Listen sind kein Freibrief, aber sie sagen Ihnen, was bei anderen schon lief, bevor Sie Dongle-Updates per FusionSolar anstoßen.

Einrichtung in vier Schritten

  1. HACS-Repository wlcrs/huawei_solar hinzufügen, installieren, Home Assistant neu starten.
  2. Integration „Huawei Solar“ hinzufügen und Netzwerkverbindung wählen. Host und Port wie oben, Slave-ID auf „AUTO“ lassen oder 0 beziehungsweise 1 versuchen.
  3. Wenn Sie steuern wollen: „Advanced: elevate permissions“ anhaken. Dann fragt die Integration nach den Zugangsdaten des Installer-Kontos, also denen, mit denen Sie sich in der FusionSolar-App unter „Inbetriebnahme“ anmelden. Das Standardpasswort ist laut README 00000a oder 0000000a. Ein Zurücksetzen löscht laut Huawei-Dokumentation nicht die Cloud-Anbindung und nicht die Einstellungen Ihres Installateurs.
  4. Dem Wechselrichter im Router eine feste IP geben.
Elevated permissions schaltet zweierlei frei: Optimierer-Daten und die Möglichkeit, Wechselrichter und Batterie dynamisch zu verstellen. Version 2.1.5 hat übrigens einen Fehler behoben, bei dem die Einrichtung scheiterte, wenn das Gerät die Dateiübertragung der Optimierer ablehnte. Das passierte im Zusammenspiel mit dem evcc-Modbus-Proxy.

Den Speicher steuern

Das ist der Teil, wegen dem viele überhaupt zur Integration greifen. Laut Wiki gibt es fünf Dienste: forcible_charge, forcible_charge_soc, forcible_discharge, forcible_discharge_soc und stop_forcible_charge. Die ersten vier laden oder entladen für eine Dauer oder bis zu einem Ladestand.

Zwei Details lohnen den genauen Blick. Während ein erzwungenes Laden läuft, schickt der Wechselrichter den gesamten Solarstrom in die Batterie, statt den Haushalt zu versorgen. Netzstrom kommt nur dazu, wenn der Schalter „Charge from grid“ gesetzt ist. Beim Entladen drückt der Wechselrichter mehr auf die AC-Seite, als das Haus verbraucht, der Rest geht ins Netz. Das ist eine Einspeisung, die Sie in Kauf nehmen müssen.

Für feste Zeitfenster gibt es huawei_solar.set_tou_periods. Pro Zeile ein Zeitraum im Format Start-Ende/Wochentage/+ für Laden oder - für Entladen, also zum Beispiel 05:00-06:00/1234567/+. Der Dienst ersetzt die komplette bisherige TOU-Einstellung, Sie müssen also immer alle Zeiträume mitschicken. Das Wiki warnt, das letzte Ende als 23:59 statt 00:00 zu schreiben, weil 00:00 bei manchen Nutzern den Fehler „unknown error“ ausgelöst hat. Und: Ohne gesetzte Perioden lädt sich der Speicher weiter aus PV-Überschuss, lädt aber nicht aus dem Netz und entlädt nicht für den Hausverbrauch. Wer eine EMMA hat, liest die TOU-Werte nicht vom Speicher, sondern vom Sensor sensor.emma_none.

Änderungen über die FusionSolar-App tauchen in Home Assistant erst nach bis zu fünf Minuten auf, weil die Parameter so lange zum Aktualisieren brauchen. Umgekehrt, so berichten einige Nutzer im Wiki, zeigt die App Änderungen aus Home Assistant teilweise gar nicht an.

Gegen Lastspitzen gibt es in der Integration „Capacity control“ mit Peak Shaving. Das Wiki nennt dafür den flämischen Kapazitätstarif als Beispiel. Der Preis: Der Wechselrichter geht dann nicht mehr in den Standby und zieht laut Wiki 75 bis 125 Watt, auch wenn nichts passiert. Bei 100 Watt sind das über ein Jahr rund 876 Kilowattstunden, das sollten Sie gegen die erhoffte Ersparnis rechnen. Wie dynamische Tarife rechnerisch zu Ihrer Anlage passen, steht im Vergleich der dynamischen Stromtarife 2026.

Steuern heißt auch Verantwortung. Der Maintainer schreibt in Issue #714: „I do not change any settings without user interaction. So if you don't change any values in HA yourself, the integration will not change anything.“ Was Sie in Home Assistant schreiben, schreiben Sie in die Wechselrichtereinstellungen.

Sensoren fürs Energie-Dashboard

Die Integration legt Sensoren für Wechselrichter, Batterie und Zähler an. Für das Energie-Dashboard braucht es monoton steigende Zähler: Ertrag, Batterie laden und entladen, Netzbezug und Einspeisung vom Power Meter. Beim Zähler liefert der DTSU666 (bei Huawei die Variante DTSU666-H) die Netzwerte, die HA später als Bezug und Einspeisung braucht. Wie das Dashboard grundsätzlich aufgebaut wird, steht in der Anleitung zum Energie-Dashboard.

Eine Falle steckt im Tagesertrag. Laut Wiki ist der „Daily Yield“ des Wechselrichters dessen Ausgangsertrag, nicht der Eingang der Module. Bei Anlagen mit Batterie ist das ein großer Unterschied: Er enthält die Energie aus der Batterieentladung, aber nicht den Teil, der in die Batterie geladen wurde. FusionSolar rechnet daher Tagesertrag minus Batterie-Entladung plus Batterie-Ladung. Das Ergebnis kann im Lauf des Tages leicht sinken, weil die Entladung manchmal schneller wächst als der Ertrag, und das Energie-Dashboard erwartet einen nie sinkenden Wert. Beim Laden aus dem Netz stimmt die Rechnung ohnehin nicht. Das Wiki zeigt Alternativen, die einfachste ist ein Riemann-Summen-Sensor auf die Wirkleistung, der den Ertrag laut Wiki allerdings überschätzt, weil die Verluste fehlen. Man sollte das wissen, bevor man dem ersten Wert vertraut.

Wie ich es angehen würde

  • Nur beobachten: Inverter-AP oder, wenn die Firmware es erlaubt, die eigene IP des Wechselrichters. Wer den WLAN-Aufwand scheut und keinen Dongle hat, nutzt RS485 mit USB-Adapter. Der Dongle ist das, was die Entwickler selbst nicht empfehlen, und bleibt dennoch oft die einzige Option, wenn er ohnehin Teil einer Mehrwechselrichter-Anlage ist.
  • Speicher nach Preis steuern: Dongle oder AP mit elevated permissions, feste IP, ein einziger Client. Automatisierungen sollten Fehler abfangen, denn Timeouts gehören bei dieser Schnittstelle zum Alltag. Vorher einmal die FusionSolar-Werte notieren, damit Sie nach dem ersten Experiment sehen, was sich verändert hat.
  • Kein Zweitsystem parallel: evcc, Home Assistant und eine zweite Auswertung gleichzeitig auf demselben Modbus-Port gehen nur über einen Proxy. Wie Modbus-Steuerung bei einem anderen Hersteller aussieht, zeigt der Vergleich mit Kostal Plenticore, bei dem die offizielle Integration über eine REST-Schnittstelle läuft. Und wie ein lokales Modbus-Setup ganz praktisch aussieht, steht im Marstek-Venus-E-Tutorial.
Herssens hat am Ende nichts an der Integration geändert, sondern am Weg zum Wechselrichter. Mein Eindruck nach der Lektüre der Issues: Meistens liegt es genau da. Feste IP, ein einziger Client, eine kurze und stabile Strecke, und der SUN2000 gehört zu den besser dokumentierten Wechselrichtern, die man ins Heimnetz hängen kann.

Quellen: GitHub-Repository wlcrs/huawei_solar (README, Releases 2.1.2 bis 2.1.5, Issues #714 und #1440), Wiki-Seiten „Connecting to the inverter“, „Force charge discharge battery“, „Time of Use control“, „Capacity control“, „Daily Solar Yield“ und „Confirmed firmware versions“.