Aus Raspberry Pi Geek 06/2021

Home Assistant macht den RasPi fit für die Z-Wave-Welt (Seite 2)

Listing 1

Installation von Home Assistant

$ sudo useradd -rm homeassistant -G dialout,gpio,i2c
[...]
$ python3 -m venv homeassistant
$ cd homeassistant
$ source bin/activate
$ python3 -m pip install wheel
$ python3 -m pip install homeassistant
$ hass --open-ui

Am besten legen Sie noch eine Service-Unit für Systemd an, sodass das System den Home-Assistant-Dienst beim Hochfahren automatisch startet. Übernehmen Sie dazu den Inhalt von Listing 2 und speichern ihn unter /etc/systemd/system/ in der Datei [email protected]. Danach aktivieren Sie den Dienst per sudo systemctl enable homeassist, sodass er künftig beim Booten automatisch lädt. Zu guter Letzt starten sie den Service mit sudo systemctl start homeassist einmal von Hand.

Listing 2

[Unit]
Description=Home Assistant
After=network-online.target
[Service]
Type=simple
User=%i
ExecStart=/home/%i/homeassistant/bin/hass -c "/home/%i/.homeassistant"
[Install]
WantedBy=multi-user.target

Der erste Start von Home Assistant nimmt etwas Zeit in Anspruch, da das System die Konfigurationsdatei configuration.yaml erstellt und die Komponenten initialisiert. Auch später beim Hinzufügen neuer Einträge in die Konfiguration, die zusätzliche Module benötigen, braucht Home Assistant eine etwas längere Denkpause, während es die entsprechenden Module nachinstalliert.

Nach Abschluss der Initialisierung speichert das System die configuration.yaml ins Home-Verzeichnis des Homeassist-Users nach .homeassistant/. Deren Inhalt sieht in etwa so aussieht wie in Listing 3 zu sehen. In dasselbe Verzeichnis schreibt das Programm auch eine Log-Datei mit dem Namen home-assistant.log, die Informationen über das aktuelle Geschehen liefert. Sollte es irgendwo klemmen, finden Sie hier weiterführende Informationen. Auf der Raspbian-Installation des Testaufbaus mussten wir beispielsweise noch die zwei Pakete libtiff5 und libopenjp2-7 nachinstallieren, deren Fehlen Home Assistant bemängelt hatte.

Listing 3

configuration.yaml

group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

In einem Webbrowser öffnen Sie nun unter der URL http://RasPi-IP:8123 die Administrationsoberfläche (Abbildung 3). Anfangs verlangt Home Assistant hier die Eingabe eines neuen Benutzers samt Passwort, als der Sie sich später gegenüber dem Dienst authentifizieren. Zudem fragt die Seite nach Sprache, Ort und Zeitzone.

Abbildung 3: Die Konfiguration von Home Assistant erfolgt über ein übersichtliches Webinterface.

Abbildung 3: Die Konfiguration von Home Assistant erfolgt über ein übersichtliches Webinterface.

RaZberry

Die Kommunikation zwischen dem Raspberry Pi und dem RaZberry-Modul erfolgt über die serielle Schnittstelle der GPIO. Für die Installation müssen Sie den RaZberry lediglich auf die IO-Leiste des RasPi aufstecken, beginnend an der oberen Kante der Platine (Abbildung 4).

Abbildung 4: Für Home Assistant genügt ein Raspberry Pi der ersten Generation. Auf der GPIO des RasPi steckt das RaZberry-Modul.

Abbildung 4: Für Home Assistant genügt ein Raspberry Pi der ersten Generation. Auf der GPIO des RasPi steckt das RaZberry-Modul.

Für die Verbindung erzeugen Sie zunächst wie in Listing 4 gezeigt einen AES-Schlüssel, den Sie anschließend wie in Listing 5 dargestellt in die configuration.yaml eintragen. Der usb_path lautet für per USB angeschlossene Z-Wave-Sticks /dev/ttyACM0 und für das HAT-Modul dev/ttyAMA0.

Listing 4

AES-Schlüssel erzeugen

$ cat /dev/urandom | tr -dc '0-9A-F' | fold -w 32 | head -n 1 | sed -e 's/\(..\)/0x\1, /g' -e 's/, $//'

Listing 5

configuration.yaml

[...]
zwave:
  usb_path: /dev/ttyAMA0
  network_key: "0x41, 0xF3, 0xA6, 0x9A, 0x60, 0x56, 0x43, 0xE1, 0x3D, 0x15, 0xBD, 0xF7, 0x5C, 0x5D, 0x0B, 0x8E"
[...]

Nach einem Neustart erreichen Sie den Z-Wave-Controller über das Untermenü Integrationen (Abbildung 5) der Webschnittstelle. Dort müssen jetzt in typischer Z-Wave-Manier die Komponenten gemäß deren Installationsanleitung anlernen. Meist gilt es, dazu die jeweilige Komponente per Knopfdruck vorübergehend in einen Anlernmodus zu versetzen. Anschließend sollte der Controller den Sensor oder Aktor finden, ihn einlesen und ihn dem eigenen Z-Wave-Netz fest zuordnen – schließlich müssen sich im Zweifelsfall mehrere Z-Wave-Netze die Frequenz teilen. Die GUI lässt sich dabei sehr intuitiv bedienen. Bei Problemen finden Sie in der Datei OZW_Log.txt unter /home/homeassistant/.homeassistant/ Details zu den vom Z-Wave-Modul ausgeführten Aktionen.

Abbildung 5: Die Z-Wave-Geräte integrieren Sie über den Anlernmodus in das Home-Assistant-System.

Abbildung 5: Die Z-Wave-Geräte integrieren Sie über den Anlernmodus in das Home-Assistant-System.

Jede Komponente trägt sich im Home-Assistant-Universum des Systems ein. In der Übersicht sehen Sie die Zustände und Messwerte sämtlicher angelernter Sensoren und Aktoren (Abbildung 6). Dort lassen sich dann die einzelnen Komponenten im Detail verwalten und steuern sowie die einzelnen Knoten im Rahmen von Automatisierungen miteinander verknüpfen.

Abbildung 6: Die Übersicht zeigt die Messwerte und Zustände aller Z-Wave-basierten Sensoren und Aktoren an.

Abbildung 6: Die Übersicht zeigt die Messwerte und Zustände aller Z-Wave-basierten Sensoren und Aktoren an.

Die Konfiguration und Automatisierung lässt sich von Hand über die Dateien configuration.yaml beziehungsweise automations.yaml einrichten. Wesentlich mehr Komfort bietet aber die grafische Nutzeroberfläche im Menü Einstellungen | Automatisierung. Je nach Einsatzzweck und angebundenen Komponenten setzen Sie hier einfache bis äußerst umfassende Szenarien um. Im Testaufbau beschränken wir uns auf eine simple Funktion, die das Licht einschaltet, sobald ein Bewegungsmelder anschlägt (Listing 6).

Die Automation erstellen Sie via GUI; die entsprechenden Daten landen in der Datei automations.yaml. Das Beispiel aus Listing 6 demonstriert den Aufbau einer einfachen Automation: Der trigger wird beim Erreichen eines bestimmten Messwerts eines Sensors ausgelöst. Im Beispiel soll der Bewegungsmelder einen Aktivitätswert von mehr als 3 (above: '3') melden. Die Zuordnung erfolgt dabei über die entity_id der Sensorkomponente des verwendeten Multisensors, die sich bei Bedarf auch in der Konfiguration anpassen lässt.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben