Home Assistant – Ein modernes Smart Home System

Nach einigen Artikeln über meine DIY Geräte und Integrationen für mein Smart Home, gibt es heute mal einen Artikel über das Herzstück des Systems: Home Assistant. Ich habe vor, mit euch durch eine Beispiel-Installation auf einem Raspberry Pi zu gehen und euch ein paar Tipps mit auf den Weg zu geben.

Smart Home

Jeder von euch hat mindestens eines der folgenden Smart Home Systeme gehört: Google Home, Amazon Alexa, GiraHome, Bosch Smart Home, Homee. Alle diese sind ziemlich populär und funktionieren auch gut, allerdings haben auch alle eines gemeinsam. Alles funktioniert über die „Cloud“, also verschiedene Server im Internet. Diese werden von den Anbietern betrieben und bieten den Service von überall aus an.

In meinen Augen hat dieses Konzept allerdings ein paar Knackpunkte:

Zum einen begibt man sich eine völlige Abhängigkeit des Anbieters. Beschließt dieser das Ende des Systems, kann nichts mehr damit betrieben werden. Auch ist bei vielen Anbietern die Integration von Geräten auf einen Hersteller beschränkt.

Auch möchte ich eigentlich nicht meine Sensorwerte und Daten meiner Wohnung oder eines Hauses ins weite Internet übertragen. Wenn ich meine lokalen Geräte steuere dann muss mein Knopfdruck doch nicht zuerst ins WWW und dann wieder zu mir und in die Lampe zurück.

Genau diese beiden Punkte nimmt sich Home Assistant vor, es verspricht ein lokales Smart Home System ohne eine online Cloud.

Home Assistant

Man sollte sich nicht der Technologie beugen, sondern sie sollte eher mit Automation vorhandene Bewegungsabläufe und Geräte unterstützen. Das ist eines der Kredos der Gründer von Home Assistant. Durch die verschiedenen Integrationen ist das bereits mehr als gut umgesetzt. Viele bereits vorhandene Geräte verschiedenster Hersteller können somit direkt eingebunden werden.

Home Assistant beobachtet die eingebundenen Sensoren und kümmert sich auch um die Kontrolle von aktiven Elementen wie Lampen oder Heizungsthermostaten. Definiert man Automatismen in Home Assistant entsteht daraus ein automatisches Zusammenspiel aus Actio und Reactio.

Auch läuft das komplette System lokal im eigenen Netzwerk, das heißt Steuer- und Sensordaten verlassen nicht die eigenen 4 Wände. Dadurch ist man generell auch unabhängig von externen Servern.

Viele Freiwillige entwickeln Home Assistant als Open Source Projekt auf GitHub. Im Jahr 2019 war das System in den Top 10 der meisten Änderungen in einem öffentlichen Repository. Als ein Projekt ohne eine große Firma im Rücken ist das eine herausragende Leistung. Home Assistant ist inzwischen das Produkt von Nabu Casa, eine Firma mit den 5 Kern-Entwicklern welche nun Vollzeit daran arbeiten. Diese finanziert sich durch eine optionale Anbindung von Home Assistant an die eigene „Cloud“ für die Integration in das Alexa oder Google Home Universum. Für die annehmbare Summe von 5$ pro Monat wird einem auch bei dem entfernten Zugriff unter die Arme gegriffen. Ganz neu dabei ist auch ein eigener TTS Dienst welcher sich durchaus hören lassen kann.

Installation

Installieren kann man Home Assistant auf viele Arten. Für einen leichten Einstieg habe ich bei meinem ersten Versuchen einen Raspberry Pi 3 verwendet und inzwischen durch einen Pi der 4. Generation ersetzt. Auch Home Assistant selbst empfiehlt den Pi 4 auf ihrer Webseite, wo auch der komplette Installationsvorgang auf Englisch beschrieben ist.

Habt ihr euch um die Hardware gekümmert ist der erste Schritt sich das richtige Installations-Abbild von der Homepage herunterzuladen. Dieses liegt im tar.gz Format vor und kann mit dem balenaEtcher wie ein gewöhnliches Raspberry Betriebsystem auf der MicroSD Karte installiert werden. Hier gibt es auch schon eine erste Erfahrung von mir: Spart nicht bei der Speicherkarte, schaut das ihr eine der Application Class 2 einkauft. Home Assistant verändert im Betrieb sehr viele Daten und das korrumpiert nach einiger Zeit normale MicroSD Karten.

Ist die Speicherkarte beschrieben steckt sie in den Pi und verbindet ihn mit einem LAN Kabel mit eurem Netzwerk. Anschließend steckt das Netzteil ein und lasst euren Raspberry zum ersten Mal booten. (Anleitung für WLAN)

Und wer es vermisst einen Monitor anzuschließen, sei beruhigt, das Home Assistant Setup benötigt keinen. Alles wird über die Webseite verwaltet und erfordert im Normalfall keinen direkten Zugriff.

Nach dem Start ist der Home Assistant über einen Browser unter der URL http://homeassistant.local:8123 zu finden. Dieser zeigt während der Einrichtung einen Wartebildschirm. Ist die Installation auf dem Raspberry abgeschlossen, wird ein Assistent zur Erst-Einrichtung angezeigt. Dieser legt die grundlegenden Einstellungen eurer Home Assistant Instanz fest.

Erste Integrationen einbinden

Standard Oberfläche nach Installation
Oberfläche nach der Installation

Nach der Einrichtung landet ihr dann schon im komplett funktionstüchtigen Home Assistant. Von dort lassen sich jetzt schon viele Integrationen mit ein paar Klicks installieren. In den meisten Fällen hat Home Assistant schon ein paar eurer Geräte gefunden. Ist dem so, wartet unter der Glocke im Seitenmenü eine Notification auf euch. Klickt man auf den Link darin, befindet man sich auf der Integrations-Seite. Hier könnt ihr neue Geräte und Services für euch einbinden und anpassen. Alle zur Verfügung stehenden Einbindungen findet ihr auch auf der Home Assistant Seite. Zum Zeitpunkt des Schreiben sind das bereits über 1700 Stück.

Home Assistant versucht langsam alle seine Integrationen auch per Webseite konfigurierbar zu machen. Diese Umstellung nimmt allerdings immer noch etwas Zeit in Anspruch. Um trotzdem auch die „älteren“ Services zu nutzen werden diese über YAML Konfigurationsdateien eingebunden. Um an die Dateien zu gelangen müssen wir allerdings einen kurzen Ausflug in die Home Assistant Addon Welt machen.

Home Assistant Addons

Home Assistant bietet für alle Geräte oder Dienste welche eine eigene Anwendung benötigen die Addons an. Diese kapseln die Anwendungen auf eurem Raspberry Pi und ermöglichen eine Einbindung auf die Oberfläche. Manche davon besitzen auch keine Oberfläche, aber erweitern die Funktionen eurer Installation.

Supervisor Add-on Store

So wie das „Samba share“ Addon. Dieses lässt euch auf die Home Assistant Konfiguration ganz bequem über ein Netzlaufwerk zugreifen. Installiert wird es mit nur einem Klick im „Supervisor“ Bereich der Seitenleiste unter dem „Add-on Store“ Tab. Ist es installiert, setzt im „Configuration“ Bereich des Addons noch ein Passwort und startet es. Falls ihr mehr über das Addon und dessen Einstellungen lesen wollt, ist der Dokumentations-Tab ein guter Anlaufpunkt. Jetzt aber wieder zurück zur YAML Konfiguration.

Integrationen in der YAML Datei

Läuft das Samba Addon öffnet ihr (auf Windows) ein Explorer-Fenster und gebt in die Adresszeile \\homeassistant ein. Danach sollten sich 6 Ordner zeigen: addons, backup, config, media, share und ssl. Wir widmen uns jetzt mal nur der der Konfiguration, mehr über die anderen Ordner kann man in der Dokumentation des Samba Addons nachlesen. Nach dem Öffnen des config Ordners und der Eingabe des Passworts finden wir jetzt hier das Herz des Home Assistants. Lasst euch aber nicht von den vielen Dateien abschrecken. Was jede Datei tut, wird euch nach und nach klar wenn ihr sie braucht.

Wir schauen jetzt in die configuration.yaml Datei. Diese kann mit jedem herkömmlichen Text-Editor geöffnet werden. Unter verschiedenen Sektionen lassen sich hier weitere Integrationen anlegen, indem man ans Ende der Datei oder in den passenden Bereich neuen Text einträgt.

sensor:
  - platform: command_line
    name: CPU Raspi
    command: cat /sys/class/thermal/thermal_zone0/temp
    unit_of_measurement: '°C'
    value_template: '{{ value | multiply(0.001) }}'

Der obige Auschnitt zeigt die nötigen Zeilen um mittels der command_line Integration die CPU Temperatur der Raspberry Pi’s abzugreifen.

Mit der Zeit wird die Datei ziemlich lang wie ihr euch vorstellen könnt. Tritt dieser Fall ein, besteht auch die Möglichkeit sie in verschiedene Dateien aufzusplitten. Mehr darüber gibt’s auch in der Home Assistant Doku.

Oberfläche

Nachdem wir uns jetzt lange mit der Einbindung von Geräten und Sensoren beschäftigt haben, gehen wir doch zur Oberfläche über. Als Standard zeigt Home Assistant ein automatisch generiertes Dashboard mit allen ihm bekannten Informationen an.

Beispiel Karten für die Oberfläche

Um diese Darstellung zu ändern kann aber jederzeit die Kontrolle über die 3 Punkte am rechten oberen Fensterrand übernommen werden. Habt ihr das getan, könnt ihr mehrere Tabs anlegen und diese mit verschiedensten Karten füllen. Dabei reicht die Standard-Auswahl von Schaltflächen bis zu Heizungssteuerungen und Verläufen. Um einen Überblick über alle Karten zu machen, würde ich euch einen Besuch bei der Home Assistant Demo empfehlen. Dort könnt ihr euch alle Karten mal ansehen und auch neue zum testen anlegen.

HACS

Raspberry Pi Statistiken

Wollt ihr euch noch über die Standard-Karte auf der Oberfläche austoben, lohnt sich nach einiger Zeit ein Blick in HACS (Home Assistant Community Store). Dieser bietet eine Vielzahl von Integrationen, Oberflächen-Karten und auch Themes. Die Installation erfolgt als Integration und ist in der HACS Doku beschrieben.

Einige meiner Empfehlungen in diesem sekundären Store sind die Integration des Deutschen Wetterdienstes, „Auto Backup“ oder auch das „Circadian Lighting“. Natürlich gibt es auch ein paar Lieblinge bei den Karten, darunter sind die „Bar Card“, „Stack In Card“ und die „Mini Graph Card“. Diese drei erlauben mir unter andern eine wie ich finde schöne Darstellung der Raspberry Pi Statistiken.

Automatisierung

Jetzt haben wir uns um die Einbindung von Sensoren und deren Darstellung gekümmert, fehlt nur noch das „Smart“ im Smart Home. Also die Automatisierung. Diese ist in den meisten Fällen im Schema „Wenn etwas passiert, prüfe was anderes und wenn ok, dann mache was“. Genau solche Dinge lässt sich im Home Assistant über seinen Automatisierungs-Bereich anlegen. Dieser lässt sich über die Einstellungen erreichen.

Über die Oberfläche könnt ihr dort euren Ideen für verschiedenste Abläufe freien Lauf lassen. Seit Ende 2020 gibt es ein neues Feature in der Automatisierungswelt, die Baupläne (engl. Blueprints). Diese ermöglichen es eigene Automatisierungen zu teilen und auch welche von anderen Benutzern im lokalen System zu nutzen. In den beiden Wissensgebieten bin ich allerdings nicht sehr bewandert und verweise euch hier an die Home Assistant Doku. Ich bin ziemlich früh von den Automatisierungen zu Node-Red abgewandert, welches im folgenden kurz vorgestellt wird.

Node-Red

Node-Red ist eine grafische Entwicklungsumgebung im IoT Umfeld. Es ist für sich eine eigenständige Software und erhält durch zwei Integrationen (eine in Node-Red und eine im Home Assistant) den Zugang zu allen Sensoren und Aktionen von Home Assistant.

Mittels sogenannten Flows werden die Abläufe als Flussdiagram erstellt und dann ausgeführt. Die Daten zum Auswerten werden dabei über Nachrichtenobjekte an die verknüpften Knoten weitergeschickt.

Um das ganze zu veranschaulichen, erkläre ich kurz den abgebildeten Flow, welcher sich bei mir um das Einschalten eines Ventilators im Schlafzimmer kümmert. Dazu initiiert der linke, blaue Knoten den Vorgang und sendet jede Temperaturänderung als Json-Objekt mit Inhalt { payload: 24.0 ... } in den Flow. Der nächste Knoten prüft jetzt ob mein Home Assistant im Winter oder Sommerbetrieb ist. Ist es der Sommermodus, wird anschließend die Temperatur gegen > 26.5 °C oder < 26 °C geprüft. Je nach dem „fließt“ die Nachricht im Bild nach oben oder unten weiter. Im heißen Fall wird jetzt unter Tags der Ventilator eingeschalten, dabei wird auch das „Gate“ blockiert. Das bedeutet im oberen Bereich wird jede Nachricht am Gate-Knoten ignoriert, bis dieser resettet wird. Dies passiert wenn der Ventilator sich wieder abschaltet.

Ich persönlich bevorzuge sehr die grafische Darstellung, da es sehr schnell bei vielen und größeren Automatisierungen in Textform sehr unübersichtlich wird. Als Tipp von mir für Node-Red: Benennt eure Knoten sinnvoll und verwendet verschiedene Flows und Kommentare zum Strukturieren.

Ich hoffe ich konnte euch in diesem kleinen Ausflug Home Assistant näher bringen und euch auch ein paar Tipps auf den Weg geben. Solltet ihr noch etwas mehr in den Konfigurationen schnüffeln wollen gibt meine P-Assistant Konfiguration öffentlich auf GitHub.

Außerdem veranstalte ich mit einem meiner Arbeitskollegen so ca. alle 3 Monate das Home Assistant Munich Meetup. Darin stellen wir jedes Mal so 2-3 Themen vor und sprechen anschließend über vielerlei Themen rund um Home Assistant. Gastredner sind natürlich auch gerne gesehen.

The following two tabs change content below.
Ein technisch sehr interessierter Sourcecode-Gärtner, welcher in seiner Freizeit auch das ein oder andere Spiel am Rechner zockt. Er liebt auch technische Spielereien und Gadgets welche teilweise auch selbst angefertigt und gedruckt werden. Hier als Gast-Author unterwegs. Buy Me A Coffee

Neueste Artikel von Mr. P (alle ansehen)