Skip to content
John edited this page Nov 8, 2015 · 35 revisions

Welcome to the ebusd wiki!

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:

  • 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 unknown messages
  • log messages and problems to a log file
  • dump sent/received bytes to the log file
  • 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)

Installation

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.

Running

The command line options of ebusd are explained here: Run

Configuration

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 client interface is available here: Commands

In addition to the command line style client interface, ebusd also supports an HTTP port serving the data in JSON format.