Sungrow SHx Inverter — local Modbus monitoring + EMS controls (HACS custom repo)

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)

  1. HACS → ⋮ → Custom repositories
  2. Repository: Wingman3434/sungrow-shx-inverter-hacs, type Integration → Add
  3. Search HACS for Sungrow SHx Inverter → Download → 0.0.5
  4. 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 modbus integration 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.

What’s the difference to the existing integrations for Sungrow?

Its based on GitHub - mkaiser/Sungrow-SHx-Inverter-Modbus-Home-Assistant: Home Assistant integration for Sungrow inverters: SH*RT series (SH10RT), SHx.RS series (SH3.RS), SH*K series (SH4K6), SxT-series (S20T) · GitHub but this one can be installed and upgraded via the HACS manager. No manual copy and paste required. The end goal is to make a HA Core Package but I want to test a validate with a HACS Integration first.

1 Like