PyPI version Python versions License Build status Documentation status Updates

Easy-to-use Python communication module for Heliotherm and Brötje BSW NEO heat pumps.


This library provides a pure Python interface to access Heliotherm and Brötje BSW NEO heat pumps over a serial connection. It’s compatible with Python version 3.5, 3.6, 3.7 and 3.8.


  • read the manufacturer’s serial number of the heat pump
  • read the software version of the heat pump
  • read and write the current date and time of the heat pump
  • read the fault list of the heat pump
  • query whether the heat pump is malfunctioning
  • query for several parameters of the heat pump
  • change parameter values of the heat pump
  • fast query of MP data points / parameters (“Web-Online”)
  • read and write the time programs of the heat pump

Tested with [*]

  • Heliotherm HP08S10W-WEB, SW 3.0.20

  • Heliotherm HP10S12W-WEB, SW 3.0.8

  • Heliotherm HP08E-K-BC, SW 3.0.7B

  • Heliotherm HP05S07W-WEB, SW 3.0.17 and SW 3.0.37

  • Heliotherm HP12L-M-BC, SW 3.0.21

  • Heliotherm HP07S08W-WEB, SW 3.0.37

  • Brötje BSW NEO 8 SW 3.0.38


    thanks to Kilian, Hans, Alois, Simon and Felix (FelixPetriconi) for contribution


You can install or upgrade htheatpump with:

$ pip install htheatpump --upgrade

Or you can install from source with:

$ git clone
$ cd htheatpump
$ python install

Getting started

To use htheatpump in a project take a look on the following example. After establishing a connection with the Heliotherm heat pump one can interact with it by different functions like reading or writing parameters.

from htheatpump import HtHeatpump

hp = HtHeatpump("/dev/ttyUSB0", baudrate=9600)
    # query for the outdoor temperature
    temp = hp.get_param("Temp. Aussen")
    # ...
    hp.logout()  # try to logout for an ordinary cancellation (if possible)

A full list of supported functions can be found in the htheatpump documentation at

There are also some sample scripts that are part of the htheatpump package and can be run immediately after installation, e.g.:

$ htquery --device /dev/ttyUSB1 "Temp. Aussen" "Stoerung"
HTHEATPUMP: load parameter definitions from: /home/pi/prog/htheatpump/htheatpump/htparams.csv
Stoerung    : False
Temp. Aussen: 5.0


This library uses the logging module. To set up logging to standard output, put

import logging

at the beginning of your script.



Please note that any incorrect or careless usage of this module as well as errors in the implementation can damage your heat pump!

Therefore, the author does not provide any guarantee or warranty concerning to correctness, functionality or performance and does not accept any liability for damage caused by this module, examples or mentioned information.

Thus, use it on your own risk!


Contributions are always welcome. Please review the contribution guidelines to get started. You can also help by reporting bugs.

Wanna support me?

Buy Me A Coffee



Distributed under the terms of the GNU General Public License v3.