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

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.2
File Size Uploaded Provenance
homecom_alt-1.7.2.tar.gz 42.7 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 91.7 kB

Release files / homecom_alt-1.7.2.tar.gz

Download URL homecom_alt-1.7.2.tar.gz
Size 42.7 kB
Tags Source
SHA-256 checksum
How to use checksums
0dfd0865e5288c96f36968896aa1e83bbc9b0b192441260f6efcc6860b3119f3
BLAKE2b-256 checksum
How to use checksums
c3555113426faa0f3766da727b6dc37918a9c14c65c167cc093b6cb9c535f982
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","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.2-py3-none-any.whl

Download URL homecom_alt-1.7.2-py3-none-any.whl
Size 49.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
887ea903ffdc8a7ef3f35045b30d7c78d1d7e1c849b496cfd570e23e82175d65
BLAKE2b-256 checksum
How to use checksums
00feb494914368dfbab74b49e6e09b201689c6f5091eb1a4276bd8564ae7f64f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","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.2

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