Victron Energy · EV charger
EV Charging Station (EVCS) / EVCS NS Modbus register map
Default configuration
- Protocol
- Modbus TCP
- Port
- 502
- Unit ID
- 1
- Addressing
- 0-based
- Byte order
- Big endian
- Word order
- High word first
Register map
| Address | Count | Name | Type | Unit | Scale | Access |
|---|---|---|---|---|---|---|
| 5000 | 1 | Product ID Constant 0xC024, 0xC025 or 0xC026, depending on the EVCS variant. | UInt16 | - | 1 | R |
| 5001 | 6 | Serial Id 6 registers, 12 characters. | Ascii | - | 1 | R |
| 5007 | 1 | FW version H HH: major number (8 bit). | UInt16 | - | 1 | R |
| 5008 | 1 | FW version L MM: minor number (8 bit), LL: revision number (8 bit). | UInt16 | - | 1 | R |
| 5009 | 1 | Charge mode 0 = manual, 1 = auto, 2 = scheduled. | UInt16 | - | 1 | RW |
| 5010 | 1 | Start/stop charging 0 = stop, 1 = start. | UInt16 | - | 1 | RW |
| 5011 | 1 | L1 power used | UInt16 | W | 1 | R |
| 5012 | 1 | L2 power used | UInt16 | W | 1 | R |
| 5013 | 1 | L3 power used | UInt16 | W | 1 | R |
| 5014 | 1 | Total power | UInt16 | W | 1 | R |
| 5015 | 1 | Charger status 0 = disconnected, 1 = connected, 2 = charging, 3 = charged, 4 = waiting for sun, 5 = waiting for RFID, 6 = waiting for start, 7 = low SOC, 8 = ground test error, 9 = welded contacts test error, 10 = CP input test error (shorted), 11 = residual current detected, 12 = undervoltage detected, 13 = overvoltage detected, 14 = overheating detected, 15-19 = reserved, 20 = charging limit, 21 = start charging, 22 = switching to 3 phase, 23 = switching to 1 phase, 24 = stop charging. | UInt16 | - | 1 | R |
| 5016 | 1 | Charging current Manual mode setpoint, 6-32 A. | UInt16 | A | 1 | RW |
| 5017 | 1 | Max current 6-32 A. | UInt16 | A | 1 | RW |
| 5018 | 1 | Charging current actual Raw value is A*10. | UInt16 | A | 0.1 | R |
| 5019 | 1 | Session charging time H High word of the session charging time. | UInt16 | s | 1 | R |
| 5020 | 1 | Session charging time L Low word of the session charging time. | UInt16 | s | 1 | R |
| 5021 | 1 | Session energy Raw value is kWh*100. | UInt16 | kWh | 0.01 | R |
| 5022 | 1 | Session cost Raw value is currency*100. | UInt16 | - | 0.01 | R |
| 5023 | 1 | Total energy H High word; total = (H * 65536 + L) / 100 kWh. | UInt16 | kWh | 1 | R |
| 5024 | 1 | Total energy L Low word; total = (H * 65536 + L) / 100 kWh. | UInt16 | kWh | 1 | R |
| 5025 | 1 | CP voltage Raw value is V*100. | UInt16 | V | 0.01 | R |
| 5026 | 1 | Charger position 0 = inverter AC out, 1 = inverter AC input. | UInt16 | - | 1 | RW |
| 5027 | 22 | Device name UTF-8 encoded string, 22 registers, 44 bytes. | Ascii | - | 1 | RW |
| 5049 | 1 | Charger autostart 0 = autostart disabled, 1 = autostart enabled. | UInt16 | - | 1 | RW |
| 5050 | 1 | Control via display 0 = control disabled, 1 = control enabled. | UInt16 | - | 1 | RW |
| 5051 | 1 | Display active backlight | UInt16 | % | 1 | RW |
| 5052 | 1 | Display idle backlight | UInt16 | % | 1 | RW |
| 5053 | 1 | Display active timeout | UInt16 | s | 1 | RW |
| 5054 | 1 | Contactor active when charged 0 = contactor disabled, 1 = contactor enabled. | UInt16 | - | 1 | RW |
| 5055 | 1 | Manual mode phase 0 = 3-phase, 1 = single phase (multiple relay charging feature). | UInt16 | - | 1 | RW |
| 5056 | 1 | Auto mode phase 0 = 3-phase, 1 = single phase, 2 = single+3-phase (multiple relay charging feature). | UInt16 | - | 1 | RW |
| 5057 | 1 | Power for 3phase Multiple relay charging feature. | UInt16 | W | 1 | RW |
| 5058 | 1 | Power for single phase Multiple relay charging feature. | UInt16 | W | 1 | RW |
| 5059 | 1 | Phase switching timeout Multiple relay charging feature. | UInt16 | s | 1 | RW |
| 5060 | 1 | CP calibration command 1 = calibration start, 2 = car is connected, 3 = reserved, 4 = calibration abort. | UInt16 | - | 1 | RW |
| 5061 | 1 | CP calibration status 0 = idle, 1 = in progress, 2 = successfully, 3 = failed, 4 = aborted. | UInt16 | - | 1 | R |
| 5062 | 1 | Min current 6-31 A. | UInt16 | A | 1 | RW |
| 5063 | 1 | Power calibration offset Factor 0.6-1.4 stored as *100. | UInt16 | - | 0.01 | RW |
| 5064 | 1 | EVCS reset 1 = reset command. | UInt16 | - | 1 | RW |
| 5065 | 1 | Auto mode type 0 = feed in, 1 = battery powered. | UInt16 | - | 1 | RW |
| 5066 | 1 | Backup battery SOC for start charging Battery powered auto mode. | UInt16 | % | 1 | RW |
| 5067 | 1 | Backup battery min SOC to allow charging off grid | UInt16 | % | 1 | RW |
| 5068 | 1 | Backup battery emulation 0 = disabled, 1 = enabled. | UInt16 | - | 1 | RW |
| 5069 | 1 | Feed in: start delay | UInt16 | s | 1 | RW |
| 5070 | 1 | Feed in: stop delay | UInt16 | s | 1 | RW |
| 5071 | 1 | Feed in: single phase grid power for start | Int16 | W | 1 | RW |
| 5072 | 1 | Feed in: multi phase grid power for start | Int16 | W | 1 | RW |
| 5073 | 1 | Feed in: grid power threshold for increase | Int16 | W | 1 | RW |
| 5074 | 1 | Feed in: grid power threshold for decrease | Int16 | W | 1 | RW |
| 5075 | 1 | Feed in: backup battery discharging power threshold | Int16 | W | 1 | RW |
| 5076 | 1 | Feed in: current step Raw value is A*10. | UInt16 | A | 0.1 | RW |
| 5077 | 1 | Feed in: time step | UInt16 | ms | 1 | RW |
| 5078 | 1 | Battery powered: start delay min | UInt16 | s | 1 | RW |
| 5079 | 1 | Battery powered: stop delay | UInt16 | s | 1 | RW |
| 5080 | 1 | Battery powered: start abort delay | UInt16 | s | 1 | RW |
| 5081 | 1 | Battery powered: BKPB balance power | UInt16 | W | 1 | RW |
| 5082 | 1 | Battery powered: BKPB balance SOC max | UInt16 | % | 1 | RW |
| 5083 | 1 | Battery powered: available sun power threshold for start | UInt16 | W | 1 | RW |
| 5084 | 1 | Battery powered: grid power threshold for start | UInt16 | W | 1 | RW |
| 5085 | 1 | Battery powered: BKPB power threshold for decrease | UInt16 | W | 1 | RW |
| 5086 | 1 | Battery powered: grid power threshold for decrease | UInt16 | W | 1 | RW |
| 5087 | 1 | Battery powered: discharging detect timeout | UInt16 | s | 1 | RW |
| 5088 | 1 | Battery powered: next try timeout for increase | UInt16 | s | 1 | RW |
| 5089 | 1 | Battery powered: time step | UInt16 | s | 1 | RW |
| 5090 | 1 | Battery powered: current step Raw value is A*10. | UInt16 | A | 0.1 | RW |
| 5091 | 1 | Battery powered: grid power for feed-in detection | Int16 | W | 1 | RW |
| 5092 | 1 | Battery powered: start delay max | UInt16 | s | 1 | RW |
| 5093 | 1 | ON grid detection threshold | UInt16 | W | 1 | RW |
| 5094 | 1 | EVCS errors L Bitmask, 1 = active. Low part. | UInt16 | - | 1 | R |
| 5095 | 1 | EVCS errors H Bitmask, 1 = active. High part. | UInt16 | - | 1 | R |
| 5096 | 1 | EVCS warnings L Bitmask, 1 = active. Low part. | UInt16 | - | 1 | R |
| 5097 | 1 | EVCS warnings H Bitmask, 1 = active. High part. | UInt16 | - | 1 | R |
| 5098 | 1 | EVCS notification code 0 = no notification. | UInt16 | - | 1 | R |
| 5099 | 1 | External lock External lock for the grid operator. | UInt16 | - | 1 | RW |
| 5100 | 1 | Multiple relay charging 1 = enabled, 0 = disabled. | UInt16 | - | 1 | RW |
| 5101 | 1 | Multiple relay charging: relay switching delay | UInt16 | s | 1 | RW |
| 5102 | 1 | Allow battery/grid power for auto mode 1 = enabled, 0 = disabled. | UInt16 | - | 1 | RW |
| 5103 | 1 | Battery/grid power timeout | UInt16 | min | 1 | RW |
| 5104 | 1 | Overload protection 1 = enabled, 0 = disabled. | UInt16 | - | 1 | RW |
| 5105 | 1 | Input current limit Raw value is A*10; applies when charger position (5026) = 1 (inverter AC input). | UInt16 | A | 0.1 | RW |
| 5106 | 1 | Overload protection ON/OFF timeout | UInt16 | s | 1 | RW |
| 5107 | 1 | Overload protection cut-off timeout | UInt16 | s | 1 | RW |
| 5108 | 1 | Relays OFF delay | UInt16 | ms | 1 | RW |
| 5109 | 1 | Detected car phases Updated during charging, reset to 1 after the car disconnects. | UInt16 | - | 1 | R |
| 5110 | 1 | Randomized delay max UK profile only. | UInt16 | s | 1 | RW |
| 5111 | 1 | UP-time H High part of the up-time in seconds. | UInt16 | s | 1 | R |
| 5112 | 1 | UP-time L Low part of the up-time in seconds. | UInt16 | s | 1 | R |
| 5113 | 1 | Reboot counter | UInt16 | - | 1 | R |
| 5114 | 1 | Last reboot reason code | UInt16 | - | 1 | R |
| 5115 | 1 | Sys watchdog reboot counter | UInt16 | - | 1 | R |
| 5116 | 1 | Sys watchdog last reboot reason code | UInt16 | - | 1 | R |
| 5117 | 1 | Relays statuses Bitmask: bit0 = L1, bit1 = L2, bit2 = L3, bit3 = N (v2); on v1 bit0 = rl1, bit2 = rl2. | UInt16 | - | 1 | R |
| 5118 | 1 | Overload current decrease timeout | UInt16 | min | 1 | RW |
| 5119 | 1 | Overload current decrease counter | UInt16 | - | 1 | RW |
| 5120 | 1 | Overload current decrease rate | UInt16 | % | 1 | RW |
| 5121 | 1 | Onboard humidity Raw value is %*10; v2 hardware only. | UInt16 | % | 0.1 | R |
| 5122 | 1 | Onboard temperature Raw value is °C*10; v2 hardware only. | UInt16 | °C | 0.1 | R |
| 5123 | 1 | Display temperature Raw value is °C*10; v2 hardware only. | UInt16 | °C | 0.1 | R |
| 5124 | 1 | Car connector temperature Raw value is °C*10; v2 hardware only. | UInt16 | °C | 0.1 | R |
| 5125 | 1 | Power meter temperature Raw value is °C*10; v2 hardware only. | UInt16 | °C | 0.1 | R |
| 5126 | 1 | Power control temperature Raw value is °C*10; v2 hardware only. | UInt16 | °C | 0.1 | R |
| 5127 | 1 | Power supply temperature Raw value is °C*10. | UInt16 | °C | 0.1 | R |
| 5128 | 1 | Allow low excess solar power for auto mode 1 = enabled, 0 = disabled. | UInt16 | - | 1 | RW |
| 5129 | 1 | Charging current limit external 0 = no limit, 1 = charging current limited to 6 A. | UInt16 | - | 1 | RW |
| 5130 | 1 | Inverter overtemperature protection 1 = enabled, 0 = disabled. | UInt16 | - | 1 | RW |
| 5131 | 1 | Inverter overtemperature protection: current restore timeout | UInt16 | s | 1 | RW |
| 5132 | 1 | Light ring brightness limit 0 = light ring off, 100 = no limit. | UInt16 | % | 1 | RW |
| 5133 | 1 | CP auto-calibration state 1 = enabled, 0 = disabled. | UInt16 | - | 1 | RW |
| 5134 | 1 | Battery powered: low excess power threshold | UInt16 | W | 1 | RW |
| 5135 | 1 | Battery powered: emulated BKPB power | Int16 | W | 1 | RW |
| 5136 | 1 | Battery powered: emulated BKPB SoC | UInt16 | % | 1 | RW |
| 5137 | 1 | Battery powered: feed-in detection 1 = enabled, 0 = disabled. | UInt16 | - | 1 | RW |
| 5138 | 1 | Battery powered: BKPB SoC max | UInt16 | % | 1 | RW |
| 5139 | 1 | Multiple relay charging: conditions check delay | UInt16 | s | 1 | RW |
| 5141 | 1 | Session saved cost Raw value is currency*100. | UInt16 | - | 0.01 | R |
| 5142 | 1 | Energy price per kWh H Raw value is price*1000. Write the high word first. | UInt16 | - | 0.001 | RW |
| 5143 | 1 | Energy price per kWh L Price = (H * 65536 + L) / 1000. | UInt16 | - | 0.001 | RW |
Read this device live with Modbus Connect, free for Windows, macOS and Linux
Related guides
Notes
Source: Victron Energy "EV Charging Station - Modbus TCP register list" v3.9 (XLSX, sheet "Holding registers"), vendor-hosted at https://www.victronenergy.com/upload/documents/EVCS-Modbus-TCP-register-list-v3.9.xlsx. The list states unit ID 1 and prints plain register numbers from 5000 up, stored here unchanged as zero-based wire addresses. Multi-register values are high word first, which matches the document's Total energy H / Total energy L and Energy price H / L pairs; values the document splits into H and L words are listed as those two registers. Registers 5000-5143 are populated in v3.9; 5144 and above are unassigned and left out, as is 5140 (Not assigned). The document names no TCP port, so 502 is the Modbus/TCP default. This is the EVCS's own Modbus TCP server; the com.victronenergy.evcharger registers a GX device exposes are a different map and are not claimed here. The library's victron-gx-cerbo seed covers the GX device, not this charger. File identity: SHA-256 7ec6fd16d65438d62d00d832cabbb5c15b7ef3416d6a6106d4bd6ee004f190f2 (XLSX, downloaded 2026-11-07 from the vendor URL above).