homeconnect-websocket
Home Connect Websocket API
What it is and what it does
homeconnect-websocket is a Python library for controlling HomeConnect-enabled appliances (like ovens, dishwashers, or refrigerators) over a local WebSocket connection rather than through the cloud. It handles the encryption and decryption of commands and responses using either TLS PSK or AES encryption, depending on the appliance model. The library requires you to first download encryption keys and device descriptions from the Home Connect cloud using a separate tool, then parse those descriptions into a format the library can use.
The package is built on aiohttp for async WebSocket communication, xmltodict for parsing device descriptions, and pycryptodome for cryptographic operations. It exposes a simple async API: create a HomeAppliance object with your device description and credentials, call connect(), then read and write appliance settings by name. It is actively maintained but has seen limited adoption (4 repository stars), so production use should be approached cautiously.
Use it for:
- Build a local home automation system that controls HomeConnect appliances without relying on cloud connectivity.
- Parse and cache HomeConnect device descriptions and feature mappings for offline appliance control.
- Set appliance states (power, temperature, cycle modes) programmatically via async Python code.
- Monitor and control multiple HomeConnect appliances from a single application using their local IP addresses.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Control HomeConnect appliances over a local WebSocket connection using encryption keys and device descriptions obtained from the Home Connect cloud.
Yes, if you own HomeConnect appliances and want local control without cloud dependency. The low install friction and active maintenance are positive signals. However, the unclear license status requires verification before production use, and the limited adoption (4 stars, 146 days since release) means you should test thoroughly in your environment and be prepared for potential edge cases or missing features for your specific appliance models.
Install
homeconnect-websocket on PyPI
pip
pip install homeconnect-websocketuv
uv add homeconnect-websocketpoetry
poetry add homeconnect-websocketInstalling homeconnect-websocket
Before you install
Low install friction with three straightforward runtime dependencies. Active maintenance with recent commits; however, the repository has only 4 stars, suggesting limited real-world adoption and testing.
License in practice
License status is unclear—no SPDX identifier or raw license text is available. Verify the actual license before using in production or distributing.
Quickstart
# Install
pip install homeconnect-websocket
# Parse device description
from homeconnect_websocket import parse_device_description
description = parse_device_description(device_xml, feature_xml)
# Connect and control
from homeconnect_websocket import HomeAppliance
import asyncio
async def control():
appliance = HomeAppliance(description, "192.168.1.2", "App", "app_id", psk64="key")
await appliance.connect()
await appliance.settings["BSH.Common.Setting.PowerState"].set_value("On")
Requires Python 3.13 or later. You must obtain encryption keys and device descriptions from a HomeConnect appliance via the Home Connect Profile Downloader tool before connecting.
Verify before relying
- Real-world stability and error handling in production environments given the low star count and limited adoption signal.
- Whether the package handles connection failures, reconnection, or state synchronization robustly.
- Support for all HomeConnect appliance models and encryption schemes (PSK vs. AES).
Package facts
| License | not declared (unclear) |
| Python support | supports the current Python release (>=3.13) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — aiohttp, xmltodict, pycryptodome |
| Maintenance | actively maintained — 146 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 76,179/month — #14,651 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: homeconnect_websocket-1.5.3-py3-none-any.whl
Tags
More Internet packages
Botocore provides low-level, data-driven access…
permissive · top 100 on PyPI
aiobotocoreProvides an async client for AWS services using…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
filelockProvides a platform-independent file locking…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
googleapis-common-protosProvides common Protocol Buffer message…
permissive · top 100 on PyPI
gehomesdkSDK for controlling and monitoring GE…
permissive · top 15,000 on PyPI
home-connect-asyncAn async Python SDK that connects to the BSH…
permissive · top 15,000 on PyPI
whirlpool-sixth-senseProvides an unofficial API client for…
permissive · top 15,000 on PyPI
midea-localControl Midea M-Smart appliances over local…
permissive · top 15,000 on PyPI
fjaraskupanControl Fjäråskupan kitchen fans over Bluetooth…
permissive · top 15,000 on PyPI
python-pkcs11Provides a high-level Python interface to…
permissive · top 15,000 on PyPI
oscryptooscrypto provides TLS sockets, key generation,…
permissive · top 1,000 on PyPI
pydaikinPyDaikin provides a Python library and CLI for…
copyleft · top 15,000 on PyPI
sslpsk-pmd3Provides TLS/SSL connections using pre-shared…
permissive · top 15,000 on PyPI
pybraviaProvides an async Python interface to control…
permissive · top 15,000 on PyPI