Raspberry Pi DHT22 Sensor als Homie MQTT Device

Aus Laub-Home.de Wiki
Zur Navigation springen Zur Suche springen
AZDelivery DHT22 AM2302.jpg

Dieses kleine Script publiziert die Daten im Homie MQTT Convention Standard, dies ermöglicht es zum Beispiel in openHAB die Autodiscovery bei MQTT Devices zu nutzen. Dieses Script lässt den DHT22 Sensor als Homie Device nutzbar werden. Das Script wird durch einen SystemD Service gestartet und läuft als Service auf dem Pi. Somit publiziert er im eingestellten Intervall seine Daten an den MQTT Broker.

Mehr Informationen zum DHT22 Sensor, wie zum Beispiel der Verkabelung, und dem Raspberry Pi findet ihr hier:

Installation

Die Scripte können via GitHub heruntergeladen werden. Solltet ihr einen Raspberry Pi 3 oder Zero w haben, nutzt bitte das dht22-homie-adafruit Script, dieses nutzt die alte deprecated Library (hier mehr Infos). Das angepasste Script bekommt ihr hier:

Ansonsten könnt ihr einfach wie folgt vorgehen:

apt install python3 python3-pip python3-rpi.gpio libgpiod2 python3-paho-mqtt python3-systemd -y
pip3 install --user adafruit-circuitpython-dht
cd /usr/local/sbin
wget https://github.com/alaub81/rpi_sensor_scripts/raw/main/dht22-homie.py
chmod +x /usr/local/sbin/dht22-homie.py
nano /usr/local/sbin/dht22-homie.py

in der Datei dht22-homie.py müsst ihr die den GPIO Pin festlegen und die MQTT Settings anpassen:

# set the variables
dht22gpiopin=17
broker = "FQDN / IP ADDRESS"
port = 8883
mqttclientid = "clientid-dp-homie"
clientid = "clientid-dp"
clientname = "Clientname Display"
nodes="dht22"
username = "mosquitto"
password = "password"
insecure = True
qos = 1
retain_message = True
# Retry to connect to mqtt broker
mqttretry = 5
# how often should be a publish to MQTT (in Seconds)
publishtime=15
# Retry to connect to mqtt broker
mqttretry = 5

Nun kommen wir zum SystemD Script:

cd /etc/systemd/system
wget https://github.com/alaub81/rpi_sensor_scripts/raw/main/dht22_homie.service
nano dht22_homie.service
systemctl daemon-reload
systemctl enable dht22_homie.service
systemctl start dht22_homie.service

Im Systemd Script dht22_homie.service müsst ihr ggf. den Script Path anpassen.

Nach dem nun der Service läuft, kann mit systemctl status dht22_homie.service geprüft werden, solltet ihr im MQTT neue Topics sehen, die mit homie/clientid beginnen. Ebenfalls, solltet ihr über openHAB verfügen, sollte nun in der Inbox ein neues Device auftauchen.

Mehr Informationen über openHAB und MQTT findet ihr hier:

GitHub Repository

Das Script und einige andere Sensoren Scripte findet ihr in diesem GitHub Repository: