Skip to main content

Home Assistant MQTT Things

PyPI version

Python library for rapid integration of Things with Home Assistant through MQTT.

Demonstration

If you have a Home Assistant instance reachable, and have a MQTT in place (with discovery activated), you can easily use this library and the provided examples show you how to proceed.

From the source code

A quick way of starting from scratch (by cloning this project and creating a virtual environment) is shown below:

$ git clone https://github.com/alexbarcelo/hass-mqtt-things.git
Cloning into 'hass-mqtt-things'...
remote: Enumerating objects: (...)
(...)
$ cd hass-mqtt-things
$ python3 -m venv venv
$ source venv/bin/activate
(venv)$ pip install --upgrade pip
Collecting pip
  (...)
Installing collected packages: pip
  (...)
(venv)$ pip install -e .
Obtaining file:(...)
(...)
Successfully installed getmac-0.8.3 hass-mqtt-things-0.3.0 paho-mqtt-1.6.1
(venv)$ export MQTT_HOST="hassio.local"
(venv)$ export MQTT_USERNAME="user"
(venv)$ export MQTT_PASSWORD="password"
(venv)$ cd examples
(venv)$ ./interactive_switch.py
Entering an infinite loop, Ctrl+C multiple times to exit.
Connected with result code 0
Toggling state. Previous state: False
Toggling state. Next state: True
(... ad infinitum)

NOTE: I have put an explicit upgrade for the pip package because I am using the "new" setup.cfg approach, which doesn't work with certain old versions.

You will need to change the export lines and adapt them to your MQTT setup (set up your host, username and password information).

Once you have followed the above steps, a new Awesomest Switch should have appeared and it will toggle every 5 seconds.

With PyPI packages

Assuming you are in a proper environment (e.g. a Python virtual environment) you can easily install this package and try a demo from the examples folder:

$ pip install hass-mqtt-things
Collecting hass-mqtt-things
  Downloading hass_mqtt_things-0.2.0-py3-none-any.whl (10 kB)
(...)
Successfully installed getmac-0.8.3 hass-mqtt-things-0.2.0 paho-mqtt-1.6.1
$ curl -O https://raw.githubusercontent.com/alexbarcelo/hass-mqtt-things/main/examples/interactive_switch.py
$ export MQTT_HOST="hassio.local"
$ export MQTT_USERNAME="user"
$ export MQTT_PASSWORD="password"
$ chmod +x interactive_switch.py
$ ./interactive_switch.py
Entering an infinite loop, Ctrl+C multiple times to exit.
Connected with result code 0
Toggling state. Previous state: False
Toggling state. Next state: True
(... ad infinitum)

You will need to change the export lines and adapt them to your MQTT setup (set up your host, username and password information).

Once you have followed the above steps, a new Awesomest Switch should have appeared and it will toggle every 5 seconds.

More examples

Check the examples folder. You will find some more examples there.

Use cases

This library is aimed to Python developers that are using Home Assistant for their home automation projects and wants to be more agile in their deployment. The foundation for this project is the MQTT Discovery mechanism of Home Assistant.

Some use cases where this library can become handy:

  • GPIO control for a Raspberry Pi.
  • Monitor something on your desktop PC (temperature, mount points, whether a certain application is running...).
  • Management of serial connections (for example: video projectors with serial input).
  • Alarm control panels on a Raspberry Pi.

At this moment both the Switch and Light component are done. I plan to add all devices that are supported by the MQTT Discovery mechanism, but my personal use cases will drive the roadmap (unless there are Pull Requests or specific petitions in this repository).

Metadata

Release files for hass-mqtt-things 0.5.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hass-mqtt-things 0.5.9
File Size Uploaded
hass_mqtt_things-0.5.9.tar.gz 13.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hass-mqtt-things 0.5.9
File Interpreter ABI Platform
hass_mqtt_things-0.5.9-py3-none-any.whl Python 3 none any Details

Total release size: 30.7 kB

Release files / hass_mqtt_things-0.5.9.tar.gz

Download URL hass_mqtt_things-0.5.9.tar.gz
Size 13.4 kB
Tags Source
SHA-256 checksum
How to use checksums
8c4b27f4e8ac1857861085906fe5063cfc1f6b8cd58ca28e345558060621628b
BLAKE2b-256 checksum
How to use checksums
2a87764567b357cc9926eec6110196690c4b5ed696b39619bbc3fb8a5ab36750
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.5

Release files / hass_mqtt_things-0.5.9-py3-none-any.whl

Download URL hass_mqtt_things-0.5.9-py3-none-any.whl
Size 17.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d3c0dbff849d09dff5c8c8b5f408863f64707b67e8586902e3951d65deae9f27
BLAKE2b-256 checksum
How to use checksums
510e808ef4701a9f55d92c2429d625aa2a156f1f8e9a64a4a606919e3038be61
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.5

Release history Release notifications | RSS feed

This release

0.5.9 This release

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.0

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page