Skip to content
John edited this page Feb 25, 2017 · 35 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.

Features

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 data
  • scan for bus participants
  • parse messages to human readable values by using CSV message configuration files
  • automatically pick CSV message configuration files by scan result
  • grab all messages on the eBUS and provide decoding hints
  • log messages and problems to a log file
  • capture sent/received bytes to a log file as text
  • dump received bytes to binary files for later playback/analysis
  • listen for client connections on a dedicated TCP port (command line style and/or HTTP and JSON)
  • 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 ACL and required user authentication 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

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.