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.1

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.1
File Size Uploaded Provenance
homecom_alt-1.7.1.tar.gz 42.3 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 90.9 kB

Release files / homecom_alt-1.7.1.tar.gz

Download URL homecom_alt-1.7.1.tar.gz
Size 42.3 kB
Tags Source
SHA-256 checksum
How to use checksums
d8fec3b3e6a04510b814c11c45ce36b083c0dd8925b42008d8bb367b912c0dea
BLAKE2b-256 checksum
How to use checksums
4897b430ce249cefd687fa9d00cfa5d6abb9828ebec91e853f9d56e606d63665
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","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.1-py3-none-any.whl

Download URL homecom_alt-1.7.1-py3-none-any.whl
Size 48.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9a10dd27e9b9dc68664286425f0b0db372347ff464ea02f9142491aac5ab3240
BLAKE2b-256 checksum
How to use checksums
42d8f8ceb4df140c333a0a1fc6e812409d34e0b113a416dee4eca3a8fa7b9fb4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","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.1

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.1 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