Skip to main content

homecom-alt

PyPI version Python License: MIT

Async Python wrapper for controlling Bosch Thermotechnology devices managed by the HomeCom Easy app. Communicates with the pointt-api.bosch-thermotechnology.com REST API using OAuth2 (SingleKey ID) authentication.

Installation

pip install homecom_alt

Device support

Device type Class Data model
rac HomeComRac BHCDeviceRac
k40 / k30 HomeComK40 BHCDeviceK40
icom HomeComIcom BHCDeviceIcom
rrc2 HomeComRrc2 BHCDeviceRrc2
wddw2 HomeComWddw2 BHCDeviceWddw2
commodule HomeComCommodule BHCDeviceCommodule
generic HomeComGeneric BHCDeviceGeneric
bacon_rac HomeComBaconRac BHCDeviceBaconRac

Matter-commissioned ACs (Bacon)

Bosch Climate ACs commissioned over Matter in the HomeCom Easy app (serials like 86DM-580-…) are not pointt gateways, so they never appear in HomeComAlt.async_get_devices(). They are managed by Bosch's bacon backend and controlled through an AWS-IoT-style device shadow over MQTT 5 (WebSocket), which requires the extra paho-mqtt dependency (installed automatically).

  • Discover them with async_get_bacon_devices(session, token, region) — returns the same {"deviceId", "deviceType": "bacon_rac"} shape as the REST discovery.
  • Open one shared BaconMqttClient per account (async_connect(token, sub)), then wrap each serial in a HomeComBaconRac for async_update() and the async_set_power / async_set_mode / async_set_temperature / async_set_fan / async_set_swing controls.
  • The region defaults to euc1 (eu-central-1); use1 also exists.

Authentication

ConnectionOptions supports two auth flows:

  • OAuth2 code flow (recommended): provide username and code obtained from the SingleKey ID authorization endpoint, and set auth_provider=True when calling HomeComAlt.create().
  • Token reuse: provide an existing token and optionally refresh_token to skip the login step.

The brand field defaults to "bosch" — use "buderus" for Buderus-branded devices.

Usage

See example.py for a full working example.

Error handling

Exception Raised when
AuthFailedError OAuth2 authentication fails
ApiError API returns an error response
NotRespondingError Device does not respond (retried up to 5 times with exponential backoff)
InvalidSensorDataError Sensor data cannot be parsed

All exceptions inherit from BhcError.

Development

uv is required. Install it once, then:

git clone https://github.com/serbanb11/homecom_alt.git
cd homecom_alt
uv sync --group dev
uv run pre-commit install

Run the checks:

uv run pytest --timeout=30 --cov=homecom_alt tests/   # tests
uv run ruff check . && uv run ruff format --check .   # lint
uv run mypy homecom_alt                               # types

License

MIT

Metadata

Release files for homecom_alt 1.7.3

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

Source distribution (sdist)

Source distribution for homecom_alt 1.7.3
File Size Uploaded Provenance
homecom_alt-1.7.3.tar.gz 44.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for homecom_alt 1.7.3
File Interpreter ABI Platform
homecom_alt-1.7.3-py3-none-any.whl Python 3 none any Details

Total release size: 95.5 kB

Release files / homecom_alt-1.7.3.tar.gz

Download URL homecom_alt-1.7.3.tar.gz
Size 44.6 kB
Tags Source
SHA-256 checksum
How to use checksums
58bb37f215f1e3ca1780f2d88f685d77c098d2d1f652cec79f37f76cf81f28d4
BLAKE2b-256 checksum
How to use checksums
e463f9f39393a9c5ef0431542f30d5772e0290f9cde2fe333dfb42f08fc07685
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / homecom_alt-1.7.3-py3-none-any.whl

Download URL homecom_alt-1.7.3-py3-none-any.whl
Size 50.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
89adca7e51a699332b9ce18461d5dca9fd17cc25e9fb9c7daf42407b0e735005
BLAKE2b-256 checksum
How to use checksums
924bae67d3ed806f77fe09ab37f4012845d43959ae2d0a49ff0bfa21667aef0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for homecom_alt 1.7.3

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.7.3 This release

2 release files No provenance

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