Skip to main content

Comet-WiFi-Communicator

Command-line tool that points Eurotronic Comet WiFi radiator thermostats at your own MQTT broker, so they work inside your LAN without the manufacturer's cloud or app.

Out of the box a Comet WiFi thermostat only talks to the Eurotronic cloud. After a factory reset it opens a Wi-Fi hotspot. This tool allows for configuring the thermostat then in a way that it talks to your own broker. Once this is done, thermostats can be controlled with aiocometwifi or the Home Assistant integration built on top of it.

⚠️ A thermostat configured this way no longer works with the Eurotronic Smart Living app. To go back, reset it and follow the official setup guide.

⚠️ This tool uses undocumented firmware functionality to customize the broker. There is a small risk of bricking your thermostat. Everything below is at your own risk.

  • One command: comet-wifi-communicator setup.
  • Zero runtime dependencies, fully typed, Python ≥ 3.12.

✅ Prerequisites

  1. An MQTT broker on your LAN that accepts anonymous clients. The thermostats cannot be given credentials. See Broker.
  2. Python ≥ 3.12 on a computer with Wi-Fi (it has to join the thermostat's hotspot).

📦 Installation

pip install comet-wifi-communicator    # into a virtual environment

🔧 Setting up a thermostat

Repeat for every thermostat. Have the broker's IPv4 address at hand (a host name will not do, the thermostat cannot resolve names).

  1. Reset the thermostat. ⚠️ This erases everything stored on it, schedules included.

    1. With a pin, press and hold the reset button in the battery tray until the display turns off.
    2. Release the button.
    3. Remove the batteries and re-insert them.
    4. After a few seconds the display shows PA (pairing) and the Wi-Fi symbol blinks.
  2. Connect your computer to the thermostat's Wi-Fi hotspot. SSID Comet Wifi, password 11223344.

  3. Send the configuration:

    comet-wifi-communicator setup --wifi-ssid <your ssid> --mqtt-server-ip <broker ip>
    

    You are prompted for the Wi-Fi password (leave it empty for an open network). Pass --wifi-password instead if you want to script it (warning: it stays in your shell history).

  4. Reconnect your computer to your own network. The thermostat closes the hotspot and joins the network you named.

Verify with any MQTT client, for example:

mosquitto_sub -h <broker ip> -t '01/#' -v

The thermostat announces itself on 01/<MAC>/S/XX (its connection test) when it connects and then from time to time.

All options:

Option Meaning
--wifi-ssid Wi-Fi network the thermostat should join (required).
--wifi-password Wi-Fi network password, prompted for when omitted. Empty for an open network.
--mqtt-server-ip IPv4 address of the broker (required).
--mqtt-server-port Broker port, default 1883.
--thermostat-ip, --thermostat-port Where the thermostat listens inside its hotspot, default 10.0.0.1:1233.
-v, --verbose Debug output and full error details.

Limits set by the firmware:

  • SSID and password must be printable ASCII without a comma
  • SSID length limited to 32 characters
  • No TLS
  • No MQTT authentication
  • No IPv6.

📡 Broker

The thermostats connect anonymously. Run a broker with allow_anonymous true, and restrict what anonymous clients may access with an ACL (the devices only need the 01/# topic tree). Keep the broker off the public internet. With Mosquitto:

# mosquitto.conf
listener 1883
allow_anonymous true
acl_file /mosquitto/config/acl
# acl - entries before the first `user` line apply to anonymous clients
topic readwrite 01/#

Note: The official Home Assistant Mosquitto add-on refuses anonymous clients by design. However, the integration's documentation describes how to bridge a small anonymous broker into it.

↩️ Back to the stock app

Reset the thermostat as above and follow the official Eurotronic setup guide. Nothing this tool does is permanent.

🔗 Relation to aiocometwifi

This package used to bundle an MQTT client for talking to the thermostats. That part now lives in aiocometwifi, an async library over a caller-supplied MQTT transport.

🛠️ Development

python -m venv .venv && source .venv/bin/activate
pip install -e . -r requirements_dev.txt
pre-commit install
pytest --cov --cov-fail-under=90 --cov-report=term-missing
ruff check . && ruff format --check . && mypy

⚖️ Disclaimer

This is an independent, community-developed project. It is not affiliated with, endorsed by or supported by Eurotronic. Eurotronic and Comet WiFi are trademarks or trade names of their respective owners and are used here only to identify the devices this tool configures. Use at your own risk. See the license for the warranty disclaimer.

While I am somewhat skeptical towards blindly allowing AI for coding and do not support the way major companies are selling and training their models, the usefulness for reviewing and improving software cannot be denied. Therefore, for enhancing the quality of parts of this tool and finding issues, AI (mostly Claude Opus 5) was utilized.

📜 License

GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007, see the license file.

Release files for comet-wifi-communicator 1.0.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 comet-wifi-communicator 1.0.0
File Size Uploaded
comet_wifi_communicator-1.0.0.tar.gz 30.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for comet-wifi-communicator 1.0.0
File Interpreter ABI Platform
comet_wifi_communicator-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 52.0 kB

Release files / comet_wifi_communicator-1.0.0.tar.gz

Download URL comet_wifi_communicator-1.0.0.tar.gz
Size 30.4 kB
Tags Source
SHA-256 checksum
How to use checksums
356c302e27cbbbc4f9b44a2c4a13723855234c2b5c9b77e0c57ba24766314517
BLAKE2b-256 checksum
How to use checksums
442e1de050fa47dff6a793ad25dc239680daaa14b9c8adb4aee548e5a91166cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 13, 2026.

Transparency log

Release files / comet_wifi_communicator-1.0.0-py3-none-any.whl

Download URL comet_wifi_communicator-1.0.0-py3-none-any.whl
Size 21.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
533dc6b756f57fe25889a5151f77e11d03b760b5c045b7f33fddab6fd161402a
BLAKE2b-256 checksum
How to use checksums
2956088a12ac4bac07f78cbfe20a51f85d30165d5f6df9cace4af0c7bb5405ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 13, 2026.

Transparency log

Release history Release notifications | RSS feed

1.1.1

2 release files

1.1.0

2 release files

This release

1.0.0 This release

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.8

2 release files

0.2.4

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

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