Skip to content

Easy-to-use Python communication module for Heliotherm heat pumps.

License

Notifications You must be signed in to change notification settings

dstrigl/htheatpump

Repository files navigation

HtHeatpump

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.

Introduction

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.8, 3.9 and 3.10.

Features

  • 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-S-WEB, SW 2.03N

  • Heliotherm HP07S08W-WEB, SW 3.0.37

  • Heliotherm HP-30-L-M-WEB, SW 3.0.21

  • Brötje BSW NEO 8 SW 3.0.38

    [*]

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

Installation

You can install or upgrade htheatpump with:

$ pip install htheatpump --upgrade

Or you can install from source with:

$ git clone https://github.com/dstrigl/htheatpump.git
$ cd htheatpump
$ python setup.py 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)
try:
    hp.open_connection()
    hp.login()
    # query for the outdoor temperature
    temp = hp.get_param("Temp. Aussen")
    print(temp)
    # ...
finally:
    hp.logout()  # try to logout for an ordinary cancellation (if possible)
    hp.close_connection()
from htheatpump import AioHtHeatpump

hp = AioHtHeatpump("/dev/ttyUSB0", baudrate=9600)
try:
    hp.open_connection()
    await hp.login_async()
    # query for the outdoor temperature
    temp = await hp.get_param_async("Temp. Aussen")
    print(temp)
    # ...
finally:
    await hp.logout_async()  # try to logout for an ordinary cancellation (if possible)
    hp.close_connection()

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

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"
Stoerung    : False
Temp. Aussen: 5.0

Logging

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

import logging
logging.basicConfig(level=logging.DEBUG)

at the beginning of your script.

Disclaimer

Warning

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!

Contributing

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

Credits

License

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