Skip to main content

A python library to communicate with the KEBA charging stations via udp

Project description

KEBA KeContact

This is python library to control KEBA charging stations, in specific the P20, P30 and the BMW wallbox. Commands were taken from the UDP Programming Manual. The library was written for the usage in Home Assistant.


The following commands are implemented so far:



The failsafe function is a way to detect a failure of the network communication between the UDP application and the charging station. In this case, the charging station will fall into a state with a definable current limitation. By default, the failsafe function is disabled and must be enabled by the application.


  • timeout in seconds (default = 30 s)
  • fallback_value in ampere (default = 6 A)
  • persist (default = 0)


The command setenergy can be used to set an energy limit for an already running or the next charging session. If the energy limit is greater than or equal to the value in the E pres field of report 3 the charging session will be stopped and the device will be deactivated (similar to ena 0). All settings caused by setenergy are not permanent and are reset at the next time the device registers that the EV plug is pulled from a vehicle inlet or the charging station is restarted.


  • energy in kWh (default = 0 kWh)


This command sets the current limit of the running charging process.


  • current in ampere (default = 0 A)


This command displays a text on the display of the charger.


  • text to show on the display
  • min time to show the text before next text is shown (default = 2 s)
  • max time to show the text (default = 10 s)


This command authorizes a charging process with the given RFID tag and RFID class.


  • rfid tag as 8 byte hex string, identifier of RFID card
  • rfid class as 10 byte hex string, classifier of RFID card


This command stops a charging process with the given RFID tag.


  • rfid tag as 8 byte hex string, identifier of RFID card


The enable command can be used to permanently disable the system by using the parameter 0. After receiving ena 0 the device will be disabled until it is rebooted or ena 1 or currtime are used. The execution of ena 0 will take approximately 1 second. If ena 0 is used, then no other command should be sent for 2 seconds to ensure an undisturbed execution of the disable command.


  • ena in [0,1]


(not tested yet)

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

keba_kecontact-3.0.3.tar.gz (14.4 kB view hashes)

Uploaded source

Built Distribution

keba_kecontact-3.0.3-py3-none-any.whl (23.0 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page