TapHome

KEBA KeContact P20 Status

Packet Parser → UDP
Eingereicht von
Zuletzt aktualisiert: 06. 2026
KEBA KeContact P20 Status

Die KEBA KeContact P20 ist eine AC Mode 3 EV-Wallbox (10–32 A, einphasig oder dreiphasig), die zwischen 2012 und 2016 hergestellt wurde. Ihr UDP-basiertes „SmartHome Interface" wird von den Hardware-Varianten c-series und c-series+PLC (Produktcodes KC-P20-xxxxxx2x-xxx und KC-P20-xxxxxx3x-xxx) mit Firmware 2.5 oder höher unterstützt. Die e-series und b-series implementieren diese Schnittstelle nicht.

TapHome kommuniziert mit der Wallbox über UDP auf Port 7090 mit dem nativen KEBA-Protokoll. In jedem Abfragezyklus (standardmäßig 10 s) sendet TapHome den Textbefehl report 2 an die Wallbox und parst die zurückgegebene JSON-Nutzdaten in einen schreibbaren Freigabeschalter, drei Reedkontakte für Steck-/Verriegelungsstatus, einen Multi-Value-Ladezustand und ein schreibbares Benutzerstromlimit. Steuerbefehle (ena, curr) werden über denselben UDP-Kanal zurückgeschickt.

Diese Vorlage stellt Zustand und Steuerung bereit. Für elektrische Messungen (phasenspezifische Spannungen und Ströme, Wirkleistung sowie Sitzungs-/Gesamtenergie) importieren Sie die Schwester-Vorlage KEBA KeContact P20 Leistungsüberwachung gegen dieselbe Wallbox — beide Vorlagen nutzen unterschiedliche Reports (report 2 vs. report 3) und können sicher parallel laufen für eine vollständige Überwachungs- und Steuerintegration.

Anforderungen

  • KEBA KeContact P20 c-series oder c-series+PLC (Elektronik-Ziffer 2 oder 3 im Produktcode auf dem Typenschild)
  • Firmware ≥ 2.5 (ältere Firmware implementiert den UDP-Befehl report 2 nicht)
  • Wallbox im selben LAN wie der TapHome Core über Ethernet angeschlossen (LSA+-Klemmen X4 oder RJ45-Buchse X3)
  • UDP-Port 7090 darf zwischen Core und Wallbox nicht durch eine Firewall blockiert sein
  • Die Modbus-TCP-Schnittstelle muss deaktiviert sein — UDP und Modbus TCP schließen sich auf der P20 gegenseitig aus

Hardwareanschluss

Verkabelung und Ethernet-Anschluss sind identisch mit der Schwester-Vorlage Leistungsüberwachung — dasselbe physische Gerät wird von beiden Vorlagen über denselben UDP-Kanal adressiert. Siehe KEBA KeContact P20 Leistungsüberwachung → Hardwareanschluss für Cat 5e/STP-Verkabelung, Auswahl LSA+ (X4) vs. RJ45 (X3) und die Warnung zu Ausgleichsströmen über die Ethernet-Schirmung.

Konfiguration

Aktivierung der UDP SmartHome-Schnittstelle

Die UDP-Schnittstelle wird durch einen einzigen DIP-Schalter auf der Wallbox-PCB aktiviert, der unter der Abdeckung des Anschlussfeldes liegt. DSW1.3 = ON ist zwingend — ohne ihn antwortet die Wallbox auf keinen report-Befehl an Port 7090. DIP-Schalter-Änderungen werden erst nach einem Druck auf den Service-Knopf (~1 s) oder nach einem Netzausschalten wirksam.

KEBA KeContact P20 DIP-Schalter-Layout zeigt die Einstellung DSW1.3 ON zur Aktivierung der UDP SmartHome-Schnittstelle

Die vollständige DIP-Schalter-Tabelle (DSW1- und DSW2-Adressierung) ist in der Schwester-Vorlage dokumentiert — siehe KEBA KeContact P20 Leistungsüberwachung → Konfiguration. Die Einstellung ist identisch, da dieselbe physische Wallbox betroffen ist.

Die UDP-Schnittstelle und die Modbus-TCP-Schnittstelle können nicht gleichzeitig aktiv sein. Wenn Modbus TCP zuvor an dieser Station aktiviert war, deaktivieren Sie es, bevor Sie die TapHome-UDP-Vorlage verwenden.

TapHome-Import-Parameter

Beim Importieren der Vorlage angeben:

  • IP Address — IP-Adresse der Wallbox im lokalen Netzwerk (Platzhalter 192.168.0.1)
  • Port7090 (durch das KEBA-Protokoll festgelegt)
  • Internal poll interval — standardmäßig 10000 ms; das KEBA-Protokoll toleriert kürzere Intervalle, empfiehlt jedoch mindestens 5 s zwischen Wiederholungen desselben Befehls

Wenn die Wallbox DHCP verwendet, vergeben Sie im Router eine statische DHCP-Reservierung, damit sich die IP-Adresse nach einem Stromausfall nicht ändert. TapHome speichert die IP als Import-Parameter und erkennt das Gerät nicht automatisch.

Gerätefunktionen

Alle Werte werden aus der JSON-Nutzdaten von report 2 abgeleitet. Schreibvorgänge verwenden die UDP-Textbefehle ena und curr; nach jedem Schreibvorgang folgt sofort eine report 2-Abfrage, um den Vorlagenzustand zu aktualisieren.

Ladesteuerung
  • Laden aktiviert — schreibbarer Ein/Aus-Schalter. Sendet ena 1 zur Aktivierung oder ena 0 zur Deaktivierung der Station. Spiegelt das Flag Enable user aus report 2 wider. OFF-Schreibvorgang pausiert das Laden dauerhaft, bis es erneut aktiviert wird oder die Station neu startet; KEBA schreibt eine verpflichtende 2-Sekunden-Pause nach ena 0 vor, bevor der nächste Befehl akzeptiert wird.
  • Benutzer-Ladestrom — schreibbarer maximaler Ladestrom in Ampere. Sendet den curr-Befehl in Milliampere (Vorlage multipliziert intern mit 1000). Gültiger Bereich ist 6–63 A; die Wallbox begrenzt den effektiven Wert durch den Hardware-Grenzwert (DIP-Schalter, Kabelkodierung, thermisches Derating) und die neue Einstellung wirkt sich nach 6–7 Sekunden auf das Control-Pilot-PWM aus.

curr ist eine dauerhafte Einstellung — sie bleibt bestehen, bis curr erneut geschrieben wird oder die Station neu startet. KEBA empfiehlt die nicht-dauerhafte Variante currtime für den Regelbetrieb, da sie beim Ausstecken zurückgesetzt wird. Diese Vorlage stellt nur curr bereit; für geplantes Laden oder automatische Reset-Semantik steuern Sie den Benutzer-Ladestrom über eine TapHome Smart Rule, die den Zielwert kurz vor Beginn einer Sitzung schreibt und nach dem Ausstecken auf den gewünschten Ruhewert zurücksetzt.

Steck- und Verriegelungsstatus

Drei unabhängige Reedkontakte, jeder aus einem separaten Bit der Plug-Bitmaske in report 2 abgeleitet:

GerätPlug-BitMaskeBedeutung
An Wallbox eingesteckt00x01Kabel ist in der Wallbox-Buchse eingesteckt (bei nicht fest angeschlossenen Kabeln)
Kabel verriegelt10x02Kabel ist mechanisch in der Wallbox-Buchse verriegelt
Am Fahrzeug eingesteckt20x04Kabel ist am EV eingesteckt

Das Laden erfordert alle drei Bits gesetzt (Plug = 7). Die einzelnen Geräte erlauben zu unterscheiden, ob der Benutzer das Auto, die Wallbox oder beides getrennt hat.

Ladezustand
  • Ladezustand — Multi-Value-Gerät, das den Betriebsmodus der Wallbox zeigt, abgebildet aus dem Feld State von report 2:
Raw StateBedeutung im Protokoll (UDP Programmers Guide V 2.03)Anzeige in der Vorlage
0StartupStartet
1Nicht ladebereit (nicht angeschlossen, verriegelt oder blockiert)Nicht bereit
2Ladebereit, wartet auf FahrzeugBereit
3LädtLädt
4Fehler vorhandenFehler
5Ladevorgang vorübergehend unterbrochenNicht autorisiert

Die Vorlage zeigt raw State = 5 als Nicht autorisiert an, der KEBA UDP Programmers Guide V 2.03 (§3.2.3) dokumentiert diesen Wert jedoch als „Ladevorgang vorübergehend unterbrochen" (z. B. wegen Übertemperatur oder Ablehnung durch einen Voter). Wenn der Ladezustand „Nicht autorisiert" ohne laufende RFID-Sitzung angezeigt wird, behandeln Sie ihn als vorübergehende Unterbrechung, nicht als Autorisierungsfehler. Der Rohwert kann durch direkte report 2-Abfrage der Wallbox auf UDP-Port 7090 überprüft werden.

Fehlerbehebung

TapHome zeigt keine Daten von der Wallbox an
  1. Überprüfen Sie den Produktcode der Wallbox auf dem Typenschild. UDP wird nur von KC-P20-xxxxxx2x-xxx (c-series) und KC-P20-xxxxxx3x-xxx (c-series+PLC) unterstützt
  2. Bestätigen Sie, dass die Firmware-Version ≥ 2.5 ist. Firmware-Updates sind im Download-Bereich auf keba.com/emobility verfügbar
  3. Bestätigen Sie DSW1.3 = ON — das häufigste Setup-Problem. Die DIP-Schalter befinden sich unter der Abdeckung des Anschlussfeldes und werden bei der Inbetriebnahme leicht übersehen. Nach dem Umschalten Service-Knopf 1 Sekunde drücken oder Sicherung aus- und einschalten
  4. Stellen Sie sicher, dass UDP-Port 7090 zwischen TapHome Core und Wallbox offen ist (keine VLAN-/Firewall-Blockierung)
  5. Bestätigen Sie, dass die Modbus-TCP-Schnittstelle an der Wallbox nicht aktiv ist — UDP und Modbus TCP schließen sich gegenseitig aus
Schreiben des Schalters Laden aktiviert wirkt nicht

Einige Stationskonfigurationen überschreiben Enable user über den externen Freigabeeingang X1 oder über ein aktives Failsafe-Ereignis. Wenn ena 1 die Station nicht aus dem deaktivierten Zustand herausführt:

  • Überprüfen Sie, ob DSW1.1 auf ON steht (externer Freigabeeingang wird verwendet). Falls ja, prüfen Sie, dass der Kontakt X1 geschlossen ist.
  • Beobachten Sie Enable sys in der rohen report 2-Nutzdaten — wenn Enable sys = 0 ist, verweigert die Station die Aktivierung unabhängig von Enable user (typisch wegen Failsafe-Timeout oder Temperaturgrenzwert). Die Vorlage stellt Enable sys nicht bereit; überprüfen Sie über die Status-LED der Wallbox oder eine direkte UDP-Abfrage.
Änderung des Benutzer-Ladestroms wirkt nicht

Nach dem Schreiben eines neuen Stroms braucht die Station 6–7 Sekunden, um die Änderung intern anzuwenden. Wenn der neue Wert im Readback nie erscheint:

  • Überprüfen Sie, dass das Ziel im gültigen Bereich 6000–63000 mA (6–63 A) liegt. Werte außerhalb dieses Bereichs werden von der Wallbox stillschweigend abgelehnt.
  • Bestätigen Sie, dass kein Failsafe-Ereignis aktiv ist — bei Auslösung überschreibt Max curr = Curr FS den Wert Curr user, bis der Failsafe zurückgesetzt wird.
  • Denken Sie daran, dass curr eine dauerhafte Einstellung ist. Wenn ein vorheriger currtime-Befehl noch läuft (von einem anderen Client abgesetzt), wird curr ignoriert, bis der currtime-Timer abläuft oder currtime 0 0 ihn zurücksetzt.
Ladezustand bleibt auf Fehler oder Nicht autorisiert hängen

Fehler (raw State = 4) weist auf einen von der Station gemeldeten Fehlerzustand hin. Die Felder Error1 und Error2 in report 2 enthalten den numerischen Fehlercode, werden aber von der Vorlage nicht bereitgestellt — fragen Sie die Wallbox direkt über UDP-Port 7090 mit report 2 ab, um sie zu lesen, oder schauen Sie auf die Status-LED der Station.

Nicht autorisiert ist die Anzeige der Vorlage für raw State = 5, den KEBA als „Ladevorgang vorübergehend unterbrochen" dokumentiert. Häufige Ursachen sind Übertemperatur, eine aktive Voter-Ablehnung oder eine bewusste Unterbrechung im KEBA-Steuerfluss. Ein Neustart der Wallbox oder das Abwarten, bis die Unterbrechungsbedingung verschwindet, stellt den Ladezustand normalerweise wieder her. Diese Vorlage bietet keinen RFID-Autorisierungsfluss — die RFID-Whitelist wird weiterhin über die KEBA-App und physische Master-Karten verwaltet.

Verfügbare Geräte

Keba KeContact P20 Status Modul
Benutzerdefinierte Variablen

Keba KeContact P20 State

Lesen (Modul)
SENDDATA("report 2");
Listener
VAR jsonString := TOSTRING(RECEIVEDBYTES);
VAR id := PARSEJSON(jsonString, "$.ID", 1);

IF(id = 2)
    report2 := jsonString;
END
Laden aktiviert Schalter

Schreibbarer Ein/Aus-Schalter — aktiviert oder deaktiviert das Laden über den UDP-Befehl `ena` (dauerhaft bis zum Neustart oder zur erneuten Aktivierung)

boolean json_path
Werte / Zustände: ${general_enabled} · ${general_disabled}

Laden aktiviert

Schaltzustand schreiben
SENDDATA("ena " + St);
SENDDATA("report 2");
Listener
St := PARSEJSON(report2, "$.['Enable user']", 1)
Kabel verriegelt Reed-Kontakt Nur lesen

Zeigt an, ob das Kabel mechanisch in der Wallbox-Buchse verriegelt ist (Plug-Bit 1)

boolean bitmask

Kabel verriegelt

Listener
Rc := PARSEJSON(report2, "$.Plug", 1) & 0x02
Am Fahrzeug eingesteckt Reed-Kontakt Nur lesen

Zeigt an, ob das Ladekabel mit dem Elektrofahrzeug verbunden ist (Plug-Bit 2)

boolean bitmask

Am Fahrzeug eingesteckt

Listener
Rc := PARSEJSON(report2, "$.Plug", 1) & 0x04
An Wallbox eingesteckt Reed-Kontakt Nur lesen

Zeigt an, ob ein Kabel in die Wallbox-Buchse eingesteckt ist (Plug-Bit 0)

boolean bitmask

An Wallbox eingesteckt

Listener
Rc := PARSEJSON(report2, "$.Plug", 1) & 0x01
Ladezustand Mehrwertschalter Nur lesen

Betriebszustand der Wallbox — Startet, Nicht bereit, Bereit, Lädt, Fehler oder Nicht autorisiert

numeric json_path
Werte / Zustände: ${starting} · ${notReady} · ${ready} · ${charging} · ${error} · ${notAuthorized}

Ladezustand

Listener
VAR state := PARSEJSON(report2, "$.State");
Mu := SWITCH(State, 0, 1, 1, 2, 2, 3, 3, 5, 4, 8, 5, 9, 1)
Benutzer-Ladestrom Variable

Schreibbarer maximaler Ladestrom in Ampere (6–63 A) — über den UDP-Befehl `curr` in Milliampere an die Wallbox gesendet

numeric Einheit: A json_path

Benutzer-Ladestrom

Schreiben
SENDDATA("curr " + Va*1000);
SENDDATA("report 2");
Listener
Va := PARSEJSON(report2, "$.['Curr user']", 1) / 1000.0
Verbindung: Packet Parser → UDP
Mögliche Verbesserungen (24)
  • Error Codes — Decimal error codes indicating the cause of an error state. Not exposed by the template — only the generic Error state is surfaced through the `State` device.
  • RFID Authorization Flags — AuthON (authorization function enabled) and Authreq (RFID authorization pending). Useful only when the wallbox whitelist is in use; template has no RFID flow.
  • System Enable — Separate enable flag managed by the station (distinct from `Enable user`). Goes to 0 when failsafe triggers or on thermal/hardware limits.
  • Actual Charging Current Limit — Effective current offered to the vehicle via PWM (mA) and the duty cycle (0.1% units). Different from `Curr user` — this is the resolved minimum of user setting, hardware limit, failsafe, and thermal derating.
  • Hardware Current Limit — Maximum current the hardware supports based on DIP switch amperage setting, cable coding, and temperature monitoring. Static upper bound.
  • Failsafe Current / Timeout — Fallback current and communication timeout configured via the `failsafe` command. Exposes current safety configuration; template has no diagnostic device.
  • Pending Current Setting (currtime) — Queued current value and remaining countdown from an active `currtime` command. Useful for scheduled charging but not surfaced.
  • Session Energy Limit — Active energy limit for the current/next charging session (0.1 Wh units). Set via `setenergy` command — template does not read or write it.
  • Aux Relay Output State — Last `output` command setting for the X2 auxiliary relay. Template does not mirror relay state.
  • External Enable Input (X1) — Current state of the external enable input X1 (ripple control / time switch contact). Requires DIP DSW1.1 = ON. Could be exposed as an independent reed contact.
  • Serial Number — Device serial (8 chars) present in `report 2` JSON. Not mapped to a service attribute by the template.
  • System Uptime — System clock seconds since startup. Useful for reboot detection but not surfaced.
  • Set Charging Current with Delay — Non-permanent, delayed current setting — the KEBA-recommended primary current control command (preferred over `curr`). Allows scheduled current adjustments and safe `currtime 0 1` stop.
  • Set Energy Limit — Sets a per-session energy limit (0.1 Wh units). Charging stops automatically when the limit is reached.
  • Auxiliary Relay Output (X2) — Control the auxiliary relay at terminal X2 (open/close/pulse). Requires DIP DSW1.2 = ON.
  • RFID Start / Stop — Programmatic RFID authorization when AuthON = 1 and a whitelist is configured.
  • Set Station Clock — Set the station clock via Unix epoch. Useful when NTP is unavailable.
  • Show Display Text — P30 only — not functional on P20 (no display). Listed for reference.
  • Unlock Socket — Unlocks the charging socket (requires charging to be stopped first). Useful after an interrupted session.
  • Failsafe Configuration — Fallback current when communication is lost. Important safety feature — template does not expose it.
  • Device Identification — Basic identification: Product name, Serial, Firmware, COM-module flag, Backend flag, timeQ. Template polls only `report 2`.
  • Power Monitoring — Voltage (U1/U2/U3), current (I1/I2/I3), active power (P), power factor (PF), present/total energy. Covered by the sibling `keba-kecontact-p20-power-monitoring` template.
  • Charging Session History — Last 30 charging sessions (Session ID, E start, E pres, start/end timestamps, termination reason, RFID tag). Not applicable to real-time state monitoring.
  • Push Notifications on State Change — Station can push State, Plug, Input, Enable sys, Max curr and E pres changes to the last UDP sender without polling. Template uses polling only.

Quellen

  • KeContact P20 / P30 UDP Programmers Guide V 2.03
    sollis.de 2026-04-23
  • KeContact P20 / P30 Installation manual V 3.20
    www.keba.com 2026-04-23

Haben Sie ein Problem mit dieser Gerätevorlage gefunden?

Sagen Sie uns, was nicht funktioniert, was fehlt oder wie sich die Vorlage verhalten sollte. Ihr Feedback hilft uns, den Katalog genau zu halten.

Von TapHome verifiziert

Möchtest du das in deinem TapHome Core verwenden?

Öffne diese Vorlage im Kundenportal, um sie auf eine deiner Wohnungen anzuwenden, oder entwirf eine Anpassung und reiche sie an den Katalog ein.

Im Portal öffnen