All devices

KEBA · EV charger

KeContact P30 (c-series / x-series) Modbus register map

Download JSONSupplier documentationSuggest an edit

Default configuration

Protocol
Modbus TCP
Port
502
Unit ID
255
Addressing
0-based
Byte order
Big endian
Word order
High word first

Register map

AddressCountNameTypeUnitScaleAccess
10002
Charging state
0 = start-up, 1 = not ready for charging, 2 = ready and waiting for the vehicle, 3 = charging, 4 = error, 5 = interrupted because of overtemperature or suspended mode.
UInt32-1R
10042
Cable state
0 = no cable, 1 = cable connected to the station only, 3 = connected and locked at the station, 5 = connected to station and vehicle, 7 = connected to station and vehicle and locked (charging).
UInt32-1R
10062
Error code
0 = no error, other values are error codes: convert to hex, the leading group is the error group.
UInt32-1R
10082
Charging current L1
UInt32A0.001R
10102
Charging current L2
UInt32A0.001R
10122
Charging current L3
UInt32A0.001R
10142
Serial number
UInt32-1R
10162
Product type and features
Packed type code: product, cable/socket, supported current (1 = 13 A, 2 = 16 A, 3 = 20 A, 4 = 32 A), device series (1 = c-series, 0 = x-series), energy meter class, RFID support.
UInt32-1R
10182
Firmware version
Convert to hex, e.g. 0x30A0D00 = firmware 3.10.14. In P30 Modbus TCP version 1.11 this register is at 1013.
UInt32-1R
10202
Active power
UInt32W0.001R
10362
Total energy
Persistent device lifetime energy meter.
UInt32Wh1R
10402
Voltage L1
UInt32V1R
10422
Voltage L2
UInt32V1R
10442
Voltage L3
UInt32V1R
10462
Power factor
cos phi in 0.1 %: raw 928 = 92.8 %.
UInt32%0.1R
11002
Max charging current
Maximum charging current currently configured on the station.
UInt32A0.001R
11102
Max supported current
Minimum of DIP switch setting, cable coding and temperature monitoring. Socket variants report 6 A while no cable is plugged in.
UInt32A0.001R
15002
RFID card
First four bytes of the UID of the RFID card that authorised the session, as a decimal number; convert to hex for the UID.
UInt32-1R
15022
Charged energy
Energy transferred in the current charging session.
UInt32Wh1R
15502
Phase switching source
Communication channel currently allowed to switch contact x2.
UInt32-1R
15522
Phase switching state
1 = one phase, 3 = three phases.
UInt32-1R
16002
Failsafe current setting
Failsafe current set by the last failsafe command (may differ from the persisted setting).
UInt32A0.001R
16022
Failsafe timeout setting
UInt32s1R
50041
Set charging current
Charging current setpoint, 6000-63000 mA; valid until the station reboots.
UInt16A0.001W
50101
Set energy
Energy to transfer in the current or next session, in units of 10 Wh; the session ends when the value is reached.
UInt16Wh10W
50121
Unlock plug
Write 0 to unlock the plug; only possible while the station is in suspended state.
UInt16-1W
50141
Enable / disable charging station
0 = disable charging station, 1 = enable charging station. An active session is stopped.
UInt16-1W
50161
Failsafe current
0 deactivates charging on communication loss, 6000-32000 sets the failsafe current in mA.
UInt16A0.001W
50181
Failsafe timeout
Activates the failsafe: 0 deactivates it (charging continues at the highest possible value), 10-600 sets the timeout in seconds.
UInt16s1W
50201
Failsafe persist
Write 1 to persist the current failsafe settings to the PDC.
UInt16-1W
50501
Set phase switch toggle
Communication channel allowed to switch contact x2: 0 = none, 1 = OCPP, 2 = REST API, 3 = Modbus, 4 = UDP.
UInt16-1W
50521
Trigger phase switch
0 = one phase (default state), 1 = three phases.
UInt16-1W

Notes

Source: KEBA, "KeContact P30 Charging Station - Modbus TCP Programmers Guide", V1.04 (2022). The station is the Modbus TCP server on port 502 with unit ID 255, and only the holding-register area is used, with function codes 03 (read) and 06 (write). All readable values are UINT32 and therefore occupy two registers; the guide states that a single register cannot be read on its own, so the maximum read length per request is two words -- read each two-register value as one request. Register numbering starts at 0; some third-party tools need +1. The guide's failsafe section shows index 5016 three times (for 5016, 5018 and 5020); the register names and the description order imply 5016 = failsafe current, 5018 = failsafe timeout, 5020 = failsafe persist, which is also what the evcc KEBA implementation writes. Phase switching additionally needs the KeContact S10 phase switch and register 5050 set to 3.