Heidelberg/Amperfied Energy Control wallbox (Modbus RTU)
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 |
| modbus_register_layouts_version | 4 | U16 | 1 | |
| charging_state | 5 | U16 | 1 | |
| l1_current_rms | 6 | U16 | 0.1 | 0.1 A |
| l2_current_rms | 7 | U16 | 0.1 | 0.1 A |
| l3_current_rms | 8 | U16 | 0.1 | 0.1 A |
| pcb_temperature | 9 | I16 | 0.1 | 0.1 °C |
| voltage_l1_n_rms | 10 | U16 | 1 | V |
| voltage_l2_n_rms | 11 | U16 | 1 | V |
| voltage_l3_n_rms | 12 | U16 | 1 | V |
| extern_lock_state | 13 | U16 | 1 | |
| power | 14 | U16 | 1 | VA |
| energy_since_power_on | 15 | U32BE | 1 | VAh |
| energy_since_installation | 17 | U32BE | 1 | VAh |
| hardware_configuration_maximal_current | 100 | U16 | 1 | A |
| hardware_configuration_minimal_current | 101 | U16 | 1 | A |
| modbus_master_watchdog_timeout | 257 | U16 | 1 | ms |
| standby_function_control | 258 | U16 | 1 | |
| remote_lock | 259 | U16 | 1 | |
| maximal_current_command | 261 | U16 | 0.1 | 0.1 A |
| failsafe_current_configuration | 262 | U16 | 0.1 | 0.1 A |
link settings as documented (unverified): FC 03,04,06
bench facts as documented (unverified)
| model register | 200 |
| firmware register | 203 |
| doc revision | Status 22 February 2021 |
field reports — community-sourced, unverified (checked 2026-06-11)
- When the wallbox enters standby mode (power saving when no vehicle is plugged in), Modbus communication is completely disabled, causing polling errors/timeouts on the master side. To prevent this, users must write 4 to register 258 to disable the standby function. [source]
- In firmware versions V1.0.4 to V1.0.7, registers 258 (Standby Function Control) and 259 (Remote Lock) are write-only. Attempting to read them using function code 3 (read holding registers) results in a Modbus exception 2 (illegal data address). Reading these registers is only supported in firmware versions V1.0.8 and newer. [source]
- The Modbus watchdog (register 257) is enabled by default (defaulting to 15,000 ms). If the Modbus master does not communicate within this window, the wallbox enters a failsafe state and blinks. To disable it, a value of 0 must be written to register 257. [source]
- confirmed: Modbus function codes [3, 4, 6] are supported — confirmed by Amperfied's official Modbus Register Layout documentation and integration guides.
- confirmed: Firmware register 203 (Application Software svn-revNo) and model register 200 (Hardware-Variant) are used for identification — confirmed by the official register table and Home Assistant community templates.
- confirmed: Register map addresses (0-based) including modbus_register_layouts_version @ 4, charging_state @ 5, l1_current_rms @ 6, l2_current_rms @ 7, l3_current_rms @ 8, pcb_temperature @ 9, voltage_l1_n_rms @ 10, voltage_l2_n_rms @ 11, voltage_l3_n_rms @ 12, extern_lock_state @ 13, power @ 14, energy_since_power_on @ 15, energy_since_installation @ 17, hardware_configuration_maximal_current @ 100, hardware_configuration_minimal_current @ 101, modbus_master_watchdog_timeout @ 257, standby_function_control @ 258, remote_lock @ 259, maximal_current_command @ 261, and failsafe_current_configuration @ 262 — confirmed by the official Heidelberg Wallbox Modbus Register Table (Status 22 February 2021).
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.