All devices

Fronius · Solar inverter

Symo / Primo / Tauro / GEN24 Plus (SunSpec) Modbus register map

Download JSONSupplier documentationSuggest an edit

Default configuration

Protocol
Modbus TCP
Port
502
Unit ID
1
Addressing
0-based
Byte order
Big endian
Word order
High word first

Register map

AddressCountNameTypeUnitScaleAccess
400002
SunSpec identifier ("SunS")
0x53756E53. Present on every SunSpec device.
UInt32-1R
400021
SunSpec model ID (common)
1 = SunSpec common model.
UInt16-1R
400031
SunSpec common model length
Number of registers that follow this field (65 on Fronius devices). Use it to check the base address.
UInt16-1R
4000416
Manufacturer
"Fronius".
Ascii-1R
4002016
Model
Device model, e.g. "Symo 10.0-3-M" or "Primo GEN24 8.0 Plus".
Ascii-1R
4005216
Serial number
Ascii-1R
400691
SunSpec model ID (inverter)
111 = single phase, 112 = split phase, 113 = three phase (float encoding). With the inverter's "int+SF" setting the model IDs are 101/102/103 at the same address and the register layout is different.
UInt16-1R
400701
SunSpec inverter model length
60 registers follow for the float (111-113) models.
UInt16-1R
400712
AC current, total
A (sum of active phases).
Float32A1R
400732
AC current, phase A
Float32A1R
400752
AC current, phase B
Float32A1R
400772
AC current, phase C
Float32A1R
400792
AC voltage, phase A-B
Not available on all models; single-phase devices report 0 or NaN.
Float32V1R
400812
AC voltage, phase B-C
Float32V1R
400832
AC voltage, phase C-A
Float32V1R
400852
AC voltage, phase A-N
Float32V1R
400872
AC voltage, phase B-N
Float32V1R
400892
AC voltage, phase C-N
Float32V1R
400912
AC active power
Total AC power; negative when the inverter consumes (e.g. night-time standby of a battery unit).
Float32W1R
400932
AC frequency
Float32Hz1R
400952
AC apparent power
Float32VA1R
400972
AC reactive power
Float32var1R
400992
Power factor
cos φ; negative = under-excited (inductive), positive = over-excited (capacitive).
Float32-1R
401012
AC lifetime energy
Total energy fed in. Divide by 1000 for kWh.
Float32Wh1R
401032
DC current
Reports "not implemented" on inverters with several DC inputs; per-input data is in SunSpec model 160.
Float32A1R
401052
DC voltage
Reports "not implemented" on inverters with several DC inputs; per-input data is in SunSpec model 160.
Float32V1R
401072
DC power, all inputs
Float32W1R
401092
Cabinet temperature
Float32°C1R
401112
Heat sink temperature
Float32°C1R
401171
Inverter operating state
1 = Off, 2 = Sleeping, 3 = Starting, 4 = MPPT (normal), 5 = Throttled, 6 = Shutting down, 7 = Fault, 8 = Standby.
UInt16-1R
401181
Vendor operating state
Fronius state code; see the state code table in the Modbus manual.
UInt16-1R
401192
Inverter events
Bit field, SunSpec model 111-113 Evt1. Bit 0 = ground fault, 2 = DC disconnect, 4 = grid disconnect, 5 = cabinet open, 6 = manual shutdown, 7 = over temperature, 8 = blown fuse, 9 = under temperature, 10 = memory loss, 11 = arc detection, 13 = input under voltage, 14 = input over current.
UInt32-1R
401311
SunSpec model ID (nameplate)
120 = nameplate model.
UInt16-1R
401321
SunSpec nameplate model length
UInt16-1R
401331
Device type (DERType)
4 = PV inverter.
UInt16-1R
401341
Rated active power (WRtg)
Fronius reports WRtg_SF = 1, so the raw value is in 10 W steps.
UInt16W10R
401361
Rated apparent power (VARtg)
Fronius reports VARtg_SF = 1.
UInt16VA10R
402371
SunSpec model ID (immediate controls)
123 = immediate controls model.
UInt16-1R
402381
SunSpec immediate controls model length
UInt16-1R
402411
Grid connect / disconnect (Conn)
1 = connect, 0 = disconnect. Only honoured when remote control via Modbus is enabled on the inverter's web interface.
UInt16-1RW
402421
Active power limit (WMaxLimPct)
Percentage of WMax; Fronius reports WMaxLimPct_SF = -2, so 5000 = 50 %. Enable the limit with WMaxLim_Ena. Write the value first, then enable.
UInt16%0.01RW
402431
Active power limit start time (WMaxLimPct_WinTms)
Ramp-in time; 0 = immediate.
UInt16s1RW
402441
Active power limit return time (WMaxLimPct_RvrtTms)
0 = no automatic return to the previous limit.
UInt16s1RW
402451
Active power limit ramp time (WMaxLimPct_RmpTms)
UInt16s1RW
402461
Active power limit enable (WMaxLim_Ena)
0 = limit inactive, 1 = limit active.
UInt16-1RW
402471
Power factor setpoint (OutPFSet)
Fronius reports OutPFSet_SF = -3, so 950 = 0.95. Enable with OutPFSet_Ena; negative values are under-excited.
Int16-0.001RW
402511
Power factor setpoint enable (OutPFSet_Ena)
0 = inactive, 1 = active.
UInt16-1RW
402631
SunSpec model ID (multiple MPPT)
160 = multiple MPPT inverter extension model. Holds the per-DC-input values that the inverter model leaves unimplemented on multi-input devices; on battery units modules 3 and 4 carry the battery charge and discharge DC values.
UInt16-1R
402641
SunSpec MPPT model length
48 registers for two DC inputs (88 on GEN24 Plus units with a battery, which add modules 3 and 4).
UInt16-1R
402671
MPPT DC power scale factor (DCW_SF)
SunSpec scale factor for the module DC power (and 40268 for DC energy); auto-scaled by the inverter, 10^SF.
Int16-1R
402681
MPPT DC energy scale factor (DCWH_SF)
SunSpec scale factor for the module lifetime energy, 10^SF.
Int16-1R
402841
MPPT 1 DC power
DC power of input 1; engineering value = raw x 10^DCW_SF (40267).
UInt16W1R
402852
MPPT 1 lifetime energy
Engineering value = raw x 10^DCWH_SF (40268).
UInt32Wh1R
403041
MPPT 2 DC power
DC power of input 2; engineering value = raw x 10^DCW_SF (40267).
UInt16W1R
403052
MPPT 2 lifetime energy
Engineering value = raw x 10^DCWH_SF (40268).
UInt32Wh1R
403531
SunSpec model ID (basic storage control)
124 = basic storage control model. Only present on GEN24 Plus (hybrid) units with a battery.
UInt16-1R
403541
SunSpec storage model length
UInt16-1R
403551
Maximum charge power (WChaMax)
Reference value for the charge and discharge limits. 0 when no battery is connected. Fronius reports WChaMax_SF = 0.
UInt16W1R
403581
Storage control mode (StorCtl_Mod)
Bit field: 1 = charge limit active, 2 = discharge limit active, 3 = both.
UInt16-1RW
403601
Minimum reserve state of charge (MinRsvPct)
Fronius reports MinRsvPct_SF = -2 (5000 = 50 %).
UInt16%0.01RW
403611
Battery state of charge (ChaState)
Usable energy as a percentage of the capacity rating; Fronius reports ChaState_SF = -2.
UInt16%0.01R
403641
Battery operating state (ChaSt)
1 = Off, 2 = Empty, 3 = Discharging, 4 = Charging, 5 = Full, 6 = Holding, 7 = Testing.
UInt16-1R
403651
Discharge limit (OutWRte)
Limit as % of WChaMax; Fronius reports InOutWRte_SF = -2, so 5000 = 50 %. Negative values force charging.
Int16%0.01RW
403661
Charge limit (InWRte)
Limit as % of WChaMax (InOutWRte_SF = -2). Negative values force discharging.
Int16%0.01RW
403701
Allow grid charging (ChaGriSet)
0 = no charging from the grid, 1 = charging from the grid allowed. AND-ed with the setting on the inverter's web interface.
UInt16-1RW

Notes

Fronius inverters speak SunSpec Modbus TCP on the Datamanager's IP, unit ID 1, port 502. Modbus TCP must be enabled in the inverter's web interface (Communication -> Modbus -> TCP, slave = 1). This map is the "float" variant of Fronius' official register-map spreadsheet for GEN24/Primo/Symo (linked from the Modbus TCP manual): common model at 40000, inverter model 111/112/113 at 40069, nameplate model 120 at 40131, immediate controls model 123 at 40237, multiple MPPT model 160 at 40263 (module 1 DC power at 40284, module 2 at 40304; on GEN24 Plus units modules 3 and 4 report the battery charge and discharge DC values) and, with a battery installed, basic storage control model 124 at 40353. If the inverter is set to "int+SF" instead of "float", models 101/102/103 are used at 40069 and every following model moves down by 10 registers (nameplate 40121, controls 40227, multiple MPPT 40253, storage control 40343). Fronius documents its scale factors as fixed values (WMaxLimPct_SF = -2, OutPFSet_SF = -3, MinRsvPct_SF = -2, ChaState_SF = -2, InOutWRte_SF = -2), so they are applied here as plain factors; only the MPPT DC power and energy scale factors are auto-scaled by the inverter, which is why those two scale-factor registers are listed. The SunSpec end block (0xFFFF) sits at 40313 without a battery and at 40379 with one, which is a quick check that the chain matches this map. Symo, Primo, Tauro and Verto share this layout and base address; Verto models add further MPPT blocks before the end block. A connected energy meter has its own unit ID (200 by default) and its own SunSpec chain. Fronius warns that cyclical writes wear the device, so write setpoints only when they change. Addresses here are wire (0-based) addresses; the vendor spreadsheet numbers from 1, so its 40070 is 40069 here. Batteries: Fronius Reserva/Reserva Pro, BYD Battery-Box HVS/HVM and LG RESU FLEX - https://www.fronius.com/en/solar-energy/solar-solutions/solar-energy-storage/compatible-batteries.