rpi2home-assistant
This project provides a Python daemon to transform a Raspberry PI into a bridge between GPIO inputs/outputs and Home Assistant, through MQTT.
In particular this software allows to:
- sample low-voltage inputs from Raspberry GPIO pins directly (with no isolation/protection/HAT), publish them on MQTT and get them exposed to Home Assistant as binary sensors;
- sample a wide range of electrical signals (voltages) from 3V-48V AC or DC, using a dedicated Raspberry HAT, publish them on MQTT and get them exposed to Home Assistant as binary sensors;
- expose Raspberry GPIO output pins in Home Assistant as switches or as buttons to e.g. activate relays, using a dedicated Raspberry HAT / relay board or just drive low-voltage electrical devices;
All these features are implemented in an Home Assistant-friendly fashion. For example, this utility requires no configuration on Home Assistant-side thanks to MQTT discovery messages that are automatically published and let Home Assistant automatically discover the devices. In other words you will just need to prepare 1 configuration file (the rpi2home-assistant config file) and that's it. All properties of the exposed devices (names, icons, descriptions, etc) can be provided/customized in the rpi2home-assistant config file.
An example of a panel of sensors/actuators created using rpi2home-assistant in Home Assistant 2024.5 (sensor/switch/button names have been blurred for privacy reasons; binary sensor status is shown in Italian language):
Prerequisites
See prerequisites.md.
Documentation
Installation
See install.md.
Configuration file
The configuration file of rpi2home-assistant is of course /etc/rpi2home-assistant.yaml.
During the installation the default config file with dummy options is installed.
It is useful to showcase the syntax. See config.yaml for
the full documentation of the configuration options.
Permissions
This python code needs to run as root due to ensure access to the Raspberry I2C and GPIO peripherals.
Logs
After starting the application you can verify from the logs whether it's running successfully:
journalctl -u rpi2home-assistant --since="5min ago"
Development
See development.md.
Useful links
- Sequent Microsystem 16 opto-insulated inputs python library
- aiomqtt python library
- AsyncIO tutorial
- Home Assistant
Very similar project, more flexible and much bigger, targeting specific sensor boards:
TODO
- Eventually get rid of GPIOZERO + PIGPIOD which consume CPU and also force use of e.g. the queue.Queue due to the multithreading issues; replace these 2 parts with direct Raspberry PI GPIO access?
Metadata
Release files for rpi2home-assistant 2.3.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rpi2home_assistant-2.3.5.tar.gz | 1.8 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rpi2home_assistant-2.3.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.9 MB
Release files / rpi2home_assistant-2.3.5.tar.gz
| Download URL | rpi2home_assistant-2.3.5.tar.gz |
|---|---|
| Size | 1.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b206b6335c68400a74baf57decbcac8665f6d97004bcbdbdb7210e8ab4682287
|
|
BLAKE2b-256 checksum How to use checksums |
d69b877bcbb051412d64b0d90a97ee7be6537739d73f265f76f0b717bae07e35
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency logRelease files / rpi2home_assistant-2.3.5-py3-none-any.whl
| Download URL | rpi2home_assistant-2.3.5-py3-none-any.whl |
|---|---|
| Size | 30.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b9efed4ba03eaea463d263daf6e97783a6be3e3691e70651f1290c21010388ee
|
|
BLAKE2b-256 checksum How to use checksums |
ecbabbba21a11a748809de2d7872d2034aa67c7dbca74f885ac0ad7c8f7985af
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency log