
The KEBA KeContact P30 is a Mode 3 AC wallbox for electric vehicles, available in c-series and x-series variants with up to 32 A / 22 kW charging power. TapHome communicates with the wallbox via Modbus TCP over Ethernet, providing real-time charging status, energy metering, current control and failsafe management.
The template supports both the c-series (firmware 3.10.16+) and x-series (software 1.11+). The e-series and a-series do not support Modbus TCP.
Hardware connection
The KeContact P30 provides two Ethernet interfaces (connected in parallel on the PCB — only one can be used at a time):
- Ethernet1 (X4) — LSA+ terminals, recommended for permanent installation (SmartHome, charging network)
- Ethernet2 (X3) — RJ45 connector, intended for debug/service
Connect the wallbox to the same local network as TapHome Core using a Cat 5e or Cat 6 STP cable.
System connection diagram

The diagram shows the overall connection scheme including the power supply terminals (L1, L2, L3, N, PE), enable input X1, switch contact output X2 and the Ethernet interface for Modbus TCP communication.
LSA+ Ethernet terminal (X4)

For permanent installations, use the LSA+ terminal block (X4). Wire the Ethernet cable according to TIA-568A/B color coding for 100BaseT (pins 1-4 plus shield).
Compensation currents flowing through shielding in extended systems can damage the Ethernet interfaces. PoE devices connected to the wallbox must comply with IEEE 802.3 standard.
Configuration
Enabling Modbus TCP communication
Modbus TCP is activated via DIP switch DSW1.3 on the wallbox PCB. Set DSW1.3 to ON and restart the charging station (press the Service button for ~1 second or cycle the circuit breaker).


The Modbus TCP interface cannot be used simultaneously with the UDP interface. Enabling DSW1.3 activates whichever protocol the controlling application uses on port 502.
Connection parameters
When importing the template in TapHome, provide:
- IP Address — the wallbox IP on the local network
- Port — 502
- Unit ID — must be set to 255 (this is non-standard and cannot be changed)
IP address configuration (c-series)
The c-series obtains an IP address via DHCP by default (all DSW2.1-DSW2.4 switches OFF). Alternatively, a fixed IP address in the range 192.168.25.11-25 can be assigned using DIP switches DSW2.1-DSW2.4:
| DSW2.1 | DSW2.2 | DSW2.3 | DSW2.4 | IP Address |
|---|---|---|---|---|
| OFF | OFF | OFF | OFF | DHCP |
| ON | OFF | OFF | OFF | 192.168.25.11 |
| ON | ON | OFF | OFF | 192.168.25.13 |
| ON | ON | ON | ON | 192.168.25.25 |
Each switch adds its value (1, 2, 4, 8) to a base of 10. The x-series does not support fixed IP via DIP switches.
If using DHCP, assign a static lease in the router to prevent the IP address from changing after a power cycle.
Communication limits
- Read interval: recommended > 0.5 seconds
- Write interval: recommended > 5 seconds
- Max read length: 2 words per request — registers cannot be batched
- Allowed IP ranges: RFC 1918 private addresses only (192.168.x.x, 172.16-31.x.x, 10.x.x.x)
Device capabilities
Charging state monitoring
- Charging State — read-only multi-value sensor showing the current charging process status: Start-up, Not Ready, Ready, Charging, Error, Interrupted. An error event is raised automatically when the state changes to Error.
- Cable State — read-only multi-value sensor indicating the cable/plug connection status: No cable, Connected to station, Locked, Connected to EV, Locked and charging. The Unlock Plug action allows unlocking the cable when charging is suspended.
Energy metering
- Energy Meter — monitors active power (mW converted to kW) and total energy consumption (0.1 Wh converted to kWh). Per-phase voltage (U1, U2, U3), per-phase charging current (L1, L2, L3), power factor (cos phi), maximum charge current and hardware-supported maximum current are available as service attributes.
- Session Energy — tracks the energy transferred during the current charging session in kWh.
Charging control
The Charging State device provides two service actions for active charge management:
- Set Charging Current — sets the maximum charging current (6-63 A). The value is written in milliamps and applies until the next reboot.
- Set Charging Session — sets an energy limit for the current or next session in Wh. The charging process terminates automatically when the limit is reached.
Station management
Module-level service actions provide station-wide control:
- Charging Station Enable/Disable — enables or disables the wallbox. A disabled station will not start new charging sessions and any active charge is stopped.
- Failsafe Activation — activates failsafe mode with a specified current (6-32 A) and timeout (10-600 seconds). If TapHome loses communication with the wallbox, charging reverts to the configured failsafe current after the timeout expires.
- Failsafe Deactivation — deactivates failsafe mode by clearing the timeout.
Station identification
Module-level service attributes expose device identification data: Serial Number, Firmware version (hex-encoded), Product Type (encoding model, connector, current rating, series and meter type), Cable/Socket type, Supported Current, Device Series (c-series or x-series) and Energy Meter type (standard, MID-calibrated or nationally certified).
Additional capabilities
The KeContact P30 also exposes registers for error code reporting (decimal-to-hex error groups), RFID card UID reading, and 1-phase/3-phase switching via an external contactor (x2 contact). These capabilities can be added in a future template update.
Troubleshooting
No Modbus communication
- Verify DIP switch DSW1.3 is set to ON and the station has been restarted
- Confirm Unit ID is set to 255 in TapHome — this is a non-standard value that is easily missed
- Check that the Ethernet cable is properly connected to X3 (RJ45) or X4 (LSA+), not both
- Ensure the wallbox IP address is reachable from TapHome Core (same subnet, no firewall blocking port 502)
- For c-series with DHCP: check the router’s DHCP lease table for the wallbox IP
Charging current not changing
The Set Charging Current command only accepts values between 6000 and 63000 mA. Values outside this range are ignored. Note that the hardware maximum (determined by DIP switches, cable coding and temperature) takes precedence — the configured current cannot exceed this limit.
Failsafe not activating
Failsafe requires both a current value (register 5016) and a timeout value (register 5018). Sending the failsafe current alone does not activate failsafe mode — the timeout must also be set. To persist failsafe settings across reboots, the Failsafe Persist command must be used separately.
Socket variant shows 6 A maximum
On socket variants (without permanently attached cable), the Max Supported Current register shows 6000 mA (6 A) when no cable is plugged in. This is normal behavior — the value updates to the actual cable rating once a cable is connected.
