Fronius GEN24/Datamanager inverter
Register map(s) for this device, with a note of how far each has been checked. Addresses are
0-based, as on the wire. Scale and byte order are confirmed only at the hardware-verified rung.
structure-verified
Decode path is structurally sound (addresses, widths, finite values). Does NOT prove word order or scaling.
| 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.
- coherence-checked — Round-trips through a real Modbus stack with no overlapping addresses and a word-order-sensitive codec — the map is internally coherent and wire-decodable. Does NOT prove byte-order or scaling match a real device: the emulator is seeded from the map's own types, so a uniformly wrong byte-order still round-trips. Only hardware-verified confirms byte-order/scale on the wire.
- hardware-verified (software-key) x1 — Matched a real device with operator-attested readings as ground truth — the only rung that confirms word order + scaling on the wire.