!Sungrow-Hybridwechselrichter an einer Holzwand, daneben ein Techniker bei der Montage
Am 26. August 2026 meldete ein Nutzer im GitHub-Repository der wohl bekanntesten Sungrow-Anbindung für Home Assistant ein Problem, das auf den ersten Blick wie ein Tippfehler aussah. Sein Wechselrichter trug die Firmware SAPPHIRE-H 95.14, und der Schieberegler für die Einspeisebegrenzung in Watt funktionierte nur noch zwischen 0 und 1000. Stellte er „1000" ein, zeigte der Regler hinterher 10000 an. Ein weiterer Nutzer bestätigte am 10. September: „Setting it to 700 sets it to my required 7000." In der Weboberfläche des WiNet-S sei die Eingabe von 0,0 bis 10,0 verlangt.
Der Maintainer-Kollege Gnarfoz verwies auf Sungrows Dokumentation: Die Begrenzung in Watt liege in Register 13074, die in Zehntelprozent in Register 13088, und wenn beide gesetzt seien, gewinne die Prozentangabe. Ob ein Firmware-Update das Verhalten des Wechselrichters verändert hatte, ließ sich im Thread nicht klären. Der Stale-Bot schloss das Issue am 18. Oktober ohne Fix.
Das ist ein ganz guter Eindruck davon, was Sie bei Sungrow erwartet: eine ordentlich dokumentierte Schnittstelle, ein engagiertes Community-Projekt und Firmware-Updates, bei denen man nie genau weiß, was sich ändert. Sungrow veröffentlicht laut der Projekt-FAQ ein bis drei Updates pro Jahr, aber kein Changelog.
Keine Integration, sondern eine YAML-Datei
Das Projekt heißt Sungrow-SHx-Inverter-Modbus-Home-Assistant und stammt von mkaiser. Wer „Integration" hört, denkt an HACS und einen Einrichtungsdialog. Das gibt es hier nicht. Die Installationsanleitung sagt es ausdrücklich: Es sei keine Integration im Sinne von Home Assistant, sondern ein Konfigurationsprozess. Sie kopieren modbus_sungrow.yaml in einen Ordner integrations, binden sie als Package in der configuration.yaml ein, tragen vier bis fünf Werte in die secrets.yaml ein und starten Home Assistant neu. Ein Neustart ist Pflicht, ein Neuladen der YAML reicht laut Anleitung nicht.
Den Stand zum 24. Oktober 2026: Das Repository hat rund 705 Sterne, der letzte Push stammt vom 19. Oktober. Die Datei selbst trägt das Release-Datum 19. Juni 2026. Zum 1. Januar 2026 wurde das Projekt nach fünf Jahren auf eine neue Codebasis umgestellt („Version 2"), mit Hilfe von @theunknown86 und anderen. Die alte Version liegt im Branch 2025-legacy. Wer von früher kommt, braucht die Migrationsanleitung, denn unter anderem wurde das Secret sungrow_modbus_slave in sungrow_modbus_device_address umbenannt. Die GitHub-Tags wie v0.1.0a17 vom 17. Oktober betreffen übrigens das Survey-Werkzeug, mit dem Nutzer ihren Wechselrichter auslesen und das Ergebnis fürs Projekt bereitstellen können, nicht die YAML selbst.
Unterstützt wird, was Sungrow in seinen Modbus-Dokumenten beschreibt. Das README nennt als Hauptentwicklungsgerät einen SH10RT mit Pylontech-Force-H1-Batterie (14,4 kWh), „andere" wie SHRS und SHRT-V112 laufen teilweise. Die Registerbelegung basiert auf Sungrows „Communication Protocol of Residential Hybrid Inverter" (V1.1.11, Stand 19. November 2025), das man über den Sungrow-Support bekommt. Der iHomeManager spricht laut FAQ eine andere Modbus-Map und wird nicht unterstützt.
LAN-Port oder WiNet-S
Der erste Satz der Übersicht im README ist eine Empfehlung: Wenn der Wechselrichter einen internen LAN-Port hat, nehmen Sie den. Ethernet und WLAN des WiNet-S funktionieren auch, laufen aber „sometimes slightly slower" und mit Einschränkungen verbunden, welche Daten Sungrow freigibt. Die FAQ wird deutlicher: Der WiNet-S-Dongle sei eine häufige Fehlerquelle, die Software dahinter hinke dem nativen Port hinterher.
Zwei Details dazu aus den Dokumenten und Issues:
- Den internen LAN-Port haben die SH-RT, aber nicht die SH-T-Reihe. In Issue #769 schrieb jemand mit zwei SH15T von der „internen LAN-Buchse", worauf Gnarfoz entgegnete, die SHxT habe keine solche. Wer einen Dreiphasen-Hybrid der T-Reihe hat, kommt am WiNet-S nicht vorbei.
- Der Port ist werksseitig teilweise abgeschaltet. Die FAQ beschreibt den Weg in der iSolarCloud-App: Support, Local Access, Anmeldung als
adminmit dem festen Passwortpw8888, dann More, Communication Settings und „Inverter ETH port" aktivieren. Das Passwort lässt sich laut Projekt nicht ändern.
sungrow_modbus_wait_milliseconds, die Pause zwischen zwei Modbus-Nachrichten. Das README schlägt 5 Millisekunden für LAN und „20 or higher" für den WiNet-S vor, die Installationsanleitung nennt 30. Der Maintainer räumte in der Ankündigung ein, er habe vergessen, diesen Patch aus der alten Version zu übernehmen. Der Wert gehört seitdem in die secrets.yaml, und er soll laut Maintainer die Stabilität der WiNet-S-Verbindungen verbessern.
Dazu kommt ein Unterschied bei der Batterie: Das Secret sungrow_modbus_sbr_device_address (Standard 200) ist für SBR-Batterien gedacht und über den WiNet-S laut Kommentar in der secrets.yaml nicht erreichbar. Einzelne Batteriewerte fehlen Ihnen daher über den Dongle womöglich, selbst wenn alles andere läuft.
Wenn die Verbindung abreißt
Die Fehlerliste im Repository ist nützlich, weil sie zeigt, was in der Praxis schiefgeht.
Der häufigste Grund ist ein zweiter Client. Sungrow-Geräte, so Gnarfoz in #769, seien notorisch unglücklich, wenn mehr als ein Modbus-Master mit ihnen spricht. In diesem Fall hatte der Fragesteller parallel FHEM laufen, das den Wechselrichter problemlos las, während Home Assistant nur „Not connected" meldete. Der Rat: alle anderen Clients abschalten, Wechselrichter komplett neu starten. Der Fragesteller vermutete stattdessen die Modbus-Überarbeitung in Home Assistant 2026.9, denn ein reiner pymodbus-Test aus dem Container verband sich sofort. Das Issue schloss der Stale-Bot am 17. Oktober nach 30 Tagen ohne Aktivität.
Der zweite Grund ist ein Wechselrichter, der nach einem Netzwerkwechsel keine IP-Adresse mehr zieht. Die FAQ beschreibt einen vollständigen Kaltstart in acht Schritten: AC aus, zehn Sekunden warten, Batterie aus, zehn Sekunden warten, DC-Schalter aus, zwei Minuten warten, dann in umgekehrter Reihenfolge wieder an, anschließend fünf Minuten Geduld, bis der Router die IP zeigt. Bei SH-RT hilft manchmal schon, das LAN-Kabel 60 Sekunden zu ziehen.
Der dritte Grund sind WiNet-S-Abbrüche, bei denen die Verbindung nach einiger Zeit nicht zurückkommt. Die FAQ empfiehlt dann einen Modbus-Proxy als Add-on (ha-modbusproxy), den Sie zwischen Home Assistant und Wechselrichter schalten. Das hilft nebenbei auch dann, wenn Sie evcc oder eine zweite Auswertung parallel betreiben wollen.
Ein Test ohne Home Assistant gehört zur Fehlersuche: Mit QModMaster unter Windows oder mbpoll unter Linux lesen Sie direkt aus dem Wechselrichter. Antwortet er dort, liegt es an Ihrer Konfiguration. Antwortet er nicht, am Gerät oder am Netz.
Die Batterie steuern: EMS-Modus und Zwangsladung
Der interessante Teil beginnt, wenn Sie nicht nur lesen, sondern schreiben. Die YAML legt dafür mehrere Select-Entitäten und Zahlenfelder an, die auf Holding-Register des Wechselrichters schreiben. Dazu gehören laut Quelltext:
- EMS mode (Register 13050): Self-consumption (Standard, Wert 0), Forced mode (2, im Datenblatt inzwischen „compulsory mode"), External EMS (3) und VPP (4).
- Battery forced charge discharge (Register 13051): Stop (
0xCC, Standard), Forced charge (0xAA), Forced discharge (0xBB). - Forced charge/discharge power (Register 13052): Das Datenblatt sagt bei SHK 0 bis 5000 W und bei SH.0RT 0 bis 100 Prozent. Der Entwickler notiert im Code, bei seinem SH10RT werde in Watt geschrieben.
- Battery min SoC und max SoC (Register 13059 und 13058).
select.ems_mode auf Self-consumption und select.battery_forced_charge_discharge auf Stop.
Im Alltag brauchen Sie meist zwei Dinge. Eine Automatisierung, die bei günstigem Strompreis die Szene „Forced Charge" aktiviert, und eine, die danach wieder auf Eigenverbrauch zurückstellt. Das Zurückstellen vergessen Sie genau einmal: Läuft die Zwangsladung weiter, lädt die Batterie ohne Rücksicht auf den Hausverbrauch aus dem Netz. Was dynamische Tarife dafür hergeben, steht im Vergleich der dynamischen Stromtarife 2026.
Beim Schreiben sollten Sie die Gegenseite kennen. Das Projekt blendet gefährliche Elemente im Standard-Dashboard hinter einem Schalter „dangerous mode" aus. Das ist keine Spielerei: Eine falsch gesetzte Einspeisebegrenzung (siehe oben) kostet Sie Geld, ein zu hoch gesetztes Ladeleistungslimit womöglich Ihre Batterie. Deshalb verlangt die secrets.yaml auch sungrow_modbus_battery_max_power. Der Maintainer rät zur vorsichtigen Variante, also dem unteren Ende des Spannungsbereichs mal Nennstrom statt der Nennspannung. Bei einer SBR096 sind das konservativ 4860 Watt statt nominal 5760 Watt, bei einer SBR128 6480 statt 7680 Watt.
Firmware-Hürden bleiben das Restrisiko. Die FAQ räumt ein, dass ein Update ohne Changelog zu unerwartetem Verhalten führen kann, und das Beispiel mit der Einspeisebegrenzung zeigt, wie das aussieht. Wenn Ihr System läuft, aktualisieren Sie nicht aus Gewohnheit. Und falls doch: vorher die Werte aus dem Info-Tab des Dashboards notieren, denn dort stehen die Firmware-Strings, die Sie in jedem Fehlerbericht angeben müssen.
Energie-Dashboard einrichten
Das README erwähnt, die Konfiguration sei seit der Version 2 an das neue Energie-Dashboard angepasst, das Home Assistant im Dezember 2025 eingeführt hat. Die Zuordnung aus der Projektdokumentation:
- Netzbezug: Total imported energy
- Einspeisung: Total exported energy
- Netzleistung: Meter active power
- Solarertrag: Total PV generation
- Solarleistung: Total DC power
- Batterie laden: Total battery charge
- Batterie entladen: Total battery discharge
- Batterieleistung: Battery discharging power signed
Für wen sich das lohnt
Wenn Ihr Wechselrichter einen internen LAN-Port hat, ist der Fall klar: Kabel, Port in der App freischalten, feste IP, 5 Millisekunden Pause, fertig. Mit dem WiNet-S funktioniert es ebenfalls, nur ruckeliger. Wer zusätzlich Zeitfenster und Preise steuern will, sollte mit der Szene für Zwangsladung beginnen und sie einen Tag lang beobachten.
Wer Speicher bei einem anderen Hersteller nach Preis steuert, findet im Beitrag zu Huawei SUN2000 und LUNA2000 eine verwandte Modbus-Geschichte mit anderen Fallstricken. Dort rät der Hersteller selbst vom Dongle ab. Bei Sungrow tut das die Community.
Quellen: GitHub-Repository mkaiser/Sungrow-SHx-Inverter-Modbus-Home-Assistant (README, doc/installation.md, doc/usage.md, doc/faq.md, doc/changelog.md, doc/dashboard.md, secrets.yaml, modbus_sungrow.yaml vom 19. Juni 2026, Issues #763 und #769).