TapHome

KEBA KeContact P20 Stan

Packet Parser → UDP
Dodane przez
Ostatnia aktualizacja: 06. 2026
KEBA KeContact P20 Stan

KEBA KeContact P20 to wallbox EV AC Mode 3 (10–32 A, jednofazowy lub trójfazowy) produkowany w latach 2012–2016. Jego oparty na UDP „SmartHome Interface" jest obsługiwany przez warianty sprzętowe c-series i c-series+PLC (kody produktu KC-P20-xxxxxx2x-xxx i KC-P20-xxxxxx3x-xxx) z firmware 2.5 lub wyższym. Serie e-series i b-series nie implementują tego interfejsu.

TapHome komunikuje się z wallboxem przez UDP na porcie 7090 przy użyciu natywnego protokołu KEBA. W każdym cyklu odpytywania (domyślnie 10 s) TapHome wysyła tekstowe polecenie report 2 do wallboxa i parsuje zwracany payload JSON na zapisywalny przełącznik włączania, trzy kontakty reed dla stanu podłączenia/blokady, wielowartościowy stan ładowania i zapisywalny limit prądu użytkownika. Polecenia sterujące (ena, curr) są wysyłane z powrotem przez ten sam kanał UDP.

Ten szablon udostępnia stan i sterowanie. Dla pomiarów elektrycznych (napięć i prądów fazowych, mocy czynnej oraz energii sesji/dożywotniej) zaimportuj bliźniaczy szablon KEBA KeContact P20 Monitorowanie mocy na ten sam wallbox — oba szablony używają różnych raportów (report 2 vs. report 3) i mogą bezpiecznie działać równolegle, zapewniając kompletną integrację monitorowania + sterowania.

Wymagania

  • KEBA KeContact P20 c-series lub c-series+PLC (cyfra elektroniki 2 lub 3 w kodzie produktu na tabliczce znamionowej)
  • Firmware ≥ 2.5 (starsze wersje firmware nie implementują polecenia UDP report 2)
  • Wallbox podłączony do tej samej sieci LAN co TapHome Core przez Ethernet (zaciski LSA+ X4 lub gniazdo RJ45 X3)
  • Port UDP 7090 nie może być blokowany przez firewall między Core a wallboxem
  • Interfejs Modbus TCP musi być wyłączony — UDP i Modbus TCP wzajemnie się wykluczają na P20

Połączenie sprzętowe

Okablowanie i połączenie Ethernet są identyczne jak w bliźniaczym szablonie Monitorowanie mocy — to samo fizyczne urządzenie jest adresowane przez oba szablony przez ten sam kanał UDP. Zobacz KEBA KeContact P20 Monitorowanie mocy → Połączenie sprzętowe dla okablowania Cat 5e/STP, wyboru LSA+ (X4) vs. RJ45 (X3) i ostrzeżenia o prądach wyrównawczych przez ekran Ethernetu.

Konfiguracja

Aktywacja interfejsu UDP SmartHome

Interfejs UDP jest aktywowany przez pojedynczy przełącznik DIP na PCB wallboxa, znajdujący się pod pokrywą panelu złączy. DSW1.3 = ON jest obowiązkowe — bez tego wallbox nie odpowie na żadne polecenie report na porcie 7090. Zmiany przełączników DIP stają się aktywne dopiero po naciśnięciu przycisku Service (~1 s) lub po cyklu zasilania.

Układ przełączników DIP KEBA KeContact P20 pokazujący ustawienie DSW1.3 ON do aktywacji interfejsu UDP SmartHome

Pełna tabela przełączników DIP (adresowanie DSW1 i DSW2) jest udokumentowana w bliźniaczym szablonie — zobacz KEBA KeContact P20 Monitorowanie mocy → Konfiguracja. Ustawienia są identyczne, ponieważ dotyczą tego samego fizycznego wallboxa.

Interfejs UDP i interfejs Modbus TCP nie mogą być aktywne jednocześnie. Jeśli Modbus TCP był wcześniej włączony na tej stacji, wyłącz go przed poleganiem na szablonie UDP TapHome.

Parametry importu TapHome

Podczas importu szablonu podaj:

  • IP Address — adres IP wallboxa w sieci lokalnej (placeholder 192.168.0.1)
  • Port7090 (ustalony przez protokół KEBA)
  • Internal poll interval — domyślnie 10000 ms; protokół KEBA toleruje krótsze interwały, ale zaleca co najmniej 5 s między powtórzeniami tego samego polecenia

Jeśli wallbox używa DHCP, przypisz statyczną rezerwację DHCP w routerze, aby adres IP nie zmieniał się po przerwie zasilania. TapHome zapisuje IP jako parametr importu i nie wykrywa urządzenia automatycznie.

Dostępne urządzenia

Wszystkie wartości są pobierane z payloadu JSON report 2. Zapisy używają tekstowych poleceń UDP ena i curr; po każdym zapisie następuje natychmiastowe odpytanie report 2 w celu odświeżenia stanu szablonu.

Sterowanie ładowaniem
  • Ładowanie włączone — zapisywalny przełącznik on/off. Wysyła ena 1, aby włączyć, lub ena 0, aby wyłączyć stację. Odzwierciedla flagę Enable user z report 2. Zapis OFF trwale wstrzymuje ładowanie do ponownego włączenia lub restartu stacji; KEBA wymaga obowiązkowej 2-sekundowej pauzy po ena 0 przed zaakceptowaniem kolejnego polecenia.
  • Prąd ładowania użytkownika — zapisywalny maksymalny prąd ładowania w amperach. Wysyła polecenie curr w miliamperach (szablon wewnętrznie mnoży przez 1000). Prawidłowy zakres to 6–63 A; wallbox ogranicza wartość rzeczywistą do limitu sprzętowego (przełączniki DIP, kodowanie kabla, derating termiczny), a nowe ustawienie propaguje się do PWM Control Pilota po 6–7 sekundach.

curr to ustawienie trwałe — pozostaje do następnego zapisu curr lub restartu stacji. KEBA zaleca nietrwały wariant currtime do regularnego użytku, ponieważ resetuje się przy odłączeniu kabla. Ten szablon udostępnia tylko curr; dla harmonogramowanego ładowania lub semantyki automatycznego resetu steruj Prądem ładowania użytkownika z reguły Smart Rule TapHome, która zapisuje wartość docelową tuż przed rozpoczęciem sesji i resetuje ją do żądanej wartości spoczynkowej po odłączeniu.

Stan podłączenia i blokady

Trzy niezależne kontakty reed, każdy pochodzący z osobnego bitu bitmaski Plug w report 2:

UrządzenieBit PlugMaskaZnaczenie
Podłączone do wallboxa00x01Kabel jest podłączony do gniazda wallboxa (dla kabli nie podłączonych na stałe)
Kabel zablokowany10x02Kabel jest mechanicznie zablokowany w gnieździe wallboxa
Podłączone do pojazdu20x04Kabel jest podłączony do EV

Ładowanie wymaga ustawienia wszystkich trzech bitów (Plug = 7). Poszczególne urządzenia pozwalają rozróżnić, czy użytkownik odłączył auto, wallbox, czy oba.

Stan ładowania
  • Stan ładowania — wielowartościowe urządzenie udostępniające tryb pracy wallboxa, zmapowane z pola State w report 2:
Raw StateZnaczenie w protokole (UDP Programmers Guide V 2.03)Wyświetlenie w szablonie
0StartupUruchamianie
1Niegotowe do ładowania (niepodłączone, zablokowane lub wstrzymane)Niegotowy
2Gotowe do ładowania, czeka na pojazdGotowy
3ŁadowanieŁadowanie
4Obecny błądBłąd
5Ładowanie tymczasowo przerwaneNieautoryzowane

Szablon wyświetla raw State = 5 jako Nieautoryzowane, ale KEBA UDP Programmers Guide V 2.03 (§3.2.3) dokumentuje tę wartość jako „Ładowanie tymczasowo przerwane" (np. z powodu przegrzania lub odmowy voter). Jeśli Stan ładowania pokazuje „Nieautoryzowane" bez trwającej sesji RFID, traktuj to jako tymczasowe przerwanie, a nie błąd autoryzacji. Wartość raw można zweryfikować bezpośrednim odczytem State z zapytania report 2 do wallboxa na porcie UDP 7090.

Rozwiązywanie problemów

TapHome nie pokazuje żadnych danych z wallboxa
  1. Zweryfikuj kod produktu wallboxa na tabliczce znamionowej. Tylko KC-P20-xxxxxx2x-xxx (c-series) i KC-P20-xxxxxx3x-xxx (c-series+PLC) obsługują UDP
  2. Potwierdź, że wersja firmware to ≥ 2.5. Aktualizacje firmware są dostępne w strefie pobierania na keba.com/emobility
  3. Potwierdź DSW1.3 = ON — najczęstszy problem z konfiguracją. Przełączniki DIP znajdują się pod pokrywą panelu złączy i łatwo je przeoczyć podczas uruchamiania. Po przełączeniu naciśnij przycisk Service przez 1 sekundę lub przełącz wyłącznik zasilania
  4. Upewnij się, że port UDP 7090 jest otwarty między TapHome Core a wallboxem (brak blokowania VLAN / firewall)
  5. Potwierdź, że interfejs Modbus TCP na wallboxie nie jest aktywny — UDP i Modbus TCP wzajemnie się wykluczają
Zapis przełącznika Ładowanie włączone nie działa

Niektóre konfiguracje stacji nadpisują Enable user przez zewnętrzne wejście włączania X1 lub przez aktywne zdarzenie failsafe. Jeśli ena 1 nie wyprowadza stacji ze stanu wyłączenia:

  • Sprawdź, czy DSW1.1 jest w pozycji ON (używane zewnętrzne wejście włączania). Jeśli tak, zweryfikuj, że styk X1 jest zamknięty.
  • Obserwuj Enable sys w surowym payloadzie report 2 — jeśli Enable sys = 0, stacja odmawia włączenia niezależnie od Enable user (zazwyczaj z powodu timeoutu failsafe lub limitu termicznego). Szablon nie udostępnia Enable sys; potwierdź przez status LED wallboxa lub bezpośrednie zapytanie UDP.
Zmiana Prądu ładowania użytkownika nie propaguje się

Po zapisie nowego prądu stacja potrzebuje 6–7 sekund na wewnętrzne zastosowanie zmiany. Jeśli nowa wartość nigdy nie pojawia się w odczycie zwrotnym:

  • Zweryfikuj, że cel mieści się w prawidłowym zakresie 6000–63000 mA (6–63 A). Wartości poza tym zakresem są po cichu odrzucane przez wallbox.
  • Potwierdź, że nie ma aktywnego zdarzenia failsafe — po aktywacji Max curr = Curr FS nadpisuje Curr user do czasu zresetowania failsafe.
  • Pamiętaj, że curr to ustawienie trwałe. Jeśli poprzednie polecenie currtime nadal działa (wydane przez innego klienta), curr jest ignorowany do czasu wygaśnięcia timera currtime lub do jego wyzerowania przez currtime 0 0.
Stan ładowania utknął na Błędzie lub Nieautoryzowanym

Błąd (raw State = 4) wskazuje na stan błędu zgłoszony przez stację. Pola Error1 i Error2 w report 2 zawierają numeryczny kod błędu, ale nie są udostępniane przez szablon — zapytaj wallboxa bezpośrednio przez port UDP 7090 poleceniem report 2, aby je odczytać, lub sprawdź status LED stacji.

Nieautoryzowane to etykieta szablonu dla raw State = 5, który KEBA dokumentuje jako „Ładowanie tymczasowo przerwane". Typowe przyczyny obejmują przegrzanie, aktywną odmowę voter lub celowe przerwanie w strumieniu sterowania KEBA. Cykl zasilania wallboxa lub oczekiwanie na ustąpienie warunku przerwania zwykle przywraca stan Ładowanie. Ten szablon nie udostępnia procesu autoryzacji RFID — biała lista RFID pozostaje zarządzana przez aplikację KEBA i fizyczne karty master.

Dostępne urządzenia

Keba KeContact P20 Stan Moduł
Zmienne niestandardowe

Keba KeContact P20 State

Odczyt (moduł)
SENDDATA("report 2");
Nasłuchiwanie
VAR jsonString := TOSTRING(RECEIVEDBYTES);
VAR id := PARSEJSON(jsonString, "$.ID", 1);

IF(id = 2)
    report2 := jsonString;
END
Ładowanie włączone Przełącznik

Zapisywalny przełącznik on/off — włącza lub wyłącza ładowanie przez polecenie UDP `ena` (trwałe do restartu lub ponownego włączenia)

boolean json_path
Wartości / Stany: ${general_enabled} · ${general_disabled}

Ładowanie włączone

Zapis stanu przełącznika
SENDDATA("ena " + St);
SENDDATA("report 2");
Nasłuchiwanie
St := PARSEJSON(report2, "$.['Enable user']", 1)
Kabel zablokowany Kontakt reed Tylko do odczytu

Wskazuje, czy kabel jest mechanicznie zablokowany w gnieździe wallboxa (bit 1 pola Plug)

boolean bitmask

Kabel zablokowany

Nasłuchiwanie
Rc := PARSEJSON(report2, "$.Plug", 1) & 0x02
Podłączone do pojazdu Kontakt reed Tylko do odczytu

Wskazuje, czy kabel ładujący jest podłączony do pojazdu elektrycznego (bit 2 pola Plug)

boolean bitmask

Podłączone do pojazdu

Nasłuchiwanie
Rc := PARSEJSON(report2, "$.Plug", 1) & 0x04
Podłączone do wallboxa Kontakt reed Tylko do odczytu

Wskazuje, czy kabel jest podłączony do gniazda wallboxa (bit 0 pola Plug)

boolean bitmask

Podłączone do wallboxa

Nasłuchiwanie
Rc := PARSEJSON(report2, "$.Plug", 1) & 0x01
Stan ładowania Przełącznik wielowartościowy Tylko do odczytu

Stan operacyjny wallboxa — Uruchamianie, Niegotowy, Gotowy, Ładowanie, Błąd lub Nieautoryzowane

numeric json_path
Wartości / Stany: ${starting} · ${notReady} · ${ready} · ${charging} · ${error} · ${notAuthorized}

Stan ładowania

Nasłuchiwanie
VAR state := PARSEJSON(report2, "$.State");
Mu := SWITCH(State, 0, 1, 1, 2, 2, 3, 3, 5, 4, 8, 5, 9, 1)
Prąd ładowania użytkownika Zmienna

Zapisywalny maksymalny prąd ładowania w amperach (6–63 A) — wysyłany do wallboxa poleceniem UDP `curr` w miliamperach

numeric Jednostka: A json_path

Prąd ładowania użytkownika

Zapis
SENDDATA("curr " + Va*1000);
SENDDATA("report 2");
Nasłuchiwanie
Va := PARSEJSON(report2, "$.['Curr user']", 1) / 1000.0
Połączenie: Packet Parser → UDP
Możliwe ulepszenia (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.

Źródła

  • 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

Znalazłeś problem z tym szablonem urządzenia?

Napisz nam, co nie działa, czego brakuje lub jak powinien zachowywać się szablon. Twoja opinia pomaga nam utrzymać katalog dokładnym.

Zweryfikowane przez TapHome

Chcesz tego użyć w swoim TapHome Core?

Otwórz ten szablon w portalu klienta, aby zastosować go w swoim domu, lub zaproponuj modyfikację i wyślij ją z powrotem do katalogu.

Otwórz w portalu