Hi all,
I’ve published a custom integration for Sungrow SHx residential hybrid inverters: local Modbus TCP monitoring plus EMS controls. No cloud account, no installer password, no iSolarCloud — it talks to the inverter on your LAN.
Repo: Wingman3434/sungrow-shx-inverter-hacs
Caveat up front: this is a community testing build and it has only been tested on my own installation — an SH20T with an SBH300 battery. Other models are unverified, which is the main reason I’m posting: I want testers on other hardware.
What it does
- Sensors for PV, household load, grid import/export, battery, backup and operating state, plus firmware
- 120 sensor descriptions, 7 binary flags, 9 number entities, 3 switches, 3 register-backed selects
- A composed Operating preset selector covering the usual modes: self-consumption (max / no battery discharge), zero export, max export, battery bypass, forced charge/discharge
- Two opt-in command buttons
- Model-aware entities across 40 recognised model codes
- Redacted diagnostics, reconfiguration, options flow, outage-aware energy caching
Install (HACS custom repository)
- HACS → ⋮ → Custom repositories
- Repository: Wingman3434/sungrow-shx-inverter-hacs, type Integration → Add
- Search HACS for Sungrow SHx Inverter → Download →
0.0.5 - Restart Home Assistant, then Settings → Devices & services → Add integration
One-click: Open your Home Assistant instance and open a repository inside HACS
Requires Home Assistant 2026.9.2+ and HACS 2.0.0+. It is not in the HACS default catalogue — HACS doesn’t accept integrations in this class as defaults — so the custom-repository route is how it installs.
Connecting
- Prefer the inverter’s internal LAN port; give it a fixed IP or a DHCP reservation.
- WiNet-S works but is slower, exposes fewer registers, and generally needs a larger message gap.
- Host, port (normally 502), unit ID and message gap are entered when you add the integration. One config entry per inverter serial.
- It declares HA’s built-in
modbusintegration as a dependency — nothing extra to install. - If you already poll the inverter another way (the upstream YAML package, another Modbus config, etc.), disable it first — one client per inverter.
The register map and the groundwork for all of this come from Martin Kaiser’s project, mkaiser/Sungrow-SHx-Inverter-Modbus-Home-Assistant (MIT). Register semantics are derived from that map plus Sungrow’s documented register list; there’s no physical validation beyond my own inverter. All attribution notes are in the repo.
Known gaps
- iHomeManager, Logger1000, wallboxes and the iSolarCloud cloud API are not supported.
If you try it, please report: inverter model code + firmware, LAN port or WiNet-S, which entities and controls work and which don’t, and the diagnostics dump (⋮ → Download diagnostics). Issues: github.com/issues
Small note: this integration has been built with AI assistance under my direction — I review, test and take responsibility for everything in the repo.