flyingflo / logamatic

Configures and monitors Buderus Logamatic 4000 heating controller through their ECO-CAN bus interface over MQTT
GNU General Public License v3.0
15 stars 5 forks source link

Logamatic Monitor and Controller

Configures and monitors Buderus Logamatic 4000 heating controller through their ECO-CAN bus interface over MQTT. This project aims to implement a full remote monitoring and control solution for Logamatic 4000 systems without expensive additional hardware. In my setup it takes a NodeMCU board with a CAN controller and a Raspberry Pi.

The main challenge was the CAN bus protocol. It's reverse engineering is partly based on public (but hard to find) documents from Buderus, a lot of bus sniffing, and trial-and-error (can_play.py) for the configuration sender. All already available documents and tools assume a dedicated interface (called "service key", "RS232 gateway", ..) between the Logamatic and the client. Those interfaces translate and buffer several aspects of the original protocol.

This project encodes and the decodes the raw messages on the CAN bus, not the "service key protocol" or the like.

Requirements

You need a MQTT broker. For example mosquitto:

sudo apt install mosquitto mosquitto-clients

Modules:

This program has only MQTT interfaces. It receives and sends CAN messages on the one side and it broadcasts decoded monitor data and receives control commands over MQTT on the other side.

Installation

python3 -m venv myenv
source myenv/bin/activate
pip3 install -r requirments.txt

Usage:

Check .env.example if you want to overwrite some default settings and rename .env.example to .env

python3 logamatic4000.py