Hi all,
I’ve been building a custom integration for Sungrow solar/battery systems that talks to the official iSolarCloud OpenAPI (not the Modbus/local route, and not the reverse-engineered app API — the real developer portal API with an app key + secret key). Sharing it here in case it’s useful to others with Sungrow hybrid inverters.
What it does
-
Config flow setup — no YAML. Plant ID is optional; the integration auto-discovers it from your account if you leave it blank.
-
Sensors for plant, hybrid inverter (SH-series), and battery/BMS (SBR-series) devices: PV power, load power, daily/total yield, feed-in and purchased energy, battery SoC/SoH/temperature, charge/discharge power, and more — around 40+ entities depending on your system.
-
Sensor names and units are pulled from iSolarCloud’s own point metadata where available, so they should stay accurate as Sungrow’s API evolves.
-
Optional device control (off by default, opt-in via the integration’s Configure dialog): charge/discharge command, charge/discharge power, SOC upper/lower limits, forced charging schedule. This writes real parameters to your inverter, so it’s gated behind an explicit toggle.
-
Installable via HACS as a custom repository.
Why iSolarCloud API instead of Modbus/local
I wanted something that didn’t need a local TCP/RS485 connection to the inverter and could also support cloud-side control endpoints. Trade-off is obviously cloud dependency and iSolarCloud’s polling cadence (~5 min).
Heads up: this is genuinely early. I only started building it a couple of days ago, it’s tested against exactly one system (my own — an SH10RT + SBR256), and I’m still actively finding and fixing bugs (one already: an early version of the SOC-limit control applied 1/10th of the value you set, fixed in v0.2.2). It is not battle-tested, error handling around Sungrow’s API quirks is still evolving, and the config format may still change between releases. If you try it, please treat it as beta — back up nothing important on it yet, watch the logs, and open a GitHub issue if something looks wrong rather than assuming it’s your setup. Feedback and bug reports are very welcome; I just don’t want anyone assuming this is a polished, widely-used integration yet.
Feel free to ask questions or file issues on GitHub. Happy to hear if it works (or doesn’t) on other Sungrow hybrid models.