- Home
- Modbus register maps
- Fronius
- Symo / Primo / Galvo / Symo Hybrid via Datamanager (SunSpec int+SF)
Solar inverter · Modbus register map
Fronius Symo / Primo / Galvo / Symo Hybrid via Datamanager (SunSpec int+SF) Modbus register map
Updated 16 October 2026
The Fronius Datamanager publishes each connected inverter as a SunSpec device (unit ID = inverter number) over Modbus TCP, and over RTU on Datamanager 2.0. With the int+SF model type the inverter model is 101/102/103 followed by nameplate, settings, status, immediate controls, multiple-MPPT and storage models. This map covers the 16-bit measurements, state, ratings and every writable control register.
This page lists 152 Modbus registers for the Fronius Symo / Primo / Galvo / Symo Hybrid via Datamanager (SunSpec int+SF) — 31 writable — with the table, 0-based wire address, data type, word order, scale, units and access of each, re-typed from Fronius’s own free documentation (linked below) and checked against it.
- Manufacturer
- Fronius
- Model
- Symo / Primo / Galvo / Symo Hybrid via Datamanager (SunSpec int+SF)
- Equipment type
- Solar inverter
- Registers
- 152 (31 writable)
- Transport
- Modbus TCP, Modbus RTU
- Default unit ID
- Not stated
- TCP port
- 502
- Documented addressing
- 1-based (subtract 1 for the wire address)
- Firmware
- Register map archive version 1.1.7-0 (int+SF map with Symo Hybrid model 124); manual 42,0410,2049 rev. 033-24022026.
- Also known as
- Fronius Symo, Fronius Primo, Fronius Galvo, Fronius Symo Hybrid, Fronius IG Plus, Datamanager 2.0
Integration notes: Fronius Symo / Primo / Galvo / Symo Hybrid via Datamanager (SunSpec int+SF)
Enable 'Data output via Modbus' = tcp in the Datamanager web UI, choose SunSpec Model Type int+SF, and poll unit ID = inverter number (inverter 00 = 100) on port 502. Read registers 40070-40109 (wire addresses 40069-40108) in one request and scale each value with its _SF register.
Minimum registers to map
Addresses are 0-based wire addresses. Enough to monitor and run the unit; map more as the job needs.
| Register | Name | Type | Why | Access |
|---|---|---|---|---|
| HR 40069 | Inverter ID | UINT16 | Inverter model ID (101/102/103) - confirms int+SF layout | Read |
| HR 40083 | W | INT16 | AC power | Read |
| HR 40084 | W_SF | INT16 | AC power scale factor | Read |
| HR 40107 | St | UINT16 | Operating state | Read |
| HR 40232 | WMaxLimPct | UINT16 | Active power limit % | Read/write |
| HR 40236 | WMaxLim_Ena | UINT16 | Enable/disable the power limit | Read/write |
| HR 40250 | WMaxLimPct_SF | INT16 | Power limit scale factor | Read |
Enable Modbus control & writes
Datamanager web interface > Settings > Modbus: set 'Data output via Modbus' to tcp (or rtu on Datamanager 2.0, factory default rtu there), pick SunSpec Model Type int+SF, and tick 'Inverter control via Modbus' to allow writes to models 123/124. 'Limit control' can restrict write access to listed IP addresses. Turning Modbus output off cancels any active Modbus control commands.
Communication loss & watchdog
Each control in model 123 has a *_RvrtTms fallback timer (0-28800 s) that restarts with every Modbus message received; when it expires the control ends and the next-priority control (e.g. dynamic power reduction) takes over. RvrtTms = 0 (default) means the setting stays until disabled.
Byte order & addressing
- Off-by-one: tables print SunSpec register numbers from 40001; request number minus one (40001 -> 40000).
- Changing int+SF/float (web UI or F_ModelType 216) shifts every model after the inverter model by 10 registers; F_ModelType needs the value 6 written immediately after, or it reverts.
- Scale factors are not fixed even if a value is listed - read them; they can change with firmware.
- Writes to read-only or unsupported registers are silently ignored (no exception); invalid values return exception 3.
- Power factor sign follows EEI: negative when over-excited (Q1), positive when under-excited (Q4).
Network setup
- Unit ID = inverter number set on the inverter display; inverter number 00 maps to unit ID 100. String Controls start at the String Control offset (default 101); Smart Meters at 240-244; Sensor Cards at 245-247.
- TCP port defaults to 502 (port 80 not allowed).
- RTU is only on Datamanager 2.0 and cannot be used when a Modbus energy meter is configured; baud and parity are set in the web UI. The Datamanager has no bias resistors.
- Demo mode in the web UI returns fixed data for commissioning a master without live inverters.
Watch out for
- Use a response timeout of at least 10 s with several inverters on Solar Net, query sequentially, and keep to 6 inverters per Datamanager.
- To change an active power limit, write the new WMaxLimPct and then re-write WMaxLim_Ena = 1; all five registers 40233-40237 may be written in one FC16 request.
- Event flags can stay latched; write 0xFFFF to F_Reset_All_Event_Flags (215) to clear them.
Fronius Symo / Primo / Galvo / Symo Hybrid via Datamanager (SunSpec int+SF) Modbus registers
Address = 0-based wire address (the documented number is shown under it when it differs) · Order: ABCD = high word first, CDAB = low word first · Scale: engineering value = raw × scale.
| Table | Address | Name | Description | Type | Order | Scale | Units | Access | Values / bits |
|---|---|---|---|---|---|---|---|---|---|
| HR | 211doc 212 | F_Delete_Data | Write 0xFFFF to erase ratings stored for this inverter. | UINT16 | Read/write | ||||
| HR | 212doc 213 | F_Store_Data | Write 0xFFFF to permanently store nameplate/settings ratings of all inverters. | UINT16 | Read/write | ||||
| HR | 213doc 214 | F_Active_State_Code | Fronius state code currently shown by the inverter. | UINT16 | Read | ||||
| HR | 214doc 215 | F_Reset_All_Event_Flags | Write 0xFFFF to clear event flags and the active state code. | UINT16 | Read/write | ||||
| HR | 215doc 216 | F_ModelType | Selects float or int+SF models; write 1 or 2, then 6 to confirm. | UINT16 | Read/write | 1 = Float models (111-113 / 211-213); 2 = Integer + SF models (101-103 / 201-203) | |||
| HR | 216doc 217 | F_Storage_Restrictions_View_Mode | Whether model 124 reports local (Modbus) or system-wide storage limits. | UINT16 | Read/write | 0 = Local (default); 1 = Global | |||
| HR | 40002doc 40003 | Common ID | Model ID of this block. | UINT16 | Read | ||||
| HR | 40003doc 40004 | Common L | Length of this block in registers. | UINT16 | Registers | Read | |||
| HR | 40004doc 40005 | Mn | Manufacturer name, reads Fronius. | STRING[32] | Read | ||||
| HR | 40020doc 40021 | Md | Inverter model name. | STRING[32] | Read | ||||
| HR | 40036doc 40037 | Opt | Options string (Datamanager firmware on Datamanager units). | STRING[16] | Read | ||||
| HR | 40044doc 40045 | Vr | Inverter software version. | STRING[16] | Read | ||||
| HR | 40052doc 40053 | SN | Serial number (may fall back to a controller ID). | STRING[32] | Read | ||||
| HR | 40068doc 40069 | DA | Modbus device address (unit ID). | UINT16 | Read | ||||
| HR | 40069doc 40070 | Inverter ID | Model ID of this block. | UINT16 | Read | 101 = Single phase; 102 = Split phase; 103 = Three phase | |||
| HR | 40070doc 40071 | Inverter L | Length of this block in registers. | UINT16 | Registers | Read | |||
| HR | 40071doc 40072 | A | Total AC current. | UINT16 | × 10^SF (HR 40075) | A | Read | ||
| HR | 40072doc 40073 | AphA | Phase A AC current. | UINT16 | × 10^SF (HR 40075) | A | Read | ||
| HR | 40073doc 40074 | AphB | Phase B AC current. | UINT16 | × 10^SF (HR 40075) | A | Read | ||
| HR | 40074doc 40075 | AphC | Phase C AC current. | UINT16 | × 10^SF (HR 40075) | A | Read | ||
| HR | 40075doc 40076 | A_SF | Scale factor (power of ten) for A. | INT16 | Read | ||||
| HR | 40076doc 40077 | PPVphAB | Line voltage A-B. | UINT16 | × 10^SF (HR 40082) | V | Read | ||
| HR | 40077doc 40078 | PPVphBC | Line voltage B-C. | UINT16 | × 10^SF (HR 40082) | V | Read | ||
| HR | 40078doc 40079 | PPVphCA | Line voltage C-A. | UINT16 | × 10^SF (HR 40082) | V | Read | ||
| HR | 40079doc 40080 | PhVphA | Phase A to neutral voltage. | UINT16 | × 10^SF (HR 40082) | V | Read | ||
| HR | 40080doc 40081 | PhVphB | Phase B to neutral voltage. | UINT16 | × 10^SF (HR 40082) | V | Read | ||
| HR | 40081doc 40082 | PhVphC | Phase C to neutral voltage. | UINT16 | × 10^SF (HR 40082) | V | Read | ||
| HR | 40082doc 40083 | V_SF | Scale factor (power of ten) for V. | INT16 | Read | ||||
| HR | 40083doc 40084 | W | AC active power. | INT16 | × 10^SF (HR 40084) | W | Read | ||
| HR | 40084doc 40085 | W_SF | Scale factor (power of ten) for W. | INT16 | Read | ||||
| HR | 40085doc 40086 | Hz | Grid frequency. | UINT16 | × 10^SF (HR 40086) | Hz | Read | ||
| HR | 40086doc 40087 | Hz_SF | Scale factor (power of ten) for Hz. | INT16 | Read | ||||
| HR | 40087doc 40088 | VA | AC apparent power. | INT16 | × 10^SF (HR 40088) | VA | Read | ||
| HR | 40088doc 40089 | VA_SF | Scale factor (power of ten) for VA. | INT16 | Read | ||||
| HR | 40089doc 40090 | VAr | AC reactive power. | INT16 | × 10^SF (HR 40090) | VAr | Read | ||
| HR | 40090doc 40091 | VAr_SF | Scale factor (power of ten) for VAr. | INT16 | Read | ||||
| HR | 40091doc 40092 | PF | Power factor. | INT16 | × 10^SF (HR 40092) | % | Read | ||
| HR | 40092doc 40093 | PF_SF | Scale factor (power of ten) for PF. | INT16 | Read | ||||
| HR | 40095doc 40096 | WH_SF | Scale factor (power of ten) for WH. | INT16 | Read | ||||
| HR | 40096doc 40097 | DCA | DC input current (single-input units only). | UINT16 | × 10^SF (HR 40097) | A | Read | ||
| HR | 40097doc 40098 | DCA_SF | Scale factor (power of ten) for DCA. | INT16 | Read | ||||
| HR | 40098doc 40099 | DCV | DC input voltage (single-input units only). | UINT16 | × 10^SF (HR 40099) | V | Read | ||
| HR | 40099doc 40100 | DCV_SF | Scale factor (power of ten) for DCV. | INT16 | Read | ||||
| HR | 40100doc 40101 | DCW | Total DC input power. | INT16 | × 10^SF (HR 40101) | W | Read | ||
| HR | 40101doc 40102 | DCW_SF | Scale factor (power of ten) for DCW. | INT16 | Read | ||||
| HR | 40107doc 40108 | St | SunSpec operating state. | UINT16 | Read | 1 = Off; 2 = Sleeping (auto shutdown); 3 = Starting; 4 = Producing normally (MPPT); 5 = Throttled (power reduction); 6 = Shutting down; 7 = Fault; 8 = Standby | |||
| HR | 40108doc 40109 | StVnd | Fronius operating state, including codes 9-13. | UINT16 | Read | 1 = Off; 2 = Sleeping (auto shutdown); 3 = Starting; 4 = Producing normally (MPPT); 5 = Throttled (power reduction); 6 = Shutting down; 7 = Fault; 8 = Standby; 9 = No Solar Net bus init; 10 = No communication with inverter; 11 = Solar Net overcurrent; 12 = Bootloader (updating); 13 = AFCI event (arc detected) | |||
| HR | 40121doc 40122 | Nameplate ID | Model ID of this block. | UINT16 | Read | ||||
| HR | 40122doc 40123 | Nameplate L | Length of this block in registers. | UINT16 | Registers | Read | |||
| HR | 40123doc 40124 | DERTyp | Device type; 4 = PV device. | UINT16 | Read | ||||
| HR | 40124doc 40125 | WRtg | Rated continuous active power. | UINT16 | × 10^SF (HR 40125) | W | Read | ||
| HR | 40125doc 40126 | WRtg_SF | Scale factor (power of ten) for WRtg. | INT16 | Read | ||||
| HR | 40126doc 40127 | VARtg | Rated apparent power. | UINT16 | × 10^SF (HR 40127) | VA | Read | ||
| HR | 40127doc 40128 | VARtg_SF | Scale factor (power of ten) for VARtg. | INT16 | Read | ||||
| HR | 40128doc 40129 | VArRtgQ1 | Rated reactive power, quadrant 1. | INT16 | × 10^SF (HR 40132) | var | Read | ||
| HR | 40131doc 40132 | VArRtgQ4 | Rated reactive power, quadrant 4. | INT16 | × 10^SF (HR 40132) | var | Read | ||
| HR | 40132doc 40133 | VArRtg_SF | Scale factor (power of ten) for VArRtg. | INT16 | Read | ||||
| HR | 40133doc 40134 | ARtg | Rated AC current. | UINT16 | × 10^SF (HR 40134) | A | Read | ||
| HR | 40134doc 40135 | ARtg_SF | Scale factor (power of ten) for ARtg. | INT16 | Read | ||||
| HR | 40135doc 40136 | PFRtgQ1 | Minimum power factor capability, quadrant 1. | INT16 | × 10^SF (HR 40139) | cos() | Read | ||
| HR | 40138doc 40139 | PFRtgQ4 | Minimum power factor capability, quadrant 4. | INT16 | × 10^SF (HR 40139) | cos() | Read | ||
| HR | 40139doc 40140 | PFRtg_SF | Scale factor (power of ten) for PFRtg. | INT16 | Read | ||||
| HR | 40140doc 40141 | WHRtg | Rated storage energy. | UINT16 | × 10^SF (HR 40141) | Wh | Read | ||
| HR | 40141doc 40142 | WHRtg_SF | Scale factor (power of ten) for WHRtg. | INT16 | Read | ||||
| HR | 40144doc 40145 | MaxChaRte | Maximum battery charge power. | UINT16 | × 10^SF (HR 40145) | W | Read | ||
| HR | 40145doc 40146 | MaxChaRte_SF | Scale factor (power of ten) for MaxChaRte. | INT16 | Read | ||||
| HR | 40146doc 40147 | MaxDisChaRte | Maximum battery discharge power. | UINT16 | × 10^SF (HR 40147) | W | Read | ||
| HR | 40147doc 40148 | MaxDisChaRte_SF | Scale factor (power of ten) for MaxDisChaRte. | INT16 | Read | ||||
| HR | 40149doc 40150 | Settings ID | Model ID of this block. | UINT16 | Read | ||||
| HR | 40150doc 40151 | Settings L | Length of this block in registers. | UINT16 | Registers | Read | |||
| HR | 40151doc 40152 | WMax | Maximum active power setting. | UINT16 | × 10^SF (HR 40171) | W | Read/write | ||
| HR | 40152doc 40153 | VRef | Reference voltage at the grid connection point. | UINT16 | × 10^SF (HR 40172) | V | Read | ||
| HR | 40153doc 40154 | VRefOfs | Voltage offset between grid connection point and inverter. | INT16 | × 10^SF (HR 40173) | V | Read/write | ||
| HR | 40156doc 40157 | VAMax | Maximum apparent power setting. | UINT16 | × 10^SF (HR 40175) | VA | Read/write | ||
| HR | 40157doc 40158 | VARMaxQ1 | Reactive power limit, quadrant 1. | INT16 | × 10^SF (HR 40176) | var | Read | ||
| HR | 40160doc 40161 | VARMaxQ4 | Reactive power limit, quadrant 4. | INT16 | × 10^SF (HR 40176) | var | Read | ||
| HR | 40162doc 40163 | PFMinQ1 | Minimum power factor setting, quadrant 1. | INT16 | × 10^SF (HR 40178) | cos() | Read | ||
| HR | 40165doc 40166 | PFMinQ4 | Minimum power factor setting, quadrant 4. | INT16 | × 10^SF (HR 40178) | cos() | Read | ||
| HR | 40171doc 40172 | WMax_SF | Scale factor (power of ten) for WMax. | INT16 | Read | ||||
| HR | 40172doc 40173 | VRef_SF | Scale factor (power of ten) for VRef. | INT16 | Read | ||||
| HR | 40173doc 40174 | VRefOfs_SF | Scale factor (power of ten) for VRefOfs. | INT16 | Read | ||||
| HR | 40175doc 40176 | VAMax_SF | Scale factor (power of ten) for VAMax. | INT16 | Read | ||||
| HR | 40176doc 40177 | VARMax_SF | Scale factor (power of ten) for VARMax. | INT16 | Read | ||||
| HR | 40178doc 40179 | PFMin_SF | Scale factor (power of ten) for PFMin. | INT16 | Read | ||||
| HR | 40181doc 40182 | Status ID | Model ID of this block. | UINT16 | Read | ||||
| HR | 40182doc 40183 | Status L | Length of this block in registers. | UINT16 | Registers | Read | |||
| HR | 40183doc 40184 | PVConn | PV inverter connection status bits. | BITMAP16 | Read | bit 0 = Connected; bit 1 = Available; bit 2 = Operating; bit 3 = Test | |||
| HR | 40184doc 40185 | StorConn | Storage connection status bits. | BITMAP16 | Read | bit 0 = Connected; bit 1 = Available; bit 2 = Operating; bit 3 = Test | |||
| HR | 40185doc 40186 | ECPConn | Grid feed-in status. | BITMAP16 | Read | bit 0 = Connected to grid (feeding) | |||
| HR | 40218doc 40219 | TmSrc | STRING[8] | Read | |||||
| HR | 40227doc 40228 | Controls ID | Model ID of this block. | UINT16 | Read | ||||
| HR | 40228doc 40229 | Controls L | Length of this block in registers. | UINT16 | Registers | Read | |||
| HR | 40229doc 40230 | Conn_WinTms | Random start window for connect/disconnect commands. | UINT16 | Secs | Read/write | |||
| HR | 40230doc 40231 | Conn_RvrtTms | Fallback timer for the connect/disconnect command; 0 = no fallback. | UINT16 | Secs | Read/write | |||
| HR | 40231doc 40232 | Conn | Write 0 for standby (no feed-in), 1 to resume feed-in. | UINT16 | Read/write | 0 = Disconnected (standby); 1 = Connected (feeding grid) | |||
| HR | 40232doc 40233 | WMaxLimPct | Active power limit as percent of WMax. | UINT16 | × 10^SF (HR 40250) | % WMax | Read/write | ||
| HR | 40233doc 40234 | WMaxLimPct_WinTms | Random start window for the power limit. | UINT16 | Secs | Read/write | |||
| HR | 40234doc 40235 | WMaxLimPct_RvrtTms | Fallback timer for the power limit; restarts on every Modbus message, 0 = none. | UINT16 | Secs | Read/write | |||
| HR | 40235doc 40236 | WMaxLimPct_RmpTms | Ramp time to the new power limit. | UINT16 | Secs | Read/write | |||
| HR | 40236doc 40237 | WMaxLim_Ena | Starts (1) or ends (0) the power limit. | UINT16 | Read/write | 0 = Disabled; 1 = Enabled | |||
| HR | 40237doc 40238 | OutPFSet | Fixed power factor setpoint (signed, see sign convention). | INT16 | × 10^SF (HR 40251) | cos() | Read/write | ||
| HR | 40238doc 40239 | OutPFSet_WinTms | Random start window for the power factor setpoint. | UINT16 | Secs | Read/write | |||
| HR | 40239doc 40240 | OutPFSet_RvrtTms | Fallback timer for the power factor setpoint; 0 = none. | UINT16 | Secs | Read/write | |||
| HR | 40240doc 40241 | OutPFSet_RmpTms | Ramp time to the new power factor. | UINT16 | Secs | Read/write | |||
| HR | 40241doc 40242 | OutPFSet_Ena | Starts (1) or ends (0) the fixed power factor mode. | UINT16 | Read/write | 0 = Disabled; 1 = Enabled | |||
| HR | 40243doc 40244 | VArMaxPct | Fixed reactive power as percent of VArMax. | INT16 | × 10^SF (HR 40252) | % VArMax | Read/write | ||
| HR | 40245doc 40246 | VArPct_WinTms | Random start window for the reactive power setpoint. | UINT16 | Secs | Read/write | |||
| HR | 40246doc 40247 | VArPct_RvrtTms | Fallback timer for the reactive power setpoint; 0 = none. | UINT16 | Secs | Read/write | |||
| HR | 40247doc 40248 | VArPct_RmpTms | Ramp time to the new reactive power value. | UINT16 | Secs | Read/write | |||
| HR | 40248doc 40249 | VArPct_Mod | Reactive power limit mode (read-only). | UINT16 | Read | 2 = VAr limit as % of VArMax | |||
| HR | 40249doc 40250 | VArPct_Ena | Starts (1) or ends (0) the fixed reactive power mode. | UINT16 | Read/write | 0 = Disabled; 1 = Enabled | |||
| HR | 40250doc 40251 | WMaxLimPct_SF | Scale factor (power of ten) for WMaxLimPct. | INT16 | Read | ||||
| HR | 40251doc 40252 | OutPFSet_SF | Scale factor (power of ten) for OutPFSet. | INT16 | Read | ||||
| HR | 40252doc 40253 | VArPct_SF | Scale factor (power of ten) for VArPct. | INT16 | Read | ||||
| HR | 40253doc 40254 | MPPT ID | Model ID of this block. | UINT16 | Read | ||||
| HR | 40254doc 40255 | MPPT L | Length of this block in registers. | UINT16 | Read | ||||
| HR | 40255doc 40256 | MPPT DCA_SF | Scale factor (power of ten) for DCA. | INT16 | Read | ||||
| HR | 40256doc 40257 | MPPT DCV_SF | Scale factor (power of ten) for DCV. | INT16 | Read | ||||
| HR | 40257doc 40258 | MPPT DCW_SF | Scale factor (power of ten) for DCW. | INT16 | Read | ||||
| HR | 40258doc 40259 | MPPT DCWH_SF | Scale factor (power of ten) for DCWH. | INT16 | Read | ||||
| HR | 40261doc 40262 | N | Number of DC inputs reported in this model. | UINT16 | Read | ||||
| HR | 40263doc 40264 | 1_ID | Input number 1. | UINT16 | Read | ||||
| HR | 40264doc 40265 | 1_IDStr | Label of DC input 1. | STRING[16] | Read | ||||
| HR | 40272doc 40273 | 1_DCA | DC current of input 1. | UINT16 | × 10^SF (HR 40255) | A | Read | ||
| HR | 40273doc 40274 | 1_DCV | DC voltage of input 1. | UINT16 | × 10^SF (HR 40256) | V | Read | ||
| HR | 40274doc 40275 | 1_DCW | DC power of input 1. | UINT16 | × 10^SF (HR 40257) | W | Read | ||
| HR | 40280doc 40281 | 1_DCSt | UINT16 | Read | |||||
| HR | 40283doc 40284 | 2_ID | Input number 2. | UINT16 | Read | ||||
| HR | 40284doc 40285 | 2_IDStr | Label of DC input 2. | STRING[16] | Read | ||||
| HR | 40292doc 40293 | 2_DCA | DC current of input 2. | UINT16 | × 10^SF (HR 40255) | A | Read | ||
| HR | 40293doc 40294 | 2_DCV | DC voltage of input 2. | UINT16 | × 10^SF (HR 40256) | V | Read | ||
| HR | 40294doc 40295 | 2_DCW | DC power of input 2. | UINT16 | × 10^SF (HR 40257) | W | Read | ||
| HR | 40300doc 40301 | 2_DCSt | UINT16 | Read | |||||
| HR | 40303doc 40304 | Storage ID | Model ID of this block. | UINT16 | Read | ||||
| HR | 40304doc 40305 | Storage L | Length of this block in registers. | UINT16 | Registers | Read | |||
| HR | 40305doc 40306 | WchaMax | Reference power for InWRte/OutWRte. | UINT16 | × 10^SF (HR 40321) | W | Read | ||
| HR | 40306doc 40307 | WchaGra | Maximum charge ramp. | UINT16 | × 10^SF (HR 40322) | % WChaMax/sec | Read | ||
| HR | 40307doc 40308 | WdisChaGra | Maximum discharge ramp. | UINT16 | × 10^SF (HR 40322) | % WChaMax/sec | Read | ||
| HR | 40308doc 40309 | StorCtl_Mod | Activates the charge and/or discharge limit window. | BITMAP16 | Read/write | bit 0 = Charge limit (InWRte) active; bit 1 = Discharge limit (OutWRte) active | |||
| HR | 40310doc 40311 | MinRsvPct | Minimum battery reserve, percent of capacity. | UINT16 | × 10^SF (HR 40324) | % WChaMax | Read/write | ||
| HR | 40311doc 40312 | ChaState | Battery state of charge. | UINT16 | × 10^SF (HR 40325) | % AhrRtg | Read | ||
| HR | 40314doc 40315 | ChaSt | Battery operating status. | UINT16 | Read | 1 = Off; 2 = Empty; 3 = Discharging; 4 = Charging; 5 = Full; 6 = Holding; 7 = Testing | |||
| HR | 40315doc 40316 | OutWRte | Discharge limit, percent of WChaMax; negative forces charging. | INT16 | × 10^SF (HR 40328) | % WChaMax | Read/write | ||
| HR | 40316doc 40317 | InWRte | Charge limit, percent of WChaMax; negative forces discharging. | INT16 | × 10^SF (HR 40328) | % WChaMax | Read/write | ||
| HR | 40320doc 40321 | ChaGriSet | Allows or blocks battery charging from the grid. | UINT16 | Read/write | 0 = PV only (grid charging disabled); 1 = Grid charging enabled | |||
| HR | 40321doc 40322 | WchaMax_SF | Scale factor (power of ten) for WchaMax. | INT16 | Read | ||||
| HR | 40322doc 40323 | WchaDisChaGra_SF | Scale factor (power of ten) for WchaDisChaGra. | INT16 | Read | ||||
| HR | 40324doc 40325 | MinRsvPct_SF | Scale factor (power of ten) for MinRsvPct. | INT16 | Read | ||||
| HR | 40325doc 40326 | ChaState_SF | Scale factor (power of ten) for ChaState. | INT16 | Read | ||||
| HR | 40328doc 40329 | InOutWRte_SF | Scale factor (power of ten) for InOutWRte. | INT16 | Read | ||||
| HR | 40329doc 40330 | End ID | End-of-map marker, reads 0xFFFF. | UINT16 | Read | ||||
| HR | 40330doc 40331 | End L | End block length, reads 0. | UINT16 | Registers | Read |
Notes on this map
- Register table comes from Fronius' official XLSX in the 'Modbus Sunspec Maps, State Codes and Events' ZIP (same download page as the PDF); behaviour and settings come from the PDF.
- All addresses here assume SunSpec Model Type = int+SF. With the default float setting the inverter model is 111-113 and every later model starts 10 registers higher (e.g. nameplate 40131 instead of 40121).
- Fronius warns the map is dynamic: the correct method is to walk the SunSpec model chain from 40001 (ID, L) and use offsets. The fixed addresses below are the published layout for a single inverter.
- Word order: neither the PDF nor the XLSX states the order of 32/64-bit values, so every 32/64-bit register is left out: SID 40001-40002, WH lifetime energy 40094-40095, Evt1/Evt2/EvtVnd1-4 40110-40121, ActWh 40187-40190, StActCtl 40217-40218, Tms 40223-40224, model 160 Evt/DCWH/Tms, and site totals F_Site_Power/Energy 500-513. The SID is documented as 0x53756E53 'SunS', which suggests high word first, but this is not stated.
- Registers marked 'Not supported' in the XLSX are left out (temperatures, VMax/VMin, quadrant 2/3 ratings, ride-through, Ris, StorAval, InBatV, and similar).
- Unsupported values read as: int16 0x8000, uint16/enum16/bitfield16 0xFFFF, sunssf 0x8000. Some 'supported' points also return these, e.g. phase B/C on single-phase inverters, DCA/DCV on multi-input inverters (use model 160).
- The XLSX notes that WH (lifetime energy) may be imprecise; ActWh in model 122 is the alternative (both 32/64-bit, omitted here).
- Access is taken from the XLSX R/W column. VAMax (40157) and WMaxLimPct_RmpTms (40236) are marked RW but list only function code 0x03; the PDF says writes to unsupported RmpTms are ignored (ramp supported from Datamanager 3.13.3-2 / Hybridmanager 1.11.3-2).
- Model 124 (storage) is only meaningful on Fronius Symo Hybrid with battery.
- The PDF describes PVConn bit 1 as 'responsive'; the XLSX calls it 'Available'. The XLSX wording is used.
- Energy meters (Fronius Smart Meter) are published at unit ID 240-244 with their own common block and meter model 201-203 starting again at 40001; they are not part of this inverter map.
Check it against the live device. A register map tells you what the controller can expose; the unit in front of you may differ by firmware or options. Read a few registers and compare them with the unit’s own display; for a 32-bit value the float and byte-order decoder shows all four word orders at once, so a wrong word order or scale is obvious. New to this? Read what a register map is and why addresses are off by one.
Questions about the Fronius Symo / Primo / Galvo / Symo Hybrid via Datamanager (SunSpec int+SF)
What Modbus registers does the Fronius Symo / Primo / Galvo / Symo Hybrid via Datamanager (SunSpec int+SF) have?
This map lists 152 registers: 152 holding registers. 31 of them can be written. Registers vary with firmware, options and configuration, so confirm against the device.
Are the Fronius Symo / Primo / Galvo / Symo Hybrid via Datamanager (SunSpec int+SF) Modbus addresses 0-based or 1-based?
The manufacturer's document numbers registers 1-based (subtract 1 for the wire address). Every address on this page is the 0-based wire address you put in the request; the documented number is shown under it where it differs. Fronius numbers registers from 1 (SunSpec base register 40001) and says to send the register number minus one: register 40001 is requested at address 40000 (0x9C40). The manual's RTU example reads register 40005 with address bytes 9C 44. Fronius registers 212-217 follow the same rule (212 -> 211).
What are the minimum Modbus registers to integrate the Fronius Symo / Primo / Galvo / Symo Hybrid via Datamanager (SunSpec int+SF)?
Start with HR 40069 Inverter ID (Inverter model ID (101/102/103) - confirms int+SF layout); HR 40083 W (AC power); HR 40084 W_SF (AC power scale factor); HR 40107 St (Operating state); HR 40232 WMaxLimPct (Active power limit %); HR 40236 WMaxLim_Ena (Enable/disable the power limit); HR 40250 WMaxLimPct_SF (Power limit scale factor).
How do I enable Modbus control of the Fronius Symo / Primo / Galvo / Symo Hybrid via Datamanager (SunSpec int+SF)?
Datamanager web interface > Settings > Modbus: set 'Data output via Modbus' to tcp (or rtu on Datamanager 2.0, factory default rtu there), pick SunSpec Model Type int+SF, and tick 'Inverter control via Modbus' to allow writes to models 123/124. 'Limit control' can restrict write access to listed IP addresses. Turning Modbus output off cancels any active Modbus control commands.
What happens when the Fronius Symo / Primo / Galvo / Symo Hybrid via Datamanager (SunSpec int+SF) loses Modbus communication?
Each control in model 123 has a *_RvrtTms fallback timer (0-28800 s) that restarts with every Modbus message received; when it expires the control ends and the next-priority control (e.g. dynamic power reduction) takes over. RvrtTms = 0 (default) means the setting stays until disabled.
Where is the official Fronius Symo / Primo / Galvo / Symo Hybrid via Datamanager (SunSpec int+SF) Modbus documentation?
The source is Fronius Datamanager Modbus TCP & RTU (operating instructions) + Inverter_Register_Map_Int&SF_v1.0_with_SYMOHYBRID_MODEL_124.xlsx (42,0410,2049 (033-24022026)), revision 2026-02, published free by Fronius at https://www.fronius.com/en/~/downloads/Solar%20Energy/Operating%20Instructions/42,0410,2049.pdf.
More Fronius Modbus register maps
Source: Fronius Datamanager Modbus TCP & RTU (operating instructions) + Inverter_Register_Map_Int&SF_v1.0_with_SYMOHYBRID_MODEL_124.xlsx · 42,0410,2049 (033-24022026) · rev. 2026-02. Register numbers, types, scaling and units are reproduced as published; descriptions are our own.