Bindings to implement arbitrary homeassistant devices in python using mqtt as interface
Project description
Homeassistant MQTT Binding for python
This package enables you to implement arbitrary devices in python supported in homeassistant. The communication with homeassistant is handled by MQTT. For example you could write an simple program running on a raspberry pi controlling an LED. By exposing this configuration to homeassistant you can easily control the LED via HA.
The base class handles the following things automatically:
- registering devices in homeassistant through the mqtt discovery protocol
- setting the device as available once fully setup
- setting the device unavailable when quitting the application
Installation
python3 -m pip install homeassistant-mqtt-binding
the dependencies should be installed automatically
Usage
- create an paho mqtt Client instance connected to your mqtt server
- instantiate your desired device and pass the Client instance to the constructor
- when your program closes make sure to call the
close()
function of each device for cleanup
Examples
The following examples require an already running stack of homeassistant and an MQTT server.
See the examples folder for all demo scripts.
- switch.py: simple switch device that can be toggled by homeassistant
Expanding the application
Since I don't use all devices I haven't implemented them yet. You can easily implement any missing device:
- create an empty class subclassing any of the devices (normally you would subclass
MQTTDevice
orMQTTSensor
). - implement the
pre_discovery()
if necessary:
It gets called before sending out the discovery payload to the broker. This is the right place to place custom config options for the config dictionary viaadd_config_option()
- implement the
post_discovery()
if necessary:
It gets called right after sending out the discovery payload to the broker. Use it to send initial values to HA, if it is necessary that HA knows about the device beforehand. - Implement any callbacks that might be necessary for all devices that can receive data. (commands for switches for example).
- If your device needs more topics than state, configuration and set, feel free to implement them additionally.
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
File details
Details for the file homeassistant_mqtt_binding-3.0.0.tar.gz
.
File metadata
- Download URL: homeassistant_mqtt_binding-3.0.0.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.8.19 Linux/5.4.109+
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f97c3daf2a42d63eb6988cff1d5c38820bec88cda2a0d1179c75d5b362a8578 |
|
MD5 | 5bd97ff122f8c47bc44b86579e54f0d2 |
|
BLAKE2b-256 | 818d2af162ae13cc15e7583e218cde757e294e9bfb77f074d54ca2fae1bec02b |
File details
Details for the file homeassistant_mqtt_binding-3.0.0-py3-none-any.whl
.
File metadata
- Download URL: homeassistant_mqtt_binding-3.0.0-py3-none-any.whl
- Upload date:
- Size: 13.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.8.19 Linux/5.4.109+
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31cc0999f20a55cc1d97f5e1fe12dedbbbadcfd317657730a8df367dd1783194 |
|
MD5 | b7cee7ed6625f2e02fcc76ac975d7b44 |
|
BLAKE2b-256 | 1df74e7182867dfb299ca326c7a0782bcf50904ee4ad5cc9aa055a4c7a04aad2 |