Skip to main content

CometBlue

GitHub version PyPI version

eurotronic-cometblue-ha is a library to communicate with your Eurotronic GmbH Comet Blue radiator controllers.

[!NOTE] This library is a fork of zero-udo/eurotronic-cometblue with changes specifically for using it in a Home Assistant custom component. For changes, see zero-udo/eurotronic-cometblue#8.

The device supports up to four programmable schedules for each weekday. Longer periods can be set as holidays. There are 8 holiday slots available. It depends on bleak and bleak-retry-connector and runs therefore on Linux, Windows and macOS in addition to the Home Assistant component.

Compatible devices

Comet Blue radiator controllers are sold under different names:

"Manufacturer" Model Tested
Eurotronic Comet Blue :heavy_check_mark:
Sygonix HT100 BT :heavy_check_mark:
Xavax Hama :grey_question:
Silvercrest RT2000BT :grey_question:

This library should work with all listed radiator controllers, but is only tested with a Sygonix HT100BT which is the only one I own.

If your device is not listed here but looks similar (or you know it is a rebranded Comet Blue), or if you are able to test this library with another device - let me know your results.

Installation

Just

pip install eurotronic-cometblue-ha

Usage

Import the library and instantiate an object.

Parameters are the device MAC-Address and the (optional) PIN. Depending on your connection quality you can specify a longer or shorter discovery duration.

Parameter required? default value
mac yes None
pin no 0
timeout no 2
from eurotronic_cometblue_ha import CometBlue

blue = CometBlue(mac="00:00:00:00:00:00", pin=123456, timeout=2)

or

from eurotronic_cometblue_ha import AsyncCometBlue

blue = AsyncCometBlue(mac="00:00:00:00:00:00", pin=123456, timeout=2)

for an asynchronous client.

The following (synchronous) methods are available, for the asynchronous variants add _async:

Method Parameter Return Value
get_temperature None dict with
  • 'currentTemp'
  • 'manualTemp'
  • 'targetTempLow'
  • 'targetTempHigh'
  • 'tempOffset'
  • 'windowOpen'
  • 'windowOpenMinutes'
set_temperature dict with the same values as get_temperature. Not all values have to be set. None
get_battery None int - Battery value in percent
get_datetime None datetime - currently set date and time of the device. Used for schedules
set_datetime An optional datetime-object. The current date and time is used if the parameter is omitted. None
get_weekday A Weekday-Enum value eg. Weekday.MONDAY dict with start# and end# (# = 1-4) keys and the time as HH:mm formatted strs as values
set_weekday A Weekday-Enum value eg. Weekday.MONDAY and a dict containing start# and end# (# = 1-4) as keys and HH:mm formatted strs as values None
get_holiday int 1-8 to select the holiday period dict with
  • 'start': datetime
  • 'end': datetime
  • 'temperature': float
set_holiday dict with the same values as get_holidays return value. None
get_manual_mode None True if manual mode is set.
False if the schedule is used
set_manual_mode boolean - True if manual mode should be used. False if the schedule should be used None
get_multiple Retrieves multiple values specified in a list. Valid values are:
  • 'temperature'
  • 'battery'
  • 'datetime'
  • 'holiday#' # = 1-8 or
  • 'holidays' (retrieves holiday1-8)
  • 'monday'
  • 'tuesday'
  • etc...
  • 'weekdays' (retrieves all weekdays)
The values as a dict in the format defined by the appropriate methods
discover timeout: int, timeout used for discovery MAC-addresses of all discovery Comet Blue devices

:warning: the device applies set values when the connection is closed, not directly after setting them

Examples

Use CometBlueAsync and [method_name]_async for asynchronous handling.

Instantiating and retrieving the current temperature

from eurotronic_cometblue_ha import CometBlue

blue = CometBlue("00:00:00:00:00:00", 123456)
blue.connect()
temp = blue.get_temperature()
print(temp)
blue.disconnect()

or

from eurotronic_cometblue_ha import CometBlue

with CometBlue("00:00:00:00:00:00", 123456) as blue:
    temp = blue.get_temperature()
    print(temp)

results in

{
    'currentTemp': 24.5,
    'manualTemp': 16.0,
    'targetTempLow': 16.0,
    'targetTempHigh': 20.0,
    'tempOffset': 0.0,
    'windowOpen': True,
    'windowOpenMinutes': 10
}

Setting a new schedule

Setting a new schedule for Mondays with two heating periods:

  • Period 1 from 06:00 to 08:00

  • Period 2 from 16:00 to 22:00

All unmentioned periods (periods 3 and 4) will be disabled (start and end set to 00:00).

Set periods will be consolidated, meaning setting only period 3 via this method will write period 1 and disable the others.

To use this schedule, make sure to disable manual mode.

blue.set_weekday(Weekday.MONDAY,
                 {"start1": "06:00", "end1": "08:00",
                  "start2": "16:00", "end2": "22:00"})
blue.set_manual_mode(False)

Setting a holiday

Setting a holiday (slot 2) from 26th December 2020 18:00 till 5th January 2021 14:00 and keep the temperature at 16.5 °C

blue.set_holiday(2, {"start": datetime(2020, 12, 26, 18),
                     "end": datetime(2021, 1, 5, 14),
                     "temperature": 16.5})

Credits:

Metadata

Release files for eurotronic-cometblue-ha 1.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eurotronic-cometblue-ha 1.4.0
File Size Uploaded
eurotronic_cometblue_ha-1.4.0.tar.gz 14.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for eurotronic-cometblue-ha 1.4.0
File Interpreter ABI Platform
eurotronic_cometblue_ha-1.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 27.4 kB

Release files / eurotronic_cometblue_ha-1.4.0.tar.gz

Download URL eurotronic_cometblue_ha-1.4.0.tar.gz
Size 14.8 kB
Tags Source
SHA-256 checksum
How to use checksums
6b6d3e0dacc1962b72315ed6705fcdb16c9e7031fd85e07c38c9aa9755a925c8
BLAKE2b-256 checksum
How to use checksums
60120064b26a35a4c0198f13c74e7ac28b3c9070d8e0bcb363b53cb373c10978
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 14, 2026.

Transparency log

Release files / eurotronic_cometblue_ha-1.4.0-py3-none-any.whl

Download URL eurotronic_cometblue_ha-1.4.0-py3-none-any.whl
Size 12.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9c0f31af84279c6739946c98472e62beff606d36aceadf1f8dd2576069920be3
BLAKE2b-256 checksum
How to use checksums
acdb4930419dd8c9f6a315a69fc78b6310e8b33370ff278d8a8fdb0289a253ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.4.0 This release

2 release files

1.3.1

2 release files

1.3.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page