haco Home Assistant Control Objects
haco greatly simplifies the process of exposing Home Assistant controls (e.g. Pull-down Lists, Number Sliders, Sensors, etc.) from a device - and handling the communication between both sides.
While the current implementation is in Python, the capability definitions for controls are designed to be shared across different languages. Support for additional languages (namely native support for Tasmota Berry) is planned.
Why MQTT?
You might wonder why we use MQTT instead of directly using Home Assistant's APIs. The reason is flexibility: using MQTT allows
haco to target any device or environment that has an MQTT client, not just those that can easily make HTTP requests or run a full HA integration. This makes it ideal for lightweight embedded systems and cross-platform utility.
Why Would I Want Such a Thing?
Integrating custom hardware or scripts with Home Assistant often involves a lot of boilerplate: defining MQTT topics, crafting JSON payloads for discovery, and managing state updates.
haco handles the heavy lifting, letting you define your device and its controls in clean, declarative Python.
If you're building a custom IoT device, a script to monitor your system, or just want a simpler way to bridge your code to Home Assistant, then you might find
haco useful.
How it Works
haco uses MQTT to communicate with Home Assistant. It automatically generates the discovery configurations required for Home Assistant to "see" your device and its entities. All you need to do is define a
Device with some Controls and start the ClientHaco.
Documentation
Metadata
Release files for haco 0.4.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| haco-0.4.2.tar.gz | 17.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| haco-0.4.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 39.5 kB
Release files / haco-0.4.2.tar.gz
| Download URL | haco-0.4.2.tar.gz |
|---|---|
| Size | 17.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
53c6ccb6a98b4764a47cbdea6c87761211ba4509bba03af9f3c8f85e6bf4235c
|
|
BLAKE2b-256 checksum How to use checksums |
349a86b808b742232e9f21d1ed19e69cc1c04057261949fc8a0bc0b736fd15c4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.6
|
Release files / haco-0.4.2-py3-none-any.whl
| Download URL | haco-0.4.2-py3-none-any.whl |
|---|---|
| Size | 22.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f904f91d5f99e38b54d2090af11bb2950abbc36076d6aa4cce32022ec33f95c2
|
|
BLAKE2b-256 checksum How to use checksums |
eaa8910a4f273723cccc550b0d4370e751096e561ac70fb97e13c2429beaf0fa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.6
|