boschshcpy
Bosch Smart Home Controller API Python Library
What it is and what it does
boschshcpy is a Python client for controlling Bosch Smart Home Controller devices over the local network using mutual-TLS encryption. It provides both synchronous (requests-based) and asynchronous (aiohttp-based) interfaces, with a long-poll mechanism that fires callbacks when device state changes. The library models the official OpenAPI surface plus several undocumented endpoints that Bosch's own Android app uses—firmware updates, automation rules, and other features—all traced from the official app and real hardware.
The package is designed for direct integration into home automation systems (notably Home Assistant via boschshc-hass) and standalone scripts. It handles device discovery, service state tracking, and connection retry logic transparently. Supported devices include shutters, smart plugs, lights, thermostats, motion detectors, cameras, and various sensors; the library also manages controller-wide operations like firmware updates and intrusion/water-alarm systems.
Use it for:
- Build a Home Assistant integration or custom home automation dashboard that polls Bosch Smart Home devices over the local network without cloud dependency.
- Trigger Bosch device actions (shutter control, light switching, thermostat adjustment) from a Python script or event handler on the same network.
- Monitor firmware updates and device health status (battery level, communication quality, tamper alerts) from a centralized Python application.
- Implement custom automation rules or presence simulation logic that reacts to Bosch sensor state changes via callback subscriptions.
- Integrate Bosch Smart Home devices into a broader home automation platform that requires local-network-only operation for privacy or reliability.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Python client library for the Bosch Smart Home Controller local REST API, communicating directly with the controller over mutual-TLS on the local network without requiring a cloud connection or Bosch account.
Yes. The library is actively maintained, has low install friction, carries no known vulnerabilities, and uses a permissive license. Install it if you own Bosch Smart Home Controller hardware and need programmatic local control without cloud dependency. The reverse-engineered endpoints are explicitly documented as such, so verify compatibility with your specific SHC generation before relying on firmware-update or automation-rule features in production.
Install
boschshcpy on PyPI
pip
pip install boschshcpyuv
uv add boschshcpypoetry
poetry add boschshcpyInstalling boschshcpy
Before you install
Low friction: pure Python wheel with four runtime dependencies (cryptography, getmac, requests, zeroconf). Actively maintained with a release 9 days ago; repository shows 72 stars and no archived status.
License in practice
BSD 3-Clause (permissive): you may use, modify, and distribute this library freely in commercial and private projects, provided you retain the license notice and disclaimer.
Quickstart
pip install boschshcpy
import boschshcpy
session = boschshcpy.SHCSession("192.168.x.x", "cert.pem", "key.pem")
session.information.summary()
session.start_polling()
# ... your code ...
session.stop_polling()
Requires Python ≥ 3.10. Client certificate registration via boschshc_registerclient CLI tool requires physical access to the SHC device (press front button until LED flashes) and the device password.
Verify before relying
- Whether the library's reverse-engineered endpoints (firmware updates, automation rules, hydraulic balancing) remain stable across SHC firmware versions.
- Real-world performance and reliability of the long-poll mechanism under sustained network interruptions.
- Compatibility with all Bosch Smart Home Controller hardware generations currently in the field.
Package facts
| License | bsd-3-clause (permissive) |
| Python support | supports the current Python release (<4,>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — cryptography, getmac, requests, zeroconf |
| Maintenance | actively maintained — 9 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 185,709/month — #10,002 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: boschshcpy-0.6.8-py3-none-any.whl
Keywords: boschshcpy
Tags
More WWW/HTTP packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
h11h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI
aiohttpaiohttp is an async HTTP client and server…
permissive · top 100 on PyPI
homematicipA Python wrapper for the HomematicIP REST API…
copyleft · top 15,000 on PyPI
pyswitchbeeA Python library for controlling SwitchBee…
permissive · top 15,000 on PyPI
home-connect-asyncAn async Python SDK that connects to the BSH…
permissive · top 15,000 on PyPI
python-ecobee-apiA Python library for communicating with Ecobee3…
permissive · top 15,000 on PyPI
pyhiveapiA Python library for controlling Hive smart…
permissive · top 15,000 on PyPI
tplink-omada-clientA Python client library for interacting with…
permissive · top 15,000 on PyPI
aiohueAsynchronous Python library for controlling…
permissive · top 15,000 on PyPI
python-miioPython library and CLI tool for controlling…
copyleft · top 15,000 on PyPI
zigpyzigpy is a hardware-independent Zigbee protocol…
copyleft · top 15,000 on PyPI
pyprusalinkAsync Python client for the PrusaLink HTTP API,…
permissive · top 15,000 on PyPI