---
title: "KEBA KeContact P20 Stato"
description: "Controlla l'abilitazione della ricarica, monitora stato connessione/blocco e ricarica, imposta il limite di corrente sulla KEBA P20 via UDP."
url: "https://taphome.com/it/compatibility/keba-kecontact-p20-state/"
language: it
lastmod: 2026-04-24
generator: hugo
ai:
  topics: ["udp","wallbox","ev-charging","ethernet","packet-parser","charging-control"]
  questions: ["Come integrare KEBA KeContact P20 con TapHome?","Cosa fa il modello KEBA KeContact P20 State?","Come abilitare o disabilitare la ricarica sulla KEBA P20 da TapHome?","Come impostare il limite di corrente di ricarica sul wallbox KEBA P20?","Cosa significano gli stati di ricarica (Avvio, Pronta, In ricarica, Errore) sulla KEBA P20?","Posso importare entrambi i modelli KEBA P20 State e Power Monitoring contro lo stesso wallbox?"]
---

# KEBA KeContact P20 Stato

Comunicazione: Packet Parser → UDP

- [KEBA e-mobility (sito ufficiale)](https://www.keba.com/en/emobility/products/product-overview)

> Indirizzo di rete
> 
> TapHome raggiunge il dispositivo all'indirizzo inserito durante l'importazione. Assegna al dispositivo un indirizzo fisso — una prenotazione IP nel router, oppure il suo nome mDNS se lo supporta —, altrimenti l'integrazione smette di funzionare quando il router cambia l'indirizzo.
> 
> [Preparazione della rete](https://taphome.com/it/docs/setup/network-preparation/)

## Guida all'integrazione

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.

> [!NOTE]
> 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](https://taphome.com/it/compatibility/keba-kecontact-p20-power-monitoring/) 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](https://taphome.com/it/compatibility/keba-kecontact-p20-power-monitoring/#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](https://taphome.com/images/compatibility/keba-kecontact-p20-state/dip-switch-udp-activation_hu_56d2d7e4a149f687.jpg)

La tabella completa dei DIP switch (indirizzamento DSW1 e DSW2) è documentata sul modello gemello — vedi [KEBA KeContact P20 Monitoraggio potenza → Configurazione](https://taphome.com/it/compatibility/keba-kecontact-p20-power-monitoring/#configurazione). La configurazione è identica perché si tratta dello stesso wallbox fisico.

> [!WARNING]
> 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`)
- **Port** — `7090` (fissato dal protocollo KEBA)
- **Internal poll interval** — `10000` ms di default; il protocollo KEBA tollera intervalli più brevi ma raccomanda almeno 5 s tra ripetizioni dello stesso comando

## 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.

> [!TIP]
> `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`:

| Dispositivo | Bit Plug | Maschera | Significato |
|-------------|----------|----------|-------------|
| **Collegato alla wallbox** | 0 | `0x01` | Il cavo è inserito nella presa della wallbox (per cavi non permanentemente collegati) |
| **Cavo bloccato** | 1 | `0x02` | Il cavo è bloccato meccanicamente nella presa della wallbox |
| **Collegato al veicolo** | 2 | `0x04` | Il 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 `State` | Significato nel protocollo (UDP Programmers Guide V 2.03) | Visualizzazione nel modello |
|-------------|------------------------------------------------------------|------------------------------|
| 0 | Avvio | Avvio |
| 1 | Non pronta per la ricarica (non connessa, bloccata o ostacolata) | Non pronta |
| 2 | Pronta per la ricarica, in attesa del veicolo | Pronta |
| 3 | In ricarica | In ricarica |
| 4 | Errore presente | Errore |
| 5 | Ricarica temporaneamente interrotta | Non autorizzato |

> [!WARNING]
> 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 6

Questi dispositivi compaiono in TapHome dopo l'importazione.

Keba KeContact P20 Stato Modulo

Variabili personalizzate

Lettura (modulo)

```taphome
SENDDATA("report 2");
```

Listener

```taphome
VAR jsonString := TOSTRING(RECEIVEDBYTES);
VAR id := PARSEJSON(jsonString, "$.ID", 1);

IF(id = 2)
    report2 := jsonString;
END
```

Ricarica abilitata Interruttore Lettura e scrittura

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}

Scrittura stato interruttore

```taphome
SENDDATA("ena " + St);
SENDDATA("report 2");
```

Listener

```taphome
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

Listener

```taphome
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

Listener

```taphome
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

Listener

```taphome
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}

Listener

```taphome
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 Lettura e scrittura

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

Scrittura

```taphome
SENDDATA("curr " + Va*1000);
SENDDATA("report 2");
```

Listener

```taphome
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.

## Parametri di importazione

Inserisci questi valori quando importi l'XML.

| Richiesto nell'app     | Predefinito   |
|------------------------|---------------|
| Indirizzo IP           | `192.168.0.1` |
| Port                   | `7090`        |
| Internal poll interval | `10000`       |

## Fonti

- KeContact P20 / P30 UDP Programmers Guide V 2.03
  
  [sollis.de](https://sollis.de/wp-content/uploads/UDP-Programmieranleitung.pdf) 2026-04-23
- KeContact P20 / P30 Installation manual V 3.20
  
  [www.keba.com](https://www.keba.com/file/downloads/e-mobility/KeContact_KCP20_30_ih_en.pdf) 2026-04-23

I documenti del produttore sono © dei rispettivi proprietari. Sono forniti così come pubblicati dal produttore, solo a titolo informativo.

## Documentazione correlata

- [Integrazione Packet Parser](https://taphome.com/it/compatibility/packet-parser-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/it/docs/integration/packet-parser/)
- [Funzioni Packet parser](https://taphome.com/it/docs/script/packet-parser/)
- [Funzioni di parsing](https://taphome.com/it/docs/script/parsing-functions/)

