Home Assistant - #1 Installation auf Raspberry Pi

Home - #1

Home Assistant, als Alternative zu openHAB oder FHEM, haben wir bereits in unserem Serienüberblick beschrieben. In diesem Beitrag geht es darum, Home Assistant auf einem Raspberry Pi 3 B+ zu installieren. Alternativ funktioniert das natürlich auch mit einem Asus Tinkerboard oder einem Intel NUC.


Wir gehen davon aus, das Du die benötigte Hardware bereits hast - ansonsten schau nochmal in unseren Serienüberblick in dem wir alle benötigten Komponenten auflisten.


Installation

Zunächst müsst Ihr entscheiden, welche Distribution von Home Assistant Ihr nutzen möchtet. Hier gibt es nämlich mehrere:

  • Hass.io - ein vorkonfiguriertes System basierend auf buildroot das neben Home Assistant auch eine Docker-Umgebung zur einfachen Installation von Addons bereitstellt.
  • Hassbian - eine für den Raspberry Pi und dessen System Raspbian angepasste Version. Hier entfällt die Docker-Integration und Addons können nicht so einfach installiert werden. Man ist jedoch im ganzen etwas flexibler.
  • Andere Plattformen - da Home Assistant eigentlich nur ein Python-Programm ist, kann es auf den meisten Plattformen die Python unterstützen (Windows, Mac, Linux, Synology DSM) installiert werden. Hier ist jedoch mehr Anpassungsarbeit notwendig.

Wir empfehlen Euch hier die Hass.io Distribution, die wir auch für unseren Guide hier benutzen.

Vorbereitung

Wir laden uns zunächst von der Hersteller-Seite die aktuellste Version von Hass.io herunter. Diese finden wir unter: https://www.home-assistant.io/hassio/installation/


Download Hass.io


Außerdem benötigen wir ein Tool um das heruntergeladene Image auf die MicroSD-Karte (die optimalerweise min. 32 GB Speicher hat) zu schreiben. Hier kann man entweder balenaEtcher oder ein anderes Tool wie Win32 Disk Imager nutzen.


Wir stecken also unsere MicroSD-Karte in unseren Kartenleser, entpacken die heruntergeladenen .zip-Datei bis wir eine .img-Datei haben und wählen im Tool unserer Wahl aus um sie auf die MicroSD-Karte zu schreiben.


Optional: Raspberry per WLAN oder statische IP

Möchtet Ihr Eure Home Assistant Installation per WLAN verbinden oder mit einer statischen IP konfigurieren, benötigt Ihr einen leeren USB-Stick (Größe egal) den Ihr mit FAT32 formatiert und dort einen Ordner namens CONFIG\network. In diesem erstellt Ihr eine Textdatei mit dem Namen my-network (ohne Endung) und fügt dort folgenden Inhalt ein:


Wollt Ihr eine statische IP vergeben, müsst Ihr in die Datei folgendes eingeben:

Shell-Script: my-network
  1. [ipv4]
  2. method=manual
  3. address=192.168.1.111/24,192.168.1.1
  4. dns=1.1.1.1;1.0.0.1;

Dabei ist die erste Adresse die IP des Raspberry Pi, die zweite die des Gateways bzw. Routers.

Erster Start

Wir stecken also die beschriebene MicroSD-Karte in unseren Raspberry Pi und schließen ihn mittels Netzteil an das Stromnetz an. Der erste Start kann bis zu 20 Minuten dauern - das kommt daher, dass HassOS die aktuellste Version von Home Assistant erst herunterlädt.


Nachdem wir geduldig gewartet haben, kann das Interface unter http://hassio.local:8123 bzw. http://<IP-eures-Raspberry>:8123 erreicht werden.


Home Assistant First Start


Hier legen wir zuerst ein Benutzerkonto für den Administrator an. Und loggen uns anschließend mit diesem gleich ein.


Überblick über das Webinterface

Wir befinden uns nun in der Übersicht des Home Assistant Webinterfaces. Hier haben wir links eine Menüleiste auf deren Punkte wir gleich eingehen.

In der Mitte befindet sich das Hauptfenster wo alle verfügbaren (und eingerichteten) Komponenten und deren Attribute eingeblendet werden. Darüber noch die Titelleiste mit eventuell eingerichteten Reitern (bzw. Gruppen).


Home Assistant Main


Dieser Screenshot enthält schon einige eingerichtete Komponenten, daher kann es bei Euch etwas anders aussehen. Da aber auch Home Assistant eine automatische Discovery-Funktion hat können bei Euch durchaus auch schon Komponenten anzeigt werden.


Linkes Menü


Nun zu den einzelnen Menüpunkten auf der linken Seite:


  • Übersicht: Die Schaltzentrale Eures Home Assistant, hier werden alle eingerichteten Komponenten anzeigt und gesteuert. Je nach Komponenten sind unterschiedliche Parameter verfügbar. Das können Messwerte, Schalter, Bilder, usw. sein.
  • Karte: Hier werden von Euch angelegt Zonen angezeigt sowie die Position von Geräten, die Ihr als Tracker eingerichtet habt.
  • Logbuch: Zeigt die ausgelösten Ereignisse an, also wann zum Beispiel ein Schalter von "Aus" auf "Ein" gewechselt hat.
  • Verlauf: Ähnlich dem Logbuch, nur werden hier zeitliche Verläufe und Graphen von Messwerten angezeigt.
  • Configurator: Der integrierte Text-Editor zum Bearbeiten der Konfigurationsdateien. Muss jedoch erst noch installiert werden.
  • Hass.io: Der "App-Shop" von Home Assistant. Hier können Addons heruntergeladen werden und auch die Backupfunktion ist hier versteckt.
  • Einstellungen: Wie der Name schon sagt, das Einstellungsmenü.

Das Menü lässt sich über die Konfiguration mit weiteren Menüpunkten erweitern.


Titelleiste


Die Titelleiste enthält zunächst den Titel des ausgewählten Menüpunkts. Daneben befinden sich die drei Striche mit dem das linke Menü ausgeblendet werden kann. In der Übersicht kann rechts die Sprachsteuerung aktiviert werden.


Hauptfenster (Übersicht)


In der Übersicht werden hier alle konfigurierten Sensoren, Schalter und Komponenten angezeigt. Je nach Gruppierung kann es sein, dass manche Komponenten hier nicht auftauchen bzw. in anderen Reitern untergebracht sind.


Grundlagen

Da wir in unseren Tutorials öfters mit verschiedenen Home Assistant-spezifischen Begriffen umgehen, hier eine kleine (und vereinfachte) Einweisung in die Terminologie von Home Assistant:

Home Assistant teilt die angeschlossenen Komponenten nach Typen ein - also Sensoren, Lampen, Klimakontrollen, Tracker, Kameras, Medienplayer, Dienste, usw. ein. Jeder Typ basiert auf einer Plattform. Die Plattform kann dann beispielsweise ein Anbieter wie HomeMatic, KNX, MQTT oder ein Dienst wie der Amazon Alexa, Apple iCloud oder der Deutsche Wetterdienst (DWD) sein, von dem Daten bezogen werden.

Jede Komponente wird als eine oder mehrere Entität(en) in Home Assistant dargestellt. Pro Entität können ein oder mehrere Attribute verknüpft sein.


Hier ein kleines Beispiel anhand eines HomeMatic Fenstersensors:


HA Entity


Der Sensor mit der Entitäts-ID "binary_sensor.fs_buero_state" gibt als Hauptwert zurück, ob ein Fenster offen (1) oder geschlossen (0) ist. Daher teilt Home Assistant den Sensor als Binär-Sensor ein. Er gibt jedoch noch zusätzliche Attribute zurück, z. B. den Batteriestand, die Empfangsstärke oder die ID.


Mittels der Entitäts-ID wird dann die Komponenten auch gesteuert.


configuration.yaml

Konfiguriert wird Home Assistant größtenteils über die Datei configuration.yaml, die sich im /config/ -Ordner der Home Assistant Installation befindet - Diese ist jedoch in einem Docker-Container eingebunden und man hat erstmal keinen direkten Zugriff darauf.


Zugriff zur configuration.yaml herstellen

Wir müssen uns zunächst den Zugriff auf die configuration.yaml ermöglichen. Dazu bietet Home Assistant zwei Möglichkeiten:

  • Die Nutzung des Configurators - einem eingebauten Text-Editor mit Syntaxhervorhebung auf Basis des ACE-Editors
  • Verbindung über SAMBA und die Nutzung eines eigenen Editors wie Visual Code, Atom oder Sublime Text.

Welche Variante Ihr nutzt, bleibt Euch überlassen, wir erklären hier beide.


Im linken Menü der Home Assistant Interfaces klicken wir auf "Hass.io" und wählen im oberen Menü anschließend "Add-on Store" aus.


Home Assistant


Uns interessieren zunächst nur die Addons "Configurator" und "Samba share". Wir klicken auf den Configurator und anschließend auf "Install". Dasselbe wiederholen wir bei Samba share.

Wir drücken jedoch noch nicht auf Start, sondern schauen uns die Config Bereich der jeweiligen Add-ons an.


HA Config Configurator


In den Config-Bereichen ändern wir zunächst nur die Parameter "username" und "password" auf Werte unserer Wahl. Den Parameter "ssl" lassen wir zunächst auf false. Anschließend starten wir die Addons per "Start"-Button.


So weit, so gut - sollte etwas beim Start schiefgehen, könnt Ihr weiter unten im Bereich Log auch die Fehlermeldungen einsehen. Hinter den Kulissen sind die Add-ons nichts weiter als angepasste Docker-Images die gestartet werden.


Configurator nutzen

Den Configurator können wir nach dem Start über die URL http://hassio.local:3218 oder http://<IP-des-Home-Assistant-Rechners>:3218 öffnen.


Home Assistant Configurator


Der Editor öffnen beim ersten Start direkt die configuration.yaml im config -Ordner. Mit einem Klick auf das Ordnersymbol links oben kann durch die Ordnerstruktur navigiert und andere Dateien geöffnet werden.


Solltet Ihr Dateien geändert haben, erscheint rechts oben ein Button zum Speichern.


Samba-Zugriff

Der Zugriff über Samba (SMB) ist denkbar einfach. Unter Windows einfach den Dateiexplorer öffnen und in der Adressleiste \\hassio.local\ oder \\<IP-eures-Home-Assistant-Rechners> aufrufen. Unter MacOS im Finder im Menü "Mit Server verbinden..." auswählen und smb://hassio.local eingeben und hier das config-Verzeichnis mounten.

Der Rest dürfte klar sein.


Aufbau der configuration.yaml


Die Konfigurationsdatei wird im YAML -Format geführt. YAML ist eine sogenannte Markup-Language, die an XML angelehnt ist und oft in Programmiersprachen Perl, Python oder C genutzt.


Dabei wurde Wert auf gute Lesbarkeit der Dateien gelegt. YAML berücksichtigt das Einrücken von Texten und man sollte bei der Bearbeitung darauf achten. Es wird empfohlen Leerzeichen und keine Tabulatoren zu verwenden.


Anhand eines Beispiels erklären wir, wie so ein Block in der configuration.yaml aussieht. Wir möchten zwei Notifier anlegen, also Komponenten, die eine Benachrichtigung erzeugen. Zum einen soll das eine LaMetric Time und einmal ein iPhone sein.


Das Ganze sieht so aus:


Code: parent entity
  1. ...
  2. # Benachrichtigungen
  3. notify:
  4. - platform: lametric
  5. name: HomeLame
  6. - platform: ios
  7. ...

notify: - der Typ der folgenden Komponenten

- platform: lametric - legt ein notify auf der Platform lametric an

name: Bezeichnung des nofity: Die Entität des Objekts wäre dann notify.HomeLame

- platform: ios - Legt einen weiteren notify auf der Platform iOS an


Kommentare werden mit # eingefügt. Im ersten Beispiel werden alle Komponenten vom Typ notify in einem Block zusammengefasst. Alternativ kann jede Komponenten einzeln angelegt werden. Das sieht dann so aus:


Code: separate entity
  1. ...
  2. # Benachrichtigungen
  3. notify lametric:
  4. platform: lametric
  5. name: HomeLame
  6. notify ios:
  7. platform: ios
  8. name: worldoftech iPhone
  9. ...

Das wäre dann die zweite Schreibweise. Natürlich könnt Ihr auch beide Schreibweisen kombinieren.


Zum Abschluss dieses Tutorials binden wir nun den Configurator als Menüpunkt in das linke Menü des Home Assistant Interface ein. Dazu fügen wir folgenden Code unter die Komponente panel_iframe ein:

Code: Configurator in Menü einbinden
  1. ...
  2. panel_iframe:
  3. configurator:
  4. title: Configurator
  5. icon: mdi:wrench
  6. url: https://192.168.1.30:3218
  7. ...


Abschließend speichern wir die Änderung an der configuration.yaml und gehen zurück in unser Home Assistant Webinterface. Hier klicken wir zuerst auf "Einstellungen", dann auf "Allgemein".


HA Check config


Im folgenden Fenster auf "Konfiguration prüfen". Steht hier dann Konfiguration in Ordnung können wir unten auf "Neu starten" klicken.


Nach einer Weile wird das Interface neu geladen und der Menüpunkt "Configurator" sollte im linken Menü aufgetaucht sein.


Soweit dieses Tutorial - im nächsten Teil werden wir obligatorisch unsere HomeMatic-Thermostate in Home Assistant einbinden. Wir versuchen in Kürze auch einen Videobeitrag zu diesem Thema zu veröffentlichen.


Habt Ihr Euch bereits mit Home Assistant auseinandergesetzt? Oder habt Ihr es schon länger im Einsatz? Schreibt uns gerne in den Kommentaren oder im Forum über Eure Erfahrungen.



    Über den Autor

    Gründer und Autor von worldoftech.de

    Seit 25 Jahren im Bereich IT unterwegs, leidenschaftlicher Computerspieler, Technik-Freak und begeistert von allem was einen Motor (Auto/Motorrad/Flugzeug) hat.


    Nutzt Zuhause openHAB2 zusammen mit HomeMatic Komponenten sowie netatmo als Wetterstation. InfluxDB und Grafana zur Auswertung. Weitere Gadgets von Xiaomi, Sonos und Samsung

    Patrick Team

    Kommentare