TapHome

KEBA KeContact P20 Stato

Packet Parser → UDP
Inviato da
Ultimo aggiornamento: 06. 2026
KEBA KeContact P20 Stato

Il KEBA KeContact P20 è un wallbox EV AC Mode 3 (10–32 A, monofase o trifase) prodotto tra il 2012 e il 2016. La sua interfaccia „SmartHome Interface" basata su UDP è supportata sulle varianti hardware c-series e c-series+PLC (codici prodotto KC-P20-xxxxxx2x-xxx e KC-P20-xxxxxx3x-xxx) con firmware 2.5 o superiore. Le serie e-series e b-series non implementano questa interfaccia.

TapHome comunica con il wallbox tramite UDP sulla porta 7090 usando il protocollo KEBA nativo. In ogni ciclo di polling (predefinito 10 s) TapHome invia il comando testuale report 2 al wallbox e analizza il payload JSON restituito in un interruttore di abilitazione scrivibile, tre reed contact per connessione/blocco, uno stato di ricarica multi-valore e un limite di corrente utente scrivibile. I comandi di controllo (ena, curr) vengono inviati sullo stesso canale UDP.

Questo modello espone stato e controllo. Per le misurazioni elettriche (tensioni e correnti per fase, potenza attiva ed energia di sessione/vita utile) importa il modello gemello KEBA KeContact P20 Monitoraggio potenza sullo stesso wallbox — i due modelli usano report diversi (report 2 vs. report 3) e possono funzionare in parallelo in sicurezza per un’integrazione completa di monitoraggio + controllo.

Requisiti

  • KEBA KeContact P20 c-series o c-series+PLC (cifra elettronica 2 o 3 nel codice prodotto sulla targhetta)
  • Firmware ≥ 2.5 (i firmware precedenti non implementano il comando UDP report 2)
  • Wallbox connesso alla stessa LAN del TapHome Core via Ethernet (morsetti LSA+ X4 o connettore RJ45 X3)
  • La porta UDP 7090 non deve essere bloccata da firewall tra Core e wallbox
  • L’interfaccia Modbus TCP deve essere disabilitata — UDP e Modbus TCP si escludono a vicenda sulla P20

Collegamento hardware

Cablaggio e collegamento Ethernet sono identici al modello gemello Monitoraggio potenza — lo stesso dispositivo fisico è indirizzato da entrambi i modelli sullo stesso canale UDP. Vedi KEBA KeContact P20 Monitoraggio potenza → Collegamento hardware per il cablaggio Cat 5e/STP, la scelta LSA+ (X4) vs. RJ45 (X3) e l’avviso sulle correnti di compensazione attraverso lo schermo Ethernet.

Configurazione

Attivazione dell’interfaccia UDP SmartHome

L’interfaccia UDP viene attivata da un singolo DIP switch sul PCB del wallbox, sotto il coperchio del pannello connettori. DSW1.3 = ON è obbligatorio — senza di esso il wallbox non risponde ad alcun comando report sulla porta 7090. Le modifiche ai DIP switch diventano effettive solo dopo la pressione del pulsante Service (~1 s) o un ciclo di alimentazione.

Layout DIP switch KEBA KeContact P20 che mostra l'impostazione DSW1.3 ON per l'attivazione dell'interfaccia UDP SmartHome

La tabella completa dei DIP switch (indirizzamento DSW1 e DSW2) è documentata sul modello gemello — vedi KEBA KeContact P20 Monitoraggio potenza → Configurazione. La configurazione è identica perché si tratta dello stesso wallbox fisico.

L’interfaccia UDP e l’interfaccia Modbus TCP non possono essere attive contemporaneamente. Se Modbus TCP era precedentemente abilitato su questa stazione, disabilitalo prima di affidarti al modello UDP di TapHome.

Parametri di importazione TapHome

Durante l’importazione del modello, fornisci:

  • IP Address — indirizzo IP del wallbox sulla rete locale (placeholder 192.168.0.1)
  • Port7090 (fissato dal protocollo KEBA)
  • Internal poll interval10000 ms di default; il protocollo KEBA tollera intervalli più brevi ma raccomanda almeno 5 s tra ripetizioni dello stesso comando

Se il wallbox usa DHCP, assegna una riserva DHCP statica nel router in modo che l’IP non cambi dopo un’interruzione di corrente. TapHome memorizza l’IP come parametro di importazione e non rileva automaticamente il dispositivo.

Capacità del dispositivo

Tutti i valori derivano dal payload JSON di report 2. Le scritture usano i comandi testuali UDP ena e curr; ogni scrittura è seguita da un polling immediato di report 2 per aggiornare lo stato del modello.

Controllo della ricarica
  • Ricarica abilitata — interruttore on/off scrivibile. Invia ena 1 per abilitare o ena 0 per disabilitare la stazione. Riflette il flag Enable user da report 2. Scrivere OFF sospende permanentemente la ricarica fino alla riabilitazione o al riavvio della stazione; KEBA impone una pausa obbligatoria di 2 secondi dopo ena 0 prima che venga accettato il comando successivo.
  • Corrente di ricarica utente — corrente di ricarica massima scrivibile in ampere. Invia il comando curr in milliampere (il modello moltiplica internamente per 1000). Il range valido è 6–63 A; il wallbox limita il valore effettivo al limite hardware (DIP switch, codifica cavo, derating termico) e la nuova impostazione si propaga al PWM del Control Pilot dopo 6–7 secondi.

curr è un’impostazione permanente — persiste fino alla scrittura successiva di curr o al riavvio della stazione. KEBA raccomanda la variante non permanente currtime per l’uso regolare perché si resetta allo scollegamento. Questo modello espone solo curr; per la ricarica pianificata o la semantica di reset automatico, pilota la Corrente di ricarica utente da una Smart Rule di TapHome che scrive il valore target appena prima dell’inizio di una sessione e lo ripristina al valore idle desiderato dopo lo scollegamento.

Stato di connessione e blocco

Tre reed contact indipendenti, ognuno derivato da un bit separato della bitmask Plug in report 2:

DispositivoBit PlugMascheraSignificato
Collegato alla wallbox00x01Il cavo è inserito nella presa della wallbox (per cavi non permanentemente collegati)
Cavo bloccato10x02Il cavo è bloccato meccanicamente nella presa della wallbox
Collegato al veicolo20x04Il cavo è collegato all’EV

La ricarica richiede che tutti e tre i bit siano impostati (Plug = 7). I singoli dispositivi permettono di distinguere se un utente ha scollegato l’auto, la wallbox o entrambi.

Stato di ricarica
  • Stato di ricarica — dispositivo multi-valore che espone la modalità operativa del wallbox, mappato dal campo State di report 2:
Raw StateSignificato nel protocollo (UDP Programmers Guide V 2.03)Visualizzazione nel modello
0AvvioAvvio
1Non pronta per la ricarica (non connessa, bloccata o ostacolata)Non pronta
2Pronta per la ricarica, in attesa del veicoloPronta
3In ricaricaIn ricarica
4Errore presenteErrore
5Ricarica temporaneamente interrottaNon autorizzato

Il modello visualizza raw State = 5 come Non autorizzato, ma la KEBA UDP Programmers Guide V 2.03 (§3.2.3) documenta questo valore come „Ricarica temporaneamente interrotta" (ad esempio a causa di sovratemperatura o di un rifiuto del voter). Se lo Stato di ricarica mostra „Non autorizzato" senza una sessione RFID in corso, trattalo come un’interruzione temporanea piuttosto che un fallimento di autorizzazione. Il valore raw può essere verificato leggendo State direttamente da una query report 2 al wallbox sulla porta UDP 7090.

Risoluzione problemi

TapHome non mostra dati dal wallbox
  1. Verifica il codice prodotto del wallbox sulla targhetta. Solo KC-P20-xxxxxx2x-xxx (c-series) e KC-P20-xxxxxx3x-xxx (c-series+PLC) supportano UDP
  2. Conferma che la versione del firmware sia ≥ 2.5. Gli aggiornamenti firmware sono disponibili nell’area download su keba.com/emobility
  3. Conferma DSW1.3 = ON — il problema di configurazione più comune. I DIP switch si trovano sotto il coperchio del pannello connettori e sono facili da trascurare durante la messa in servizio. Dopo averli cambiati, premi il pulsante Service per 1 secondo o spegni e riaccendi l’interruttore
  4. Assicurati che la porta UDP 7090 sia aperta tra TapHome Core e wallbox (nessun blocco VLAN / firewall)
  5. Conferma che l’interfaccia Modbus TCP sul wallbox non sia attiva — UDP e Modbus TCP si escludono a vicenda
Scrivere l’interruttore Ricarica abilitata non ha effetto

Alcune configurazioni della stazione sovrascrivono Enable user tramite l’ingresso di abilitazione esterno X1 o tramite un evento failsafe attivo. Se ena 1 non porta la stazione fuori dallo stato disabilitato:

  • Controlla se DSW1.1 è su ON (ingresso di abilitazione esterno in uso). In tal caso, verifica che il contatto X1 sia chiuso.
  • Osserva Enable sys nel payload raw di report 2 — se Enable sys = 0, la stazione rifiuta l’abilitazione indipendentemente da Enable user (tipicamente per timeout failsafe o limite termico). Il modello non espone Enable sys; conferma tramite il LED di stato del wallbox o una query UDP diretta.
La modifica della Corrente di ricarica utente non si propaga

Dopo aver scritto una nuova corrente, la stazione impiega 6–7 secondi per applicare internamente la modifica. Se il nuovo valore non appare mai nella rilettura:

  • Verifica che il target sia nel range valido 6000–63000 mA (6–63 A). I valori fuori da questo range vengono silenziosamente respinti dal wallbox.
  • Conferma che non ci sia un evento failsafe attivo — all’attivazione, Max curr = Curr FS sovrascrive Curr user finché il failsafe non viene resettato.
  • Ricorda che curr è un’impostazione permanente. Se un precedente comando currtime è ancora in esecuzione (emesso da un altro client), curr viene ignorato finché il timer di currtime non scade o currtime 0 0 lo annulla.
Lo Stato di ricarica rimane bloccato su Errore o Non autorizzato

Errore (raw State = 4) indica una condizione di errore segnalata dalla stazione. I campi Error1 ed Error2 in report 2 contengono il codice numerico di errore ma non sono esposti dal modello — interroga il wallbox direttamente sulla porta UDP 7090 con report 2 per leggerli, oppure consulta il LED di stato della stazione.

Non autorizzato è l’etichetta del modello per raw State = 5, che KEBA documenta come „Ricarica temporaneamente interrotta". Cause comuni includono sovratemperatura, un rifiuto di voter attivo o un’interruzione deliberata nel flusso di controllo KEBA. Un ciclo di alimentazione del wallbox o l’attesa che la condizione di interruzione si risolva di solito ripristina lo stato In ricarica. Questo modello non espone un flusso di autorizzazione RFID — la whitelist RFID rimane gestita tramite l’app KEBA e le carte master fisiche.

Dispositivi disponibili

Keba KeContact P20 Stato Modulo
Variabili personalizzate

Keba KeContact P20 State

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

IF(id = 2)
    report2 := jsonString;
END
Ricarica abilitata Interruttore

Interruttore on/off scrivibile — abilita o disabilita la ricarica tramite il comando UDP `ena` (permanente fino al riavvio o alla riabilitazione)

boolean json_path
Valori / Stati: ${general_enabled} · ${general_disabled}

Ricarica abilitata

Scrittura stato interruttore
SENDDATA("ena " + St);
SENDDATA("report 2");
Listener
St := PARSEJSON(report2, "$.['Enable user']", 1)
Cavo bloccato Contatto reed Solo lettura

Indica se il cavo è meccanicamente bloccato nella presa della wallbox (bit 1 del campo Plug)

boolean bitmask

Cavo bloccato

Listener
Rc := PARSEJSON(report2, "$.Plug", 1) & 0x02
Collegato al veicolo Contatto reed Solo lettura

Indica se il cavo di ricarica è collegato al veicolo elettrico (bit 2 del campo Plug)

boolean bitmask

Collegato al veicolo

Listener
Rc := PARSEJSON(report2, "$.Plug", 1) & 0x04
Collegato alla wallbox Contatto reed Solo lettura

Indica se un cavo è inserito nella presa della wallbox (bit 0 del campo Plug)

boolean bitmask

Collegato alla wallbox

Listener
Rc := PARSEJSON(report2, "$.Plug", 1) & 0x01
Stato di ricarica Interruttore multivalore Solo lettura

Stato operativo della wallbox — Avvio, Non pronta, Pronta, In ricarica, Errore o Non autorizzato

numeric json_path
Valori / Stati: ${starting} · ${notReady} · ${ready} · ${charging} · ${error} · ${notAuthorized}

Stato di ricarica

Listener
VAR state := PARSEJSON(report2, "$.State");
Mu := SWITCH(State, 0, 1, 1, 2, 2, 3, 3, 5, 4, 8, 5, 9, 1)
Corrente di ricarica utente Variabile

Corrente di ricarica massima scrivibile in ampere (6–63 A) — inviata alla wallbox tramite il comando UDP `curr` in milliampere

numeric Unità: A json_path

Corrente di ricarica utente

Scrittura
SENDDATA("curr " + Va*1000);
SENDDATA("report 2");
Listener
Va := PARSEJSON(report2, "$.['Curr user']", 1) / 1000.0
Connessione: Packet Parser → UDP
Possibili miglioramenti (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.

Fonti

  • 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

Hai trovato un problema con questo template?

Dicci cosa non funziona, cosa manca o come dovrebbe comportarsi il template. Il tuo feedback ci aiuta a mantenere il catalogo accurato.

Verificato da TapHome

Vuoi usarlo nel tuo TapHome Core?

Apri questo template nel Customer Portal per applicarlo a una delle tue case, o crea una proposta di modifica e inviala al catalogo.

Apri nel portale