Fronius GEN24/Datamanager inverter
Register map(s) for this device, each at the trust rung it earned. Addresses are 0-based
as on the wire. Word order and scaling are confirmed at the hardware-verified rung and at no rung below it.
interop-verified
Read + decoded cleanly over a real network vs an independent third-party Modbus test server (transport and framing; reads are remapped into the server's register window, so the map's own addresses are NOT exercised). Does NOT prove word order/scaling against the actual device.
| point | address (0-based) | type | scale | unit |
| der_type | 133 | U16 | 1 | A |
| w_rtg | 134 | F32BE | 1 | W |
| var_rtg | 136 | F32BE | 1 | VA |
| var_rtg_q1 | 138 | F32BE | 1 | VAr |
| var_rtg_q4 | 141 | F32BE | 1 | |
| a_rtg | 143 | F32BE | 1 | A |
| pf_rtg_q1 | 145 | F32BE | 1 | |
| pf_rtg_q4 | 148 | F32BE | 1 | |
| v_ref | 162 | F32BE | 1 | V |
| v_ref_ofs | 163 | F32BE | 1 | V |
| pv_conn | 193 | U16 | 1 | |
| ecp_conn | 195 | U16 | 1 | |
| st_act_ctl | 226 | U16 | 1 | |
| conn_win_tms | 239 | U16 | 1 | s |
| conn_rvrt_tms | 240 | U16 | 1 | s |
| conn | 241 | U16 | 1 | |
| w_max_lim_pct | 242 | F32BE | 1 | % |
| w_max_lim_pct_win_tms | 243 | U16 | 1 | s |
| w_max_lim_pct_rvrt_tms | 244 | U16 | 1 | s |
| w_max_lim_ena | 246 | U16 | 1 | |
| out_pf_set | 247 | F32BE | 1 | |
| out_pf_set_win_tms | 248 | U16 | 1 | |
| out_pf_set_rvrt_tms | 249 | U16 | 1 | |
| out_pf_set_ena | 251 | U16 | 1 | |
| var_max_pct | 253 | F32BE | 1 | |
| var_pct_win_tms | 255 | U16 | 1 | |
| var_pct_rvrt_tms | 256 | U16 | 1 | |
| var_pct_mod | 258 | U16 | 1 | |
| var_pct_ena | 259 | U16 | 1 | |
link settings as documented (unverified): RTU/TCP; unit ID 1; FC 03,06,16; Modbus TCP via Ethernet (wired or WLAN), Modbus RTU via RS-485. Default Unit ID for inverter is 1, default Unit ID for energy meter is 200.
⚠ If an attempt is made to write to read-only or unsupported registers, the inverter does not return an exception code and the values are ignored without an error message. — Starkest reads only; we never write a control register.
bench facts as documented (unverified)
| terminals | RS-485 (EIA/TIA-485-A) |
| wiring notes | Modbus TCP over Ethernet (wired or WLAN), Modbus RTU over RS-485 |
| max registers/read | 125 |
| response timeout | 1000 ms |
| broadcast | supported |
| protocol notes | Modbus requests should only be executed sequentially and not in parallel (maximum 2 queries in parallel). |
| identification notes | SunSpec Basic Register starts at 40001. Register 40005 is Mn (Manufacturer). |
| power | Primo GEN24 208-240 3.8-10.0 kW |
⚠ disputed: parity: E — disputed by LIFEPOWR, TrackSo, and Teleport integration guides which state that the default parity for Modbus RTU is 'None'
field reports — community-sourced, unverified (checked 2026-06-11)
- Firmware update (Datamanager 2.0 version 3.7.3-2 / GEN24 equivalent) changed the precision of the WMaxLimPct register in SunSpec Immediate Controls (IC123) to 0.01%, shifting the scale factor register WMaxLimPct_SF from 0 to -2. This broke integrations by requiring values to be scaled up by 100 (e.g., writing 10000 instead of 100 for 100% power). [source]
- Severe write delays of 15 to 30 seconds per register write (such as WMaxLimPct and WMaxLim_Ena) have been reported on GEN24 inverters, causing automation scripts to take up to 40-60 seconds to complete. [source]
- The start address of SunSpec Model 123 (Immediate Controls) shifts by 10 registers depending on the 'SunSpec Model Type' setting in the inverter's web interface. It starts at 40237 for 'float' and 40227 for 'int + SF', shifting all subsequent register offsets. [source]
- confirmed: Default Unit ID for inverter is 1, default Unit ID for energy meter is 200 — confirmed by Fronius GEN24 Modbus TCP & RTU Operating Instructions
- confirmed: SunSpec Basic Register starts at 40001. Register 40005 is Mn (Manufacturer) — confirmed by ioBroker-Forum and Fronius Datamanager Modbus TCP & RTU
- confirmed: Modbus TCP over Ethernet (wired or WLAN), Modbus RTU over RS-485 — confirmed by Fronius GEN24 Modbus TCP & RTU Operating Instructions
- confirmed: Modbus requests should only be executed sequentially and not in parallel (maximum 2 queries in parallel) — confirmed by Fronius GEN24 Modbus TCP & RTU Operating Instructions
- confirmed: Response timeout of at least 1 second (1000 ms) — confirmed by Fronius GEN24 Modbus TCP & RTU Operating Instructions
- confirmed: Max read registers is 125 — confirmed by Fronius GEN24 Modbus TCP & RTU Operating Instructions
- confirmed: Broadcast is supported for write commands using slave ID or unit ID 0 — confirmed by Fronius GEN24 Modbus TCP & RTU Operating Instructions
- confirmed: Control warning: 'If an attempt is made to write to read-only or unsupported registers, the inverter does not return an exception code and the values are ignored without an error message' — confirmed by Fronius GEN24 Modbus TCP & RTU Operating Instructions
The trust ladder
Each rung states what it proved and what it did not. Gray until proven; green is earned by hardware only.
- generated — A prompt produced it. Unproven — anyone can regenerate this.
- structure-verified — Decode path is structurally sound (addresses, widths, finite values). Does NOT prove word order or scaling.
- interop-verified — Read + decoded cleanly over a real network vs an independent third-party Modbus test server (transport and framing; reads are remapped into the server's register window, so the map's own addresses are NOT exercised). Does NOT prove word order/scaling against the actual device.
- simulator-verified — Decoded correctly against a protocol emulator seeded with known-true values — catches word-order/scaling errors vs the emulator, not the physical device.
- hardware-verified x1 — Matched a real device with operator-attested readings as ground truth — the only rung that confirms word order + scaling on the wire.