John edited this page Apr 23, 2017 · 23 revisions

Welcome to the ebusd wiki! Donate Spenden

ebusd is a daemon for handling communication with eBUS devices connected to a 2-wire bus system ("energy bus" used by numerous heating systems).

It is known to run fine on regular PC hardware as well as on smaller devices like Fritzbox and Raspberry Pi. In order to use it, a hardware interface is necessary.


The main features of the daemon are:

  • use USB serial, TCP connected, or UDP device
  • actively send messages to and receive answers from the eBUS
  • passively listen to messages sent on the eBUS
  • regularly poll for messages
  • cache all messages
  • scan for bus participants
  • parse messages to human readable values and vice versa via message configuration files
  • automatically pick message configuration files by scan result
  • automatically check for updates of daemon and configuration files
  • pick preferred language for translatable message configuration parts
  • grab all messages on the eBUS and provide decoding hints
  • log messages and problems to a log file
  • capture messages or sent/received bytes to a log file as text
  • dump received bytes to binary files for later playback/analysis
  • listen for command line client connections on a dedicated TCP port
  • optionally provide rudimentary HTML interface and allow data retrieval as JSON on HTTP port
  • optionally format messages and data in JSON on dedicated HTTP port
  • optionally publish received message data to MQTT topics and vice versa (if authorized)
  • optional user authentication via ACL file for access to certain messages


For installing and building ebusd from the sources, see here: Build and install

Major releases for Debian i386, amd64, and armhf (Raspberry Pi) will be supplied with installable package files. See the latest release info for downloading such a package.


The command line options of ebusd are explained here: Run


The configuration of ebusd depends mainly on the sent/received messages and their structure. A lot of the bus communication was already identified for some Vaillant heat pumps and associated devices. These configuration files are maintained here: ebusd-configuration.
More information on how to write your own configuration files can be found here: Configuration

Clients and commands

In order to read data from or send commands to eBUS devices with a running ebusd, you can either use a simple TCP client like "telnet" or "nc" (netcat) and connect to the local port on which ebusd is listening (8888 by default), or you can use the ebusd provided client ebusctl. More information about the ebusd tools can be found here: Tools

The documentation of the available commands offered by the ebusd TCP client interface is available here: TCP client commands

In addition to the command line style client interface, ebusd also supports an HTTP port serving the data in JSON format (read-only) as well as MQTT publishing and subscription.


See the dedicated page for a list of possible integrations with other tools/frameworks.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.