Entdecke in unserer Artikel-Serie alles rund ums Smart Home mit HomeAssistant als zentrale Steuerung. Erfahre, wie du mit einem Raspberry Pi Temperatur und Luftfeuchtigkeit überwachst und dabei auf quelloffene Komponenten setzt. Vermeide teure Lösungen, Vendor Lock-In und Datenschutzprobleme. Schritt-für-Schritt-Anleitungen inklusive.
Du möchtest auf keine der Kauflösungen am Markt setzen, da diese entweder teuer sind, nach Hause funken, Vendor Lock-In bedeuten usw.?
Dann setze mit uns auf quelloffene Komponenten mit HomeAssistant als Schaltzentrale und Raspberry Pi’s und Arduinos als Aktoren.
Im ersten Schritt zeige ich wie man eine durchgehende Überwachung der Temperatur und Luftfeuchtigkeit realisieren kann.
Hierzu werde ich den Raspberry Pi als Basis nehmen, da ich einige davon habe, und ich hier noch weitere Features wie Squeezebox Funktionalität etc. schrittweise hinzufügen möchte.
Mit diesem Setup ist es möglich Schritt für Schritt das Smart Home in den eigenen vier Wänden Realität werden zu lassen.
Verkabelung
Wichtig hierbei ist, dass der Daten-PIN des Sensors über einen sogenannten Pull-Up Widerstand (4.7k – 10kΩ) mit dem 3,3 Volt PIN mit Strom versorgt wird. Andernfalls kann der PIN am Pi Schaden nehmen.
Software
Vorbereitungen Raspberry – OS
Um den Raspberry Pi in Betrieb zu nehmen, muss vorher ein Betriebssystem installiert werden. Ich verwende der Einfachheit halber erstmal Raspberry OS – wobei ich künftig auf TinyCore bzw. eigentlich PiCorePlayer wechseln möchte.
Um die SD Karte zu flashen gibt es bereits genügend gute Anleitungen, daher verweise ich hier nur auf eine mit Balena Etcher, da dieses Programm für Windows, Linux und MacOS verfügbar ist.
Vorbereitungen Raspberry – Netzwerk
Damit der Raspberry Pi auch remote wartbar ist, muss man einerseits SSH aktivieren und andererseits einen neuen User anlegen und diesen mit Berechtigungen versehen.
SSH kann man mit verschiedenen Methoden aktivieren, die einfachste ist wohl, auf der SD Karte eine leere Datei namens ssh anzulegen. (Ich habe in meinem ersten Setup jedoch folgende verwendet:
sudo systemctl start ssh
sudo systemctl enable ssh
Dann muss man noch einen User erstellen, mit dem man sich hin verbindet:
sudo adduser manuel
sudo usermod newuser_name -a -G adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,spi,i2c,gpio
Und schon kann man mit dem gewählten Password mit SSH zum Raspberry Pi verbinden und benötigt keinen Monitor / Keyboard mehr.
Ich möchte mir noch anschauen, ob man dieses Setup irgendwie automatisieren kann, da ich eigentlich Plug & Play Hardware haben möchte. Das hier könnte eine Möglichkeit sein – zumindest unter Windows. Oder das hier.
Auslesen des Sensors
Ich verwende die Basis von Adafruit um auf den Sensor zuzugreifen, und es hatte bei mir erstmal nicht funktioniert. Nach etwas Recherche habe ich herausgefunden, dass die aktuelle Version leider den Sensor nicht immer korrekt unterstützt.
Ich habe dann wie folgt eine ältere Version installiert und diese funktioniert tadellos.
git clone https://github.com/adafruit/Adafruit_Python_DHT.git
sudo apt-get install build-essential python-dev
sudo pip3 install Adafruit_Python_DHT
Nun haben wir die Software so weit vorbereitet, dass der Sensor ausgelesen werden kann, hierfür führen wir ein mitgeliefertes Beispielscript aus.
22 steht für den Sensortyp, wurde der DHT11 verbaut, muss man 11 mitgeben.
17 steht für den PIN, da ich das Datenkabel an eben jenem PIN angeschlossen habe.
cd Adafruit_Python_DHT
cd examples
python3 AdafruitDHT.py 22 17
Nächste Schritte zum smarten Sensor
- Setup eines HomeAssistant Service
- Setup eines MQTT Service
- Ein Script schreiben, welches die ausgelesenen Daten in ein MQTT Topic pusht
- Den HomeAssistant so konfigurieren, dass er das MQTT Topic ausliest und graphisch darstellt
Quellen
SSH am Raspberry Pi aktivieren
Adafruit Issues mit DHT Sensoren