Alfen Eve (NG9xx) Modbus register map
Also covers Eve Single, Eve Double
EV charging station on the NG9xx platform, Modbus TCP
- Official
- 92 registers
- Modbus TCP
- Revision 2 · 2026-11-10
- Identity: firmware, serial number
Official: Written from the manufacturer's documentation, but not tested on a device yet. Check the map against the manufacturer's documentation before you write to a live device. Tested it? Report a test.
Communication
- Protocol
- Modbus TCP
- Unit ID
- 1
- TCP port
- 502
- Byte / word order
- CDAB · bytes big-endian, words low first (word swap)
- Addresses
- 1-based · wire address = address − 1
- Max read
- 125 registers per request
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 92 holding registers
- Groups
- 6
- Translation tables
- 5
- Revision
- 2 · 2026-11-10
- Added
- ()
- File
- maps/alfen/eve.mbmap.json · 20 KB · history
- SHA-256
- 596662b2716d7e0fb3b753415f0ece6efa73d71d5b9521f6c4b85ad0e85c7465
- Manufacturer
- alfen.com
Device identity
What a tool can read to check that this map fits the connected device (SPEC.md section 4.7). Registers with a role are read like any other register.
| Role | Register | Address | Type | Values |
|---|---|---|---|---|
| Firmware | Firmware version | holding 123 | string[17] | |
| Serial number | Station serial number | holding 157 | string[11] |
Sources and notes
- Modbus for ACE, Configuration Guide · version 1.0, 2025-05 Appendices A to F
Source: Alfen ICU B.V., Modbus for ACE, Configuration Guide, version 1.0, 05/2025
- Every register is a holding register (function 3 to read, 6 and 16 to write). The manual numbers them from 1 and says to subtract 1 for the address on the wire, so the numbers here are 1-based (address_base 1).
- Which device answers depends on the Modbus server address: 200 for the station registers (1100 to 1105) and the smart charging network registers (1400 to 1431); 1 for the single socket, or the left socket of a dual socket station; 2 for the right socket. The socket registers (300 to 425 and 1200 to 1215) are read from server address 1 or 2. The manual does not say which address reaches the product identification and date registers (100 to 178). The default unit_id here is 1 (a socket).
- 32-bit values are mixed-endian: bytes inside a 16-bit word are big-endian and the low word comes first (word_order little). The manual says this only for 32-bit values; the 64-bit values (energy, uptime, meter timestamp) are given the same word order here, which the manual does not state.
- A 32-bit value must be read or written in one request, not as two requests. A write to a multi-register value that does not cover all its registers is refused.
- A reserved or unavailable register is returned as NaN (0xFFFF for a 16-bit register). Chargers with a Reallin meter made after 2021 return NaN for the sum registers of current, apparent power, reactive power and real energy consumed; older chargers with an ABB meter return numbers.
- Strings hold two ASCII characters per register and end with a zero.
- Modbus TCP is off by default. It needs the Active Load Balancing licence, and the settings Allow reading, Allow writing maximum currents, Enable sockets and Enable Smart Charging Network must be set in the ACE Service Installer (version 4.0 or later). Up to two clients can connect at the same time. UDP is not supported.
- The maximum current registers (1210 and 1417 to 1422) are not kept across a reboot. After the valid time (60 s by default) without a new write the charger falls back to its safe current, so poll more often than the valid time. The safe current must be set before a maximum current can be written.
- At most 125 registers can be read in one request.
- Register 1104 (OCPP state) is listed as 1104..1105 in the manual, which overlaps 1105 (number of sockets); it is one register here. The meter state bit field (register 300) and meter type (305) values are as listed in the manual. No registers have the firmware, model or serial role because the manual does not say which server address answers the identification registers.
- Written from the manufacturer's document; not tested on a device.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 100 | string[17] | R | Station name | |||
| HR | 117 | string[5] | R | ||||
| HR | 122 | int16 | R | ||||
| HR | 123 | string[17] | R | ||||
| HR | 140 | string[17] | R | Platform, for example NG910 | |||
| HR | 157 | string[11] | R | ||||
| HR | 168 | int16 | R | yr | |||
| HR | 169 | int16 | R | month | |||
| HR | 170 | int16 | R | day | |||
| HR | 171 | int16 | R | h | |||
| HR | 172 | int16 | R | min | |||
| HR | 173 | int16 | R | s | |||
| HR | 174 | uint64 CDAB | R | s | ×0.001 | ||
| HR | 178 | int16 | R | min | Offset from UTC in minutes | ||
| HR | 1100 | float32 CDAB | R | A | The actual maximum current | ||
| HR | 1102 | float32 CDAB | R | °C | Board temperature, not the ambient temperature | ||
| HR | 1104 | uint16 | R | Tells whether the back office is connected | |||
| HR | 1105 | uint16 | R | ||||
| HR | 1400 | string[4] | R | ||||
| HR | 1404 | uint16 | R | Number of connected sockets | |||
| HR | 1405 | float32 CDAB | R | A | |||
| HR | 1407 | float32 CDAB | R | A | |||
| HR | 1409 | float32 CDAB | R | A | |||
| HR | 1411 | float32 CDAB | R | A | |||
| HR | 1413 | float32 CDAB | R | A | |||
| HR | 1415 | float32 CDAB | R | A | |||
| HR | 1417 | float32 CDAB | RW | A | Maximum current for each phase, written by the energy management system | ||
| HR | 1419 | float32 CDAB | RW | A | Maximum current for each phase, written by the energy management system | ||
| HR | 1421 | float32 CDAB | RW | A | Maximum current for each phase, written by the energy management system | ||
| HR | 1423 | uint32 CDAB | R | s | |||
| HR | 1425 | uint32 CDAB | R | s | |||
| HR | 1427 | uint32 CDAB | R | s | |||
| HR | 1429 | float32 CDAB | R | A | Configured SCN safe current | ||
| HR | 1431 | uint16 | R | ||||
| HR | 1200 | uint16 | R | ||||
| HR | 1201 | string[5] | R | IEC 61851 state, see the manual's Mode 3 state listing | |||
| HR | 1206 | float32 CDAB | R | A | Overall maximum current in use for the socket | ||
| HR | 1208 | uint32 CDAB | R | s | Remaining time before the socket falls back to the safe current | ||
| HR | 1210 | float32 CDAB | RW | A | Setpoint written by the energy management system | ||
| HR | 1212 | float32 CDAB | R | A | |||
| HR | 1214 | uint16 | R | Whether the written setpoint is used to work out the actual applied max current | |||
| HR | 1215 | uint16 | RW | ||||
| HR | 300 | bool bit 0 | R | Initialised | |||
| HR | 300 | bool bit 1 | R | ||||
| HR | 300 | bool bit 2 | R | ||||
| HR | 300 | bool bit 3 | R | ||||
| HR | 301 | uint64 CDAB | R | s | ×0.001 | Time since the last measurements were received | |
| HR | 305 | uint16 | R | ||||
| HR | 306 | float32 CDAB | R | V | |||
| HR | 308 | float32 CDAB | R | V | |||
| HR | 310 | float32 CDAB | R | V | |||
| HR | 312 | float32 CDAB | R | V | |||
| HR | 314 | float32 CDAB | R | V | |||
| HR | 316 | float32 CDAB | R | V | |||
| HR | 318 | float32 CDAB | R | A | |||
| HR | 320 | float32 CDAB | R | A | |||
| HR | 322 | float32 CDAB | R | A | |||
| HR | 324 | float32 CDAB | R | A | |||
| HR | 326 | float32 CDAB | R | A | Returns NaN on chargers with a Reallin meter made after 2021 | ||
| HR | 328 | float32 CDAB | R | ||||
| HR | 330 | float32 CDAB | R | ||||
| HR | 332 | float32 CDAB | R | ||||
| HR | 334 | float32 CDAB | R | ||||
| HR | 336 | float32 CDAB | R | Hz | |||
| HR | 338 | float32 CDAB | R | W | |||
| HR | 340 | float32 CDAB | R | W | |||
| HR | 342 | float32 CDAB | R | W | |||
| HR | 344 | float32 CDAB | R | W | |||
| HR | 346 | float32 CDAB | R | VA | |||
| HR | 348 | float32 CDAB | R | VA | |||
| HR | 350 | float32 CDAB | R | VA | |||
| HR | 352 | float32 CDAB | R | VA | Returns NaN on chargers with a Reallin meter made after 2021 | ||
| HR | 354 | float32 CDAB | R | VAr | |||
| HR | 356 | float32 CDAB | R | VAr | |||
| HR | 358 | float32 CDAB | R | VAr | |||
| HR | 360 | float32 CDAB | R | VAr | Returns NaN on chargers with a Reallin meter made after 2021 | ||
| HR | 362 | float64 CDAB | R | Wh | |||
| HR | 366 | float64 CDAB | R | Wh | |||
| HR | 370 | float64 CDAB | R | Wh | |||
| HR | 374 | float64 CDAB | R | Wh | |||
| HR | 378 | float64 CDAB | R | Wh | |||
| HR | 382 | float64 CDAB | R | Wh | |||
| HR | 386 | float64 CDAB | R | Wh | |||
| HR | 390 | float64 CDAB | R | Wh | Returns NaN on chargers with a Reallin meter made after 2021 | ||
| HR | 394 | float64 CDAB | R | VAh | |||
| HR | 398 | float64 CDAB | R | VAh | |||
| HR | 402 | float64 CDAB | R | VAh | |||
| HR | 406 | float64 CDAB | R | VAh | |||
| HR | 410 | float64 CDAB | R | VArh | |||
| HR | 414 | float64 CDAB | R | VArh | |||
| HR | 418 | float64 CDAB | R | VArh | |||
| HR | 422 | float64 CDAB | R | VArh |
No registers match
Try part of the name, an address (decimal or 0x hex) or clear the filters.
Help improve this map
- I tested it on a deviceReport whether it worked, even if you did not write the map.
- Suggest a correctionEdit the file on GitHub; it opens a pull request.
- Report a problemA wrong address, type, scale or byte order.
- Read the formatWhat each key of the file means (SPEC.md).