
Keba Modbus
The Keba KeContact P30 is a Mode 3 AC EV wallbox used in residential, commercial, and fleet charging installations. This Modbus template connects to the P30 c-series and x-series over Modbus TCP and reads charging state, cable state, active power, session energy, cumulative energy, power factor, and maximum current limits. Write registers let your energy management system set the charging current in milliamps, define a session energy limit, enable or disable the station, and trigger a 1-phase/3-phase switch. The template gives installers live charge supervision and dynamic load control directly inside the ModbusCloud portal.
- Protocol
- Modbus TCP
- Connection
- Ethernet, Modbus TCP
- Registers
- 21, read and write
- Brand
- Keba
- Last updated
Registers (21)
15 read, 6 write
| Name | Unit | Access | Address (Hidden until you enter your email) | Function (hidden) | Type (hidden) |
|---|---|---|---|---|---|
| charging_state | Read | ||||
| cable_state | Read | ||||
| error_code | Read | ||||
| serial_number | Read | ||||
| firmware | Read | ||||
| active_power | W | Read | |||
| active_production_energy | Wh | Read | |||
| power_factor | % | Read | |||
| max_charging_current | A | Read | |||
| max_supported_current | A | Read | |||
| energy_session | Wh | Read | |||
| phase_switch_source | Read | ||||
| phase_switch_state | Read | ||||
| failsafe_current_setting | A | Read | |||
| failsafe_timeout_setting | s | Read | |||
| set_charging_current | A | Write | |||
| set_energy_limit | Wh | Write | |||
| set_unlock_plug | Write | ||||
| set_enable | Write | ||||
| set_phase_switch_source | Write | ||||
| set_trigger_phase_switch | Write |
Loading registers…
Send your device list
If a device is not in the library yet, we build the template for free as soon as we have the register data.
Use cases
- Monitor active power and session energy to verify that EV charging stays within contracted site load limits.
- Alert on non-zero error codes to detect wallbox faults before a driver reports a failed charging session.
- Track cumulative energy across multiple Keba wallboxes to produce monthly site charging reports.
- Compare max_supported_current against max_charging_current to confirm cable coding is correctly recognised after a cable replacement.
- Verify phase_switch_state after a 1-phase to 3-phase transition to confirm the KeContact S10 phase switch operated correctly.
Installation
Enable Modbus TCP on the wallbox by setting DIP switch DSW1.3 to ON on the PCB, then restart the station by pressing the Service button for one second or cycling the circuit breaker.
Connect the wallbox Ethernet port (LSA+ terminal X4 for permanent installation, or RJ45 port X3 for testing) to the same LAN segment as the ModbusCloud Gateway using a Cat 5e or Cat 6 cable.
In the ModbusCloud portal, add a new device, import the Keba Modbus template, set the IP address to the wallbox's LAN address, TCP port 502, and set the unit ID to 255.
Spot-check the connection by reading register 1000 (charging_state) and register 1020 (active_power); confirm the values match the physical state shown on the wallbox display.
Things to watch for
All registers return zero or connection fails immediately. Why?
Modbus TCP and the UDP interface share the same port and cannot run simultaneously on the P30. If the wallbox was previously controlled via UDP, DIP switch DSW1.3 must be set to ON and the station restarted before Modbus TCP will respond. Also confirm the unit ID in your portal configuration is exactly 255.
The active_power register reads in milliwatts, not watts. Is my scaling wrong?
The Keba P30 Modbus documentation states that register 1020 reports active power in milliwatts internally. The template maps this to the unit 'W' after dividing by 1000. If your portal shows raw register values without scaling, apply a divide-by-1000 factor to convert milliwatts to watts.
Writing to set_charging_current has no effect. What should I check?
The P30 only accepts current values between 6000 and 63000 (milliamps); values outside this range are silently ignored. Also verify that register 5014 (set_enable) is set to 1 to enable the station. The hardware-rated maximum from cable coding and DIP switches always takes precedence over the written setpoint.
Is it safe to write to set_enable or set_trigger_phase_switch during an active session?
Use write registers with care during active charging. Disabling the station via set_enable immediately stops an ongoing session. Triggering a phase switch mid-session can interrupt charging and, on some firmware versions, requires the charging process to be stopped beforehand. Unexpected writes may also invalidate manufacturer warranty coverage for damaged sessions. Always test write sequences in a controlled environment before deploying automation.
More Keba templates
Want to see how it works?










