Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Most everything needed for your heater-system to be shown at your 'hometop' -> pimp your heater.

This project is limited to recording/controlling and presentation of heating and solar informations. Currently only heater-systems from german manufacturer: Junkers and system-bus: Heatronic/EMS2 (c) are supported.


This repo can not fulfill all wishes you could have to your 'hometop'. Each has his ideas such as the 'home' can be 'Top'. The presentation of informations from the own 'home' with it's heater-system is what this repo will do. Other projects are working too on this item, example: FHEM

This repo was started creating some different boards for the RaspberryPi(c).
The table shows the currently available boards:

Board-name function remark
HT3_Mini_Adapter receiving Bus - data for RaspberryPi, see: Mini-Adapter
HT3_Micro_Adapter receiving Bus - data any USB-hoster, see: Micro-Adapter
ht_piduino transmit- and receiving Bus - data for RaspberryPi, see: ht_piduino
ht_pitiny transmit- and receiving Bus - data for RaspberryPi, see: ht_piduino
ht_motherboard usb-interface for above boards see: ht_motherboard

The software is written in python and designed for detection, decoding and controlling of HT - busdata with following features:

Modul-name function remark tool for creating databases: sqlite and rrdtool. configureable GUI for system-data and raw-hexdump of decoded ht - busdata configureable, default running as ht_proxy.client GUI to show system-data only configureable, default running as ht_proxy.client Running as daemon without GUI is replaced with ht_collgate - daemon configureable, default running as ht_proxy.client Running as daemon starting interfaces for ht_data decoding, mqtt-IF and/or SPS-IF, running without GUI configureable, default running as ht_proxy.client and sqlite = Off; rrdtool = On, mqtt_IF = Off, SPS_IF = Off. ht-server to collect data from serial port and supporting connected clients with raw - busdata configureable, default accepting any client ht-client sending commands to the heater-bus configureable, default connecting to 'localhost' ht-client acts as logger of binary ht - busdata configureable, default connecting to 'localhost' ht-client acts as example for your one ht-client configureable, default connecting to 'localhost'
~/HT3/sw/etc/upgrade_rrdtool_db/ upgrade tool for upgrading your old rrdtool - database to release:0.2 read the 'readme_add_ds_2_rrd.txt' at first.

For project - details see the documentation (folder: ~/HT3/docu ) and the following links:

The current software can be found in subfolders: ~/HT3/sw/...
Any hardware informations are in subfolders: ~/HT3/hw/...

The software is still under development, but any official release should be runable 'out of the box' under Linux.
For Windows some improvements are required and will be done in the future.

If you have got any problems with hard- or software, let me know.
Also your support with binary - logfiles is good to have for further development.

Thank's to all supporting me, in the past and future.
We all want to have the right thing in the right time.

Importent notes:

The reproduction and the commissioning of the adaptations is at your own risk and the description and software do not claim to be complete. A change of software modules and hardware descriptions at any time is possible without notice. Warranty, liability and claims by malfunction of heating or adaptation are hereby expressly excluded.

Wichtiger Hinweis:

Der Nachbau und die Inbetriebnahme der Adaptionen ist auf eigene Gefahr und die Beschreibung und die Software erheben nicht den Anspruch auf Vollständigkeit. Eine Änderung an Software-Modulen und Hardware-Beschreibungen ist jederzeit ohne Vorankündigung möglich. Gewährleistung, Haftung und Ansprüche durch Fehlfunktionen an Heizung oder Adaption sind hiermit ausdrücklich ausgeschlossen.




  • reason: Issue: #16. mqtt - LWT handling corrected.
  • modul :, lib/ and config/mqtt_client_cfg.xml modified.



  • reason: Issue: #14. HomeAssistant IF added.
  • modul :, ht_2hass and lib/ added.
  • docu : HT3_Adaption.pdf modified for HA.



  • reason: Issue: #13.
  • modul : set to rev.:0.4.
  • modul : lib/ port# set to 48088.
  • config: etc/config/ht_proxy_cfg.xml port# to:48088, etc/html/ port# to:48086.



  • modul : with scrollbars and WW:'T-Soll max' added.
  • modul : decoding of MsgId's 51 & 52 improved, msglength check added.
  • config: etc/config/HT3_db_cfg.xml and etc/config/HT3_db_off_cfg.xml WW:'V_spare_1' used as WW:'T-Soll max'.



  • moduls: Issue: Deprecated property InterCharTimeout #7; port.setInterCharTimeout() removed.



  • moduls: modified for new log-values, decoding upgraded for Cxyz Controller. See modul-header for details.
  • minor modifications in configuration-files, already used databases (from 0.3) can be used further on.



  • moduls:, lib/, lib/ and lib/ added.
  • modul : and ./etc/sysconfig/ht3_logger aren't used anymore and renamed to: *unused
  • New configuration-files added for ht_collgate, mqtt- and SPS- interfaces.



  • autocreate_draw in minutes: modified in moduls:,, HT3_db_cfg.xml.
  • 3-bytes for solarpump-runtime: modified in modul:
  • tempniveau for FRxyz-controller: added in moduls:,



  • wrong path-extraction: corrected in modul:



  • Complete redesign of decoder and dispatcher using new modul:
    • Support for new controller-type: Cxyz added.
  • moduls: and are modified for handling with new controller-type: Cxyz.
  • moduls: and aren't used anymore and renamed to: ht3_*.py_unused
  • autocreate_draw added in configuration-file: HT3_db_cfg.xml for updating rrdtool-draw every minute.
    • Default configured to: On.
  • autoerase_olddata added in configuration-file: HT3_db_cfg.xml for deleting old dataentries in sqlite-db.
    • Default configured to: 30 days.
  • db-table: rrdtool_info unused and deleted in sqlite-db.
    • rrdtool-db is updated instead every 60 seconds with all current data.
  • modul: renamed to: db_info.py_unused.
  • MsgID added for every decoded message displayed as hexdump.
  • GUI display-layout optimised for viewing all data.
  • Autodetection of heater-circuit amount and mixed-/unmixed-circuit(s) results also now in GUI-layout update.
  • Displaycode and Causecode added in GUI, database and configuration-file.
  • Betriebsstatus added in GUI, database and configuration-file.
    • Values: Manuell and Auto are available.
  • Displayed times changed from seconds to hours.
  • Renaming of Betriebsart to Temperatur-Niveau in GUI, database and configuration-file.
  • Betriebsart still in database but not supported anymore.
  • script: modified for items:Temperatur-Niveau and Betriebsstatus.
  • accessname added in configuration-file for requesting decoded data [currently unused].
  • upgrade rrdtool_db tool added for upgrading available rrdtool-database to this release: 0.2.
    • you must have a lot of free space on your drive (> 1 GB in folder: /tmp) doing this upgrade.
    • the upgrade takes a lot of time do be finished.
    • if this space isn't available, remove the old database and create a new rrdtool-database.
  • importend notice the current sqlite-database must be deleted or renamed and has to be recreated for this release:0.2 using tool: ./



  • never been an official release. Used only for testpurposes.



  • HeizkreisMsg_ID677_max33byte() corrected.
  • msg:9x00FF00() handling with length of 10byte added.


  • IPM_LastschaltmodulMsg() fixed wrong HK-circuit assignment in


  • HeizkreisMsg_ID677_max33byte() modified for better decoding.
  • __GetStrBetriebsart() update with value 4:="Auto".



  • HeizkreisMsg_ID677_max33byte() added for CWxyz handling.


  • heizungspumpenleistung added.
  • logging from ht_utils added.



  • first release on