Skip to content
John edited this page Oct 27, 2024 · 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 one of these device connections:
  • auto-discover device connection via mDNS
  • actively send messages to and receive answers from the eBUS
  • passively listen to messages sent on the eBUS
  • answer to messages received from the eBUS
  • regularly poll for messages
  • cache all messages
  • scan for bus participants and automatically pick matching message definition files from config web service at ebusd.eu (or alternatively local files)
  • parse messages to human readable values and vice versa via message definition files
  • automatically check for updates of daemon and message definition files
  • pick preferred language for translatable message definition parts
  • grab all messages on the eBUS and provide decoding hints
  • send arbitrary messages from hex input or inject those
  • 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
  • provide a rudimentary HTML interface
  • format messages and data in JSON on dedicated HTTP port
  • publish received data to MQTT topics and vice versa (if authorized)
  • announce message definitions and status by MQTT to e.g. integrate with Home Assistant using MQTT Discovery
  • support MQTT publish to Azure IoT hub (see MQTT integration)
  • act as a KNX device by publishing received data to KNX groups and answer to read/write requests from KNX, i.e. build an eBUS-KNX bridge
  • user authentication via ACL file for access control 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.

For FreeBSD packages, see freshports.org/comms/ebusd/.

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.