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)

FunctionRegister(s)Raw formatScalingMetricApp output
FC0340083S16× 10^40084Instantaneous AC power, WWatts
FC0340084S16Scale factorPower scale factor (W_SF)Scales 40083
FC0340093–40094U32× 10^40095Lifetime energy productionWh
FC0340095S16Scale factorLifetime-energy scale factor (WH_SF)Scales 40093–40094
FC0340079U16× 10^40082AC voltage, phase A / line-to-neutralVolts
FC0340080–40081U16Not usedAdditional AC voltage phasesRead in block, ignored
FC0340082S16Scale factorVoltage 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)FunctionDataMeaning
40005–40012FC038 registers, textManufacturer name
40013–40020FC038 registers, textModel name
40021–40024FC034 registersOptions
40025–40028FC034 registers, textFirmware / version information
40029–40036FC038 registers, textSerial number

Device discovery reads 40005–40036 as one block.

Inverter operating status

RegisterFunctionRaw typeMeaning
40107FC03U16SunSpec inverter operating status
CodeStatusHealthy?
1OffNo
2SleepingYes
3StartingYes
4ProducingYes
5ThrottledYes
6Shutting downNo
7FaultNo
8StandbyYes

Battery registers (SolarEdge and StorEdge)

Battery typeFunctionRegister(s)Raw formatScalingMetric
SolarEdge defaultFC0317707–17708Float32DirectBattery state of charge, %
SolarEdge defaultFC0317709–17710Float32DirectBattery power, W
SolarEdge StorEdgeFC0357708–57709Float32DirectBattery temperature, °C
SolarEdge StorEdgeFC0357712–57713Float32DirectBattery voltage, V
SolarEdge StorEdgeFC0357716–57717Float32DirectBattery power, W
SolarEdge StorEdgeFC0357732–57733Float32DirectBattery 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 positionRaw formatScalingMetric
40131Base + 10S16× 10^40132Instantaneous grid power
40132Base + 11S16Scale factorPower scale factor
40133–40138Base + 12 to +17VariousVA, VAR, power factor (read, ignored)
40139–40140Base + 18 to +19U32× 10^40141Cumulative exported energy
40141Base + 20S16Scale factorEnergy scale factor
40142–40143Base + 21 to +22U32Uses 40141Cumulative 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.