Skip to main content

Python wrapper for controlling devices managed by HomeCom Easy APP.

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

homecom_alt-1.7.0.tar.gz (35.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

homecom_alt-1.7.0-py3-none-any.whl (42.0 kB view details)

Uploaded Python 3

File details

Details for the file homecom_alt-1.7.0.tar.gz.

File metadata

  • Download URL: homecom_alt-1.7.0.tar.gz
  • Upload date:
  • Size: 35.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","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}

File hashes

Hashes for homecom_alt-1.7.0.tar.gz
Algorithm Hash digest
SHA256 4364f3d49a7b2b89c07e24ad5e0e9598f8759c39cfe2a93e39cee9646821fa04
MD5 5627671030a555b9b455a0524759ab13
BLAKE2b-256 857455a5cfa55bb721be37d862258b3fcd408ff23f070a5336550aca5f02e7a1

See more details on using hashes here.

File details

Details for the file homecom_alt-1.7.0-py3-none-any.whl.

File metadata

  • Download URL: homecom_alt-1.7.0-py3-none-any.whl
  • Upload date:
  • Size: 42.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","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}

File hashes

Hashes for homecom_alt-1.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 12a1bb318dabe64f258a4840d966e10d20dda8dfc8edf4d061caaccd01aa6fec
MD5 acb33a3739236bde8eebd15dd6da36b9
BLAKE2b-256 6c7718ea6e9749d9db19287fd9b454b0043316f88ae57b14d3ba485f2e8ff29a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page