reto271 / DataLoggerHeating_Luxtronik

Monitors Heating Data of a Luxtronik Heating Controller. Monitores, stores compact as binaries, converts to CSV and graphically displays.
GNU General Public License v3.0
1 stars 0 forks source link

Data Logger, Converter and Analysis Tool for Luxtronik Heating Control

System Overview

System Overview

System Components

The project consists of three major components and three minor components.

Component Classification Comment
MonitorHeating Major Reads the data from the Luxtronik control and stores them in binary format and in the Influx DB.
DataDecoder Major Converts the binary data to CSV
Analyze Major Does some basic analysis on the CSV files
OctaveScripts Minor Prints graphs based on the CSV files
Tests Minor Runs some tests on the MonitorHeating and DataDecoder
Utils Minor Local time to unix-time converter util
--- --- Extension:
Influx DB Major Stores the data online to to be used by Grafana _(Not part of this project, see chapter InfluxDB & Grafana)_
Grafana Major Visualizes the data online _(Not part of this project, see chapter InfluxDB & Grafana)_

MonitorHeating

Uses the command 3004 to read the current data from the Luxtronik heating controller. It takes the IP address as input parameter and reads the data every minute from the controller. The data is stored in binary format. The number of used bits is optimized for each value to minimize the file size. The Common/src/ValueTable.cpp lists the stored values and the corresponding bit-sizes.

The binary files are suitable to backup, since the consume little space.

I do run the MonitorHeating on a Raspberry Pi Model 2B V1.1. Periodically the data is written to a file server.

DataDecoder

The data decoder converts the binary data files into CSV files. The CSV files consume more space than the binary files but are more suitable for further processing.

Analyze

A few python scripts to analyze the data. As input the CSV data is used. You may adapt these scripts for your own purpose.

Influx DB & Grafana

Extension: The MontitorHeating program writes the data to an Influx data base. The data is online used and visualized by Grafana.

_The data base and Grafana is not part of this project. I do use two distinct Docker containers on my NAS to run InfluxDB and a second for Grafana. If you would like to explore this feature of the MonitorHeating application, setup your own InfluxDB and Grafana. Adapt the IP-Address and the Data Base Name in MonitorHeating/src/ValueResponse.cpp#L122._

Grafana Sample

Minor Components

OctaveScripts

An octave script generating a few charts. It displays the warm water and outside temperature. A second chart shows the blocking time and the operating mode of the heating controller.

Tests

Runs a few google tests on the sources of MonitorHeating and DataDecoder.

Utils

A util to convert local time to Unix time.

Release Notes

The most recent release notes. Release Notes

Acknowledgments

June 2020, reto271