Code Monkey home page Code Monkey logo

ebusd's Introduction

ebusd - eBUS daemon

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

Build Coverage codecov Gitter Release Downloads Docker Downloads Release

Features

The main features of the daemon are:

  • use one of these device connections:
  • 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 from the config web service at ebusd.eu (or alternatively local files)
  • 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

Installation

Either pick the latest release package suitable for your system, use the Debian repository as described here, build it yourself, or use a docker image (see below).

Building ebusd from the source requires the following packages and/or features:

  • autoconf (>=2.63) + automake (>=1.11) or cmake
  • g++ with C++11 support (>=4.8.1)
  • make
  • kernel with pselect or ppoll support
  • glibc with argp support or argp-standalone
  • libmosquitto-dev for MQTT support

To start the build process, run these commands:

./autogen.sh
make install-strip

Or alternatively with cmake:

cmake .
make install/strip

Documentation

Usage instructions and further information can be found here:

https://github.com/john30/ebusd/wiki

Configuration

The most important part of each ebusd installation is the message configuration. Starting with version 3.2, ebusd by default uses the config web service at ebusd.eu to retrieve the latest configuration files that are reflected by the configuration repository (follow the "latest" symlink there):

https://github.com/john30/ebusd-configuration

Docker image

A multi-architecture Docker image using the config web service for retrieving the latest message configuration files is available on the hub. You can use it like this:

docker pull john30/ebusd
docker run -it --rm --device=/dev/ttyUSB0 -p 8888 john30/ebusd

For more details, see Docker Readme.

Contact

For bugs and missing features use github issue system.

The author can be contacted at [email protected] .

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.