Modbus Reference · SunSpec
SolarEdge & SunSpec Modbus TCP registers
Register reference for reading SolarEdge inverters and other SunSpec-compliant devices (SMA, Fronius, Fimer) over local Modbus TCP: production, identification, status, battery, and meter.
Connection parameters: Modbus TCP on port 1502 (SolarEdge default; many other SunSpec brands use 502), function code FC03 (Read Holding Registers). The default unit ID is 1. Note: SMA devices commonly expose their SunSpec map at unit ID 126. SolarEdge inverters accept one Modbus TCP connection at a time.
Production registers (SunSpec inverter model)
| Function | Register(s) | Raw format | Scaling | Metric | App output |
|---|---|---|---|---|---|
| FC03 | 40083 | S16 | × 10^40084 | Instantaneous AC power, W | Watts |
| FC03 | 40084 | S16 | Scale factor | Power scale factor (W_SF) | Scales 40083 |
| FC03 | 40093–40094 | U32 | × 10^40095 | Lifetime energy production | Wh |
| FC03 | 40095 | S16 | Scale factor | Lifetime-energy scale factor (WH_SF) | Scales 40093–40094 |
| FC03 | 40079 | U16 | × 10^40082 | AC voltage, phase A / line-to-neutral | Volts |
| FC03 | 40080–40081 | U16 | Not used | Additional AC voltage phases | Read in block, ignored |
| FC03 | 40082 | S16 | Scale factor | Voltage scale factor (Voltage_SF) | Scales 40079 |
Efficient block read: 40083–40095 in one request, plus the voltage block 40079–40082.
Device identification (SunSpec common model)
| Register(s) | Function | Data | Meaning |
|---|---|---|---|
| 40005–40012 | FC03 | 8 registers, text | Manufacturer name |
| 40013–40020 | FC03 | 8 registers, text | Model name |
| 40021–40024 | FC03 | 4 registers | Options |
| 40025–40028 | FC03 | 4 registers, text | Firmware / version information |
| 40029–40036 | FC03 | 8 registers, text | Serial number |
Device discovery reads 40005–40036 as one block.
Inverter operating status
| Register | Function | Raw type | Meaning |
|---|---|---|---|
| 40107 | FC03 | U16 | SunSpec inverter operating status |
| Code | Status | Healthy? |
|---|---|---|
| 1 | Off | No |
| 2 | Sleeping | Yes |
| 3 | Starting | Yes |
| 4 | Producing | Yes |
| 5 | Throttled | Yes |
| 6 | Shutting down | No |
| 7 | Fault | No |
| 8 | Standby | Yes |
Battery registers (SolarEdge and StorEdge)
| Battery type | Function | Register(s) | Raw format | Scaling | Metric |
|---|---|---|---|---|---|
| SolarEdge default | FC03 | 17707–17708 | Float32 | Direct | Battery state of charge, % |
| SolarEdge default | FC03 | 17709–17710 | Float32 | Direct | Battery power, W |
| SolarEdge StorEdge | FC03 | 57708–57709 | Float32 | Direct | Battery temperature, °C |
| SolarEdge StorEdge | FC03 | 57712–57713 | Float32 | Direct | Battery voltage, V |
| SolarEdge StorEdge | FC03 | 57716–57717 | Float32 | Direct | Battery power, W |
| SolarEdge StorEdge | FC03 | 57732–57733 | Float32 | Direct | Battery state of charge, % |
Grid meter registers (SunSpec meter, Model 201)
The default SunSpec meter base address is 40121. Readings start at base + 10, so the default read range is 40131–40143. The base address can be changed for a different SunSpec meter location.
| Default register(s) | Relative position | Raw format | Scaling | Metric |
|---|---|---|---|---|
| 40131 | Base + 10 | S16 | × 10^40132 | Instantaneous grid power |
| 40132 | Base + 11 | S16 | Scale factor | Power scale factor |
| 40133–40138 | Base + 12 to +17 | Various | – | VA, VAR, power factor (read, ignored) |
| 40139–40140 | Base + 18 to +19 | U32 | × 10^40141 | Cumulative exported energy |
| 40141 | Base + 20 | S16 | Scale factor | Energy scale factor |
| 40142–40143 | Base + 21 to +22 | U32 | Uses 40141 | Cumulative imported energy |
Sign conventions used throughout: grid power is normalized so positive = exporting and negative = importing. Battery power is normalized so charging and discharging follow the app's convention noted per table.
Which devices use this map?
SolarEdge inverters (SetApp-era and LCD models), SMA Sunny Boy and Sunny Tripower, Fronius GEN24 and SnapINverter (via Datamanager 2.0), Fimer UNO-DM and REACT2, and other inverters implementing SunSpec models 101/103. In SolarMark, select "SunSpec Standard" when adding these devices. Setup guides: SolarEdge, SMA, Fronius.
Want this data on your phone, without a server?
These are the registers SolarMark reads. The app polls your inverter directly over your local network: live power, energy history, battery State of Charge, and grid import/export, with no cloud account and no Home Assistant server to maintain. One-time purchase with a free 14-day trial. Get it on Google Play or the App Store.
