Python wrapper for controlling devices managed by HomeCom Easy APP.
Project description
homecom-alt
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 |
Authentication
ConnectionOptions supports two auth flows:
- OAuth2 code flow (recommended): provide
usernameandcodeobtained from the SingleKey ID authorization endpoint, and setauth_provider=Truewhen callingHomeComAlt.create(). - Token reuse: provide an existing
tokenand optionallyrefresh_tokento 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file homecom_alt-1.6.5.tar.gz.
File metadata
- Download URL: homecom_alt-1.6.5.tar.gz
- Upload date:
- Size: 29.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96eec86f10be260bffd5e7dbd501bfae4adec04d0dd788f4d9c2db5dcbcd0042
|
|
| MD5 |
d2f17efafb224546baf96b9a6122a296
|
|
| BLAKE2b-256 |
748f620ae18269ab1dbb94aac79e7f2e671ac03e91c3cdfde885bf584d6735dc
|
File details
Details for the file homecom_alt-1.6.5-py3-none-any.whl.
File metadata
- Download URL: homecom_alt-1.6.5-py3-none-any.whl
- Upload date:
- Size: 35.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3dd0a12ad5d5dce1eba43073d90566c1401443abeadbad77bb393c626c3a17ff
|
|
| MD5 |
650729109cb3a86034e6d86f6f810635
|
|
| BLAKE2b-256 |
95f3b7b182c695f14b657c63c66a8d299167968a071d14245168ad4ebfe1c2cd
|