py-centrometal-web-boiler
Python library for Centrometal boilers connected to the web-boiler.com cloud (CM WiFi-Box). It is the communication layer of the Home Assistant integration hass-centrometal-boiler.
This is a fork of 9a4gl/py-centrometal-web-boiler,
published on PyPI as py-centrometal-web-boiler-androflo (the original package name belongs to
the upstream author). The Python module is still centrometal_web_boiler.
Centrometal publishes no API: the library does what the Centrometal web application does. Use it at your own risk.
How it works
web-boiler.com
├── website (HTTPS) login, list of boilers, current values, commands → HttpClient
└── broker (STOMP over real-time values pushed by the boilers → WebBoilerWsClient
secure WebSocket)
both combined by WebBoilerClient, data stored in WebBoilerDeviceCollection
- Login: the login page gives a CSRF token, then the login form is posted with the e-mail and password. The session cookie is kept for the next calls.
- Configuration: the list of boilers of the account, the description of their parameters and the current value of each parameter.
- Real time: a STOMP connection subscribes to one topic per boiler and receives
{"<parameter>": <value>}messages. - Commands: on/off, heating circuits on/off, pellet mode — HTTPS POSTs.
A parameter is a raw Centrometal code such as B_Tak1_1 (temperature) or B_STATE.
Usage
from centrometal_web_boiler import WebBoilerClient
client = WebBoilerClient()
if await client.login("you@example.com", "password") and await client.get_configuration():
for serial, device in client.data.items():
print(serial, device["product"], device.get_parameter("B_STATE")["value"])
async def on_update(device, parameter, created=False):
print(device["serial"], parameter["name"], parameter["value"])
await client.start_websocket(on_update)
await client.refresh() # ask the boilers to push every value
await client.turn(serial, True) # turn_circuit(serial, circuit, on), set_pellet_mode(serial)
...
await client.close_websocket()
await client.http_client.close_session()
Try it with your account (read-only, nothing is sent to the boiler):
pip install -e .
export CENTROMETAL_USERNAME=you@example.com CENTROMETAL_PASSWORD=...
python examples/test_client.py --duration 60
Development
python -m venv .venv && . .venv/bin/activate
pip install -e ".[test]"
pytest # tests against a local fake of web-boiler.com, no account needed
ruff check . && ruff format .
Release
- Bump
versioninpyproject.tomland push tomain. - Push a tag equal to that version:
git tag 0.1.0 && git push origin 0.1.0. The Upload Python Package workflow checks the tag, runs the tests, publishes to PyPI through Trusted Publishing (GitHub environmentpypi, no token) and creates the GitHub release. - In the Home Assistant integration, update the pin
py-centrometal-web-boiler-androflo==<version>inmanifest.jsonand bump the integration version.
Metadata
Release files for py-centrometal-web-boiler-androflo 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| py_centrometal_web_boiler_androflo-0.2.0.tar.gz | 20.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| py_centrometal_web_boiler_androflo-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.9 kB
Release files / py_centrometal_web_boiler_androflo-0.2.0.tar.gz
| Download URL | py_centrometal_web_boiler_androflo-0.2.0.tar.gz |
|---|---|
| Size | 20.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a3a9feb1b5aa7da2d44fcdb8d828105299521ff5a1b1440351afb6a54dc6b1e1
|
|
BLAKE2b-256 checksum How to use checksums |
64433af4f5ccb4e88146a6fbb5e7411ef0629478fb9b67c95add46249815f2fb
|
| 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 30, 2026.
Transparency logRelease files / py_centrometal_web_boiler_androflo-0.2.0-py3-none-any.whl
| Download URL | py_centrometal_web_boiler_androflo-0.2.0-py3-none-any.whl |
|---|---|
| Size | 20.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ebb9c04408f1c7667e781873da44c29caeba8481d1b1ee6725bb5d5abd10680d
|
|
BLAKE2b-256 checksum How to use checksums |
dca9172fd0b01581572217b1149cc451cacb0ce99c51a02f22bde31aed78db9d
|
| 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 30, 2026.
Transparency log