About
Sungrow iSolarCloud brings Sungrow inverter and plant data from the iSolarCloud cloud API into Home Assistant. It finds every plant on the account and polls each on a schedule, grouping readings under the inverter, battery, meter and WiNet-S they come from. Sensors carry device and state classes so the data feeds the Energy dashboard, and each device gets fault and connectivity binary sensors. Number and select entities cover charge and discharge power, state of charge limits, forced charging, and export and active power limiting. A forced dispatch duration can revert a forced charge or discharge to stop automatically, and a battery mode action is also provided. A local Modbus connection through a WiNet-S dongle is available as well, and repair notices appear for rate limits and rejected requests. Setup is done in the UI.
Automatic summary of the README and code of KRoperUK/sungrow-hass. Something wrong, or are you the maintainer and want your own text here? Get in touch
Supports
Uses the vendor's cloud Needs an internet connection and an account with the vendor.
Found by itself Home Assistant spots it on the network and offers to add it.
From the Marketplace Installed through the Marketplace, formerly HACS.
Actively maintained Its author released or pushed a change in the last six months.
Provides
- Sensors
Setting it up
Install it from the Marketplace and restart Home Assistant, then add it under Settings, Devices and services.
Choose Transport Mode
- Transport mode
Connect to iSolarCloud
- Gateway Region
- AppKeyAppKey from iSolarCloud Developer Platform.
- App SecretAppSecret from iSolarCloud Developer Platform.
- App ID
- Redirect URI
Modbus Host
- WiNet-S IP / hostname
Find your Sungrow inverter
- Discovered dongle
Enter your WiNet-S address
- WiNet-S IP / hostname
- Modbus TCP portLeave at 502 for a WiNet-S dongle or the inverter's LAN port. Use another port only when connecting through a Modbus proxy (for example evcc's modbusproxy).
Local Modbus Setup
- WiNet-S IP / hostname
- Modbus TCP portLeave at 502 for a WiNet-S dongle or the inverter's LAN port. Use another port only when connecting through a Modbus proxy (for example evcc's modbusproxy).
- Inverter serial number
- Inverter model
Connect with an iSolarCloud account
- Password
- Region
Select plants
- Plants
After setup
- Polling interval (seconds)
- Extra measure points (point_id=code, comma separated)
- Create per-device sensors (EV chargers, meters, extra batteries)
- WiNet-S Modbus host (enter to enable hybrid, clear to disable)
- Schedule 1 — start (HH:MM local, or sunrise/sunset±HH:MM)
- Schedule 1 — end (HH:MM local, or sunrise/sunset±HH:MM)
- Schedule 1 — battery mode
- Schedule 1 — days of week
- Schedule 2 — start (HH:MM local, or sunrise/sunset±HH:MM)
- Schedule 2 — end (HH:MM local, or sunrise/sunset±HH:MM)
- Schedule 2 — battery mode
- Schedule 2 — days of week
- Schedule 3 — start (HH:MM local, or sunrise/sunset±HH:MM)
- Schedule 3 — end (HH:MM local, or sunrise/sunset±HH:MM)
- Schedule 3 — battery mode
- Polling interval (seconds)
- Modbus TCP portLeave at 502 for a WiNet-S dongle or the inverter's LAN port. Use another port only when connecting through a Modbus proxy (for example evcc's modbusproxy).
- Expose raw Modbus daily_yield register dump on the sensor (debug only)
Texts from the code of KRoperUK/sungrow-hass.
Entities
- Binary sensorsConnectivity, Fault, Plant Fault, PV Generating, Battery Charging, Battery Discharging, Exporting to Grid, Importing from Grid
- NumbersCharge/Discharge Power, SOC Upper Limit, SOC Lower Limit, Forced Charge Target SOC (Window 1), Forced Charge Target SOC (Window 2), Export Limit (Power), Export Limit (%), Active Power Limit, Reactive Power Ratio Q(t), Power Factor, Forced Dispatch Duration
- SelectsForced Charging, Export Limitation, Active Power Limiting, Battery First Mode, Reactive Power Mode, Battery Mode
- SensorsModbus Status
Actions
- Backfill historical statisticsImport historical iSolarCloud data into Home Assistant long-term statistics so the History and Energy dashboards are populated immediately.Fields: Integration, Start date
- Set battery modeSet the plant battery mode (Self-consumption / Force charge / Force discharge / Stop). Optional duration overrides Forced Dispatch Duration for this command only.Fields: Mode, Duration, Battery mode entity, Device, Integration
- Refresh OAuth tokensForce an immediate OAuth token refresh on the addressed cloud entry (or every loaded cloud entry when none is specified). Useful for support triage when tokens appear stuck. Modbus-only and user-account entries have no OAuth tokens to refresh and are rejected.Fields: Integration
- Read Modbus registersRead a raw Modbus register block from a local Modbus entry and return the 16-bit words plus u16/s16/u32/s32 decodings as a response. Read-only — never writes. Use it to verify a register address, width, scale or encoding against your hardware and paste the result into an issue.Fields: Integration, Register type, Start address, Count, Slave ID
Troubleshooting
- DiagnosticsDownloads a diagnostics file to attach to a bug report.
- Repair noticesNotices it can show in Settings, Repairs:iSolarCloud rejected the request (whitelist), iSolarCloud API rate limit reached, Historical backfill finished with gaps, Dispatch keepalive stopped, Dispatch command was not applied, Charge/discharge power limit could not be determined, Approaching the iSolarCloud API call limit
From the README
Custom component that integrates Sungrow inverters via the iSolarCloud API into Home Assistant using the sungrow-isolarcloud library (a maintained fork of pysolarcloud).
It authorizes once against your iSolarCloud OpenAPI application, discovers every plant on the account, and polls each on a schedule — mapping your inverters, batteries, meters and WiNet-S onto Home Assistant's device tree, with the correct device/state classes so everything feeds straight into the Energy dashboard.
- Cloud Polling — fetches real-time data from the iSolarCloud API.
- Auto-Discovery — automatically finds all plants linked to your account.
- Sensors — creates sensors for every available data point (power, energy, battery SOC, etc.) with correct device/state classes for the Energy dashboard.
- Device health & diagnostics — a per-device Fault (problem) and Connectivity (online/offline) binary sensor, plus device-level diagnostic sensors (inverter temperature, MPPT voltages/currents, grid…
- Per-device grouping — plant readings are automatically grouped under the physical device they come from (inverter, battery, meter, WiNet-S), nested beneath the plant, so the Home Assistant device…
- Plant health & tariffs — plant-wide alarm/fault counts, nameplate power, and your configured import/export electricity prices, surfaced as sensors on the plant device.
- Custom measure points — request additional iSolarCloud point IDs (e.g. battery charge/discharge power or EV charger values) via the options flow.
Shows in Vulpo
Select card, Chart card, Apple Watch.Information
- Installs
- 735 sharing analytics
- GitHub stars
- 18
- Connection
- Uses the vendor's cloud
- Upkeep
- Updated in the last 6 months
- Version
- v6.7.0,
- Category
- Energy, Solar and batteries
- Kind
- Marketplace integration
- Needs
- Needs the Marketplace (HACS on 2026.10 and older)
- Domain
sungrow- Issues
- Report an issue












