Sungrow · Protocol gateway
iHomeManager (iHM) Modbus register map
Default configuration
- Protocol
- RS485
- Port
- 502
- Unit ID
- 247
- Addressing
- 0-based
- Byte order
- Big endian
- Word order
- Low word first
- Baud rate
- 9600
- Parity
- None
- Data bits
- 8
- Stop bits
- 1
This device has an RS-485 interface. Reach it through a Modbus RTU-to-TCP gateway, configured with the factory serial settings above.
Register map
| Address | Count | Name | Type | Unit | Scale | Access |
|---|---|---|---|---|---|---|
| 4357 | 1 | Phase A voltage, phase-to-neutral | UInt16 | V | 0.1 | R |
| 4359 | 1 | Phase B voltage, phase-to-neutral | UInt16 | V | 0.1 | R |
| 4361 | 1 | Phase C voltage, phase-to-neutral | UInt16 | V | 0.1 | R |
| 8144 | 2 | Total rated active power The source states 0.1 kW resolution and scales the reading by 100 to get watts. | UInt32 | W | 100 | R |
| 8154 | 2 | Total active power (PV) PV production of the plant behind the iHM; reads together with 8155-8162 as one 9-register block. | Int32 | W | 10 | R |
| 8156 | 2 | Total active power at the grid meter Positive = import, negative = export. | Int32 | W | 10 | R |
| 8160 | 2 | Battery power Positive = discharge, negative = charge. | Int32 | W | 10 | R |
| 8162 | 1 | State of charge | UInt16 | % | 0.1 | R |
| 8175 | 2 | Import energy at the grid meter | UInt32 | kWh | 0.1 | R |
| 8177 | 2 | Export energy at the grid meter | UInt32 | kWh | 0.1 | R |
| 8558 | 2 | Phase A active power Signed: positive = import, negative = export. The source reads 8559-8564 as one 6-register block. | Int32 | W | 1 | R |
| 8560 | 2 | Phase B active power | Int32 | W | 1 | R |
| 8562 | 2 | Phase C active power | Int32 | W | 1 | R |
Read this device live with Modbus Connect, free for Windows, macOS and Linux
Related guides
Notes
Secondary source: evcc template "sungrow-ihm" (products: Sungrow iHomeManager), checked 2026-11 at https://github.com/evcc-io/evcc/blob/master/templates/definition/meter/sungrow-ihm.yaml - no Sungrow register document for the iHM is public, so the addresses, the 9600 8N1 RS-485 framing, unit ID 247 and port 502 all come from that template and are marked secondary here. The register numbers in the template's comments are the 1-based reference numbers (comment "8155" against address 8154); the addresses stored here are the wire addresses the template actually polls, i.e. zero based. All 32-bit values are read with evcc's `int32s` / `uint32s` encoding, which is low-word-first, so the seed declares word order LowFirst; 16-bit rows are unaffected. The iHM is a plant-level manager: the values describe the meter and battery behind it, and per-inverter data stays in `sungrow-sh-sg` / the inverter's own map. Deliberate omissions: the identity block, the device-state and fault registers and the battery charge/discharge limits are not in the template and therefore not claimed; register 4357 is flagged "undocumented" in the source itself. Poll the 8154 block in one request (9 registers) as the template does, otherwise the iHM answers with gaps.