Home Assistant: Open-Source-Framework zur Heimautomatisierung

Aus LinuxUser 09/2024

Home Assistant: Open-Source-Framework zur Heimautomatisierung

© Ruslan Shramko / 123rf.com

Stummer Diener

Home Assistant glänzt mit der Integration einer breiten Auswahl an Geräten, vielen nützlichen Funktionen und einfacher Bedienung über eine grafische Oberfläche.

Das fänden sicher die meisten praktisch: Ein persönlicher Assistent, der alle häuslichen Geräte im Blick behält, über deren Status informiert sowie zusätzlich routiniert und zuverlässig alltägliche Aufgaben übernimmt. Hinter dem Open-Source-Framework Home Assistant [1] steckt ein solcher Helfer. Dabei geht das Projekt weit über das hinaus, was viele andere Lösungen der Hausautomation bieten. Einen ersten Eindruck mag das einfache Beispiel aus Abbildung 1 vermitteln, ein Wohnungsgrundriss mit sämtlichen Geräten im Dashboard von Home Assistant. Die Ansicht fasst die wesentlichen Komponenten anschaulich zusammen und gestattet, sie bei Bedarf manuell zu steuern – etwa eine Lampe ein- oder auszuschalten.

Abbildung 1: Über einen Wohnungsgrundriss im Dashboard behalten Sie den Überblick über unterschiedliche Geräte und steuern sie gegebenenfalls manuell.

Abbildung 1: Über einen Wohnungsgrundriss im Dashboard behalten Sie den Überblick über unterschiedliche Geräte und steuern sie gegebenenfalls manuell.

Doch damit nicht genug: Home Assistant ist eine aktiv gepflegte Open-Source-Software. Die Quellen finden sich auf Github [2]. Neben einem Kernteam erweitert eine große Community kontinuierlich das Angebot einzubindender Komponenten und neuer Funktionen. Den Grundstein für Home Assistant legte 2013 Paulus Schoutsen. Er entwickelte und veröffentlichte ein Skript zum Steuern der Beleuchtung bei Sonnenuntergang. Mit der Zeit mauserte sich das Projekt zu einem der wichtigsten Open-Source-Frameworks für die Hausautomation, inklusive reger Unterstützung durch die Nutzer.

Heute steht hinter Home Assistant das Unternehmen Nabu Casa [3]. Seit dem Gründungsjahr 2018 ist das Team auf über 30 fest angestellte Mitglieder angewachsen. Nabu Casa kümmert sich neben der Pflege und Weiterentwicklung des Kerns von Home Assistant um einen kostenpflichtigen Cloud-Dienst. Die Preise für Home Assistant Cloud liegen im Euro-Raum aktuell bei 7,50 Euro monatlich oder 75 Euro jährlich. Damit unterstützen Käufer nicht nur die Weiterentwicklung der Software, sondern erhalten unter anderem umfassenden Zugang zu Text-to-Speech-Funktionen und einen gesicherten Zugang zu ihrer lokalen Home-Assistant-Instanz.

Seit einiger Zeit gehört auch ESPHome [4] zu Nabu Casa. Dabei handelt es sich um ein System zum Steuern verschiedener Mikrocontroller, beispielsweise aus der beliebten ESP32-Reihe, mithilfe von einfachen, aber leistungsfähigen Konfigurationsdateien. Es ist bestens in Home Assistant integriert und erlaubt es, eine Gerätekonfiguration via Browser zu erstellen, inklusive des Flashens der Firmware.

Das Konzept

Home Assistant versteht sich als ein eingebettetes System, also als eine für eine oder mehrere Funktionen innerhalb eines größeren Systems entwickelte Kombination aus Hard- und Software. Die Home-Assistant-Architektur setzt sich aus drei Komponenten zusammen. Die erste, das Betriebssystem, stellt eine minimale Linux-Umgebung bereit, um die beiden anderen Komponenten, Supervisor und Core, auszuführen. Daneben verwaltete der Supervisor das Betriebssystem. Der Core interagiert mit dem Benutzer, dem Supervisor sowie IoT-Geräten und -Diensten (Abbildung 2).

Abbildung 2: Der schematische Aufbau von Home Assistant veranschaulicht die einzelnen Komponenten.

Abbildung 2: Der schematische Aufbau von Home Assistant veranschaulicht die einzelnen Komponenten.

Das Entwicklungsteam von Home Assistant zielt darauf ab, möglichst vielen Anforderungen an unterschiedliche Geräte, Abläufe, Visualisierungen und dergleichen zu genügen. Das spiegelt auch die Systemarchitektur wider. Der Core besteht aus dem eigentlichen Kern, der nur wichtige und häufig verwendete Funktionen bündelt, etwa die Zeit- und Datumsrechnung. Für sich allein lässt er sich nicht sinnvoll einsetzen, denn er berücksichtigt noch nicht die Komponenten, die ein Smart Home eigentlich ausmachen. Dazu zählen Geräte wie Sensoren und Dienste wie der MQTT-Broker, die in der Terminologie von Home Assistant Integrationen heißen. Hinzu kommen Addons, hinzufügbare Funktionen wie SSH, die mit Blick auf einen möglichst schlankes, ballastfreies Basissystems zunächst nicht an Bord sind.

Geräte dienen häufig mehreren Zwecken. Ein Sensor beispielsweise registriert Bewegungen, nimmt die Helligkeit wahr und misst die Temperatur. All diese Werte, Optionen und Objekte – kurz, alles, was sich messen und wahrnehmen lässt – bezeichnet Home Assistant als Entität (Entity). Auch Dienste verfügen über Entitäten; der Dienst weather etwa besitzt die Entität forecast_home. Entitäten weisen eine ID, einen Friendly Name, ein Icon, eine Device Class und einen Zustand auf, im Beispiel etwa rainy. Gegebenenfalls kommen weitere Attribute hinzu, wie temperature: 16.1.

Die Device Class wirkt sich auf die Darstellung aus, sie leitet die Statusinformation in bestimmte Kanäle. So kann etwa bei einem Mobiltelefon mit der Home-Assistant-App die Entität Is Charging den Status off haben, was zur Meldung Ausgesteckt nebst entsprechendem Icon führt.

Die Installation

Zur Installation von Home Assistant stehen Ihnen offiziell vier Wege offen: Zunächst lässt sich Home Assistant als Betriebssystem HAOS installieren. In dieser Variante bekommen Sie ein ISO-Image, das sowohl das Betriebssystem für die Hardware als auch Home Assistant selbst enthält. Die Entwickler liefern es mit Supervisor aus, einem Werkzeug, um den Home-Assistant-Core und die Addons zu verwalten. Es gibt Abbilder für den Raspberry Pi, den Intel NUC, den Odroid und andere Kleinstrechner.

Gegebenenfalls nutzen Sie das HAOS-Image, um eine neue virtuelle Maschine mit Virtualbox oder einer ähnlichen Software aufzusetzen. Der Vorteil liegt auf der Hand: Sie erhalten einen voll funktionsfähigen Home Assistant mit Supervisor-Menü und Addons; alles wird unterstützt und regelmäßig aktualisiert. Daher gilt dieser Weg als empfohlene und gebräuchlichste Installationsvariante.

Alternativ installieren Sie Home Assistant in einem Container. Dazu gibt es eine eigenständige, containerbasierte Installation von Home Assistant Core. Als Voraussetzung benötigen Sie allerdings eine Containersoftware wie Docker. Die dritte Installationsvariante nennt sich Home Assistant Core. Home Assistant Core ähnelt auf den ersten Blick einer Installation von Home Assistant Container. Der Unterschied besteht darin, dass anstelle von Docker eine virtuelle Python-Umgebung zum Einsatz kommt.

Die vierte Variante, Home Assistant Supervised, versucht, das Beste aus allen Varianten herauszuholen: Sie bietet Supervisor-Unterstützung, aber gleichzeitig lässt sich das Betriebssystem auch für andere Zwecke als Home Assistant verwenden. Allerdings fällt der Installationsvorgang sehr komplex aus. Obendrein erweist sich die Wartung des Gesamtsystems inklusive aller weiteren Anwendungen als problematisch und erfordert fundierte Linux-Kenntnisse.

In Sachen Hardware, auf der alles läuft, stellt der Raspberry Pi eine weitverbreitete Option dar. Für den Anfang genügt ein RasPi 3B. Home Assistant spielen Sie als Betriebssystem mit dem Raspberry Pi Imager problemlos auf die SD-Karte. Für den ersten Bootvorgang braucht es zwingend einen Internetzugang, da der Ersteinrichtungsprozess verschiedene Komponenten aus dem Netz bezieht. Dafür empfiehlt sich aus Gründen der Zuverlässigkeit und der Stabilität ein kabelgebundener Ethernet-Anschluss, wie auch für den laufenden Betrieb. Auf einem Monitor lässt sich der Startvorgang gut verfolgen. Zum Abschluss erscheint außerdem die dem Gerät zugeordnete IP-Adresse.

Erste Schritte

Die Konfiguration und Administration von Home Assistant erfolgt bevorzugt über den Webbrowser. Home Assistant nutzt den Port 8123. Sie erreichen das Interface unter http://homeassistant.local:8123, sofern der Browser und die Home-Assistant-Instanz im selben lokalen Netz beheimatet sind. Alternativ verwenden Sie anstelle des Namens die IP-Adresse. Bei der Erstanmeldung erfragt Home Assistant noch eine Reihe von Angaben wie Benutzerdaten, Zeitzone, Währung und dergleichen. Danach finden Sie sich im Home-Assistant-Hauptfenster wieder, wobei der Fokus auf dem Eintrag Übersicht liegt.

Nun steckt hinter Home Assistant jedoch mehr als eine einfache Plug-and-Play-Lösung. Das System zeigt sich in Hinblick auf die Fülle der abzudeckenden Anforderungen und Funktionen durchaus komplex. Zwar versuchen die Entwickler durch Automatismen und eine ausgefeilte GUI dem Anwender viele Dinge abzunehmen, aber das kann Fluch und Segen zugleich bedeuten.

In unserem Test tauchten bereits nach dem ersten Login in der Übersicht (dem Dashboard) zwei Einträge auf: der soeben angelegte Benutzer und ein durch einen solchen Automatismus gefundenes Gerät, ein per Wi-Fi verbundener Fernseher. Mit einem Mausklick auf die Kacheln rufen Sie objektbezogene Informationen ab oder lösen Schaltvorgänge aus. Die als Vereinfachung gedachte Hilfestellung bewirkt allerdings unter ungünstigen Umständen das Gegenteil und stiftet zunächst etwas Verwirrung.

Bei einem Blick auf die Geräteliste unter Einstellungen | Geräte und Dienste | Integrationen sehen Sie eine Reihe von Integrationen (Abbildung 3). Manche davon hat die automatische Geräteerkennung entdeckt, einige sogar konfiguriert. Beispielweise verbirgt sich hinter der Integration Google Cast als Gerät der im Überblick angezeigte Fernseher. Je mehr Geräte sich im lokalen WLAN tummeln, desto mehr erkennt die Software potenziell. Eine hundertprozentige Entdeckungsquote gibt es aber nicht, sodass die Liste lückenhaft bleibt und Sie manuell nachsteuern müssen. Zudem empfiehlt es sich, erst einmal aufzuräumen und nicht benötigte Integrationen zumindest zu ignorieren oder sogar zu deinstallieren.

Abbildung 3: Die Seite <span class="ui-element">Integrationen</span> der Home-Assistant-GUI listet die verf&uuml;gbaren Integrationen auf.

Abbildung 3: Die Seite Integrationen der Home-Assistant-GUI listet die verfügbaren Integrationen auf.

Integrationen

Integrationen, also Geräte oder Dienste, fügen Sie einfach über die dazugehörige Schaltfläche hinzu. Der Einrichtungsassistent bittet Sie zunächst, die Marke des Geräts anzugeben (in Beispiel aus Abbildung 4 eine Shelly-RGB-Lampe). Daraufhin sollte Home Assistant das neue Gerät erkennen. In zwei folgenden Fenstern möchte die Software noch einmal die Geräteeinrichtung bestätigt wissen und gibt eine Erfolgsmeldung aus.

Abbildung 4: Die dazugeh&ouml;rige Seite sammelt alle Informationen zu einem bestimmten Ger&auml;t.

Abbildung 4: Die dazugehörige Seite sammelt alle Informationen zu einem bestimmten Gerät.

Ein Klick auf 1**GERÄT liefert ein umfassendes Bild über alle Belange des Geräts in Home Assistant. Im Bereich Steuerelemente schalten Sie die RGB-Lampe ein und aus. Über den Eintrag shellycolorbulb-3494546B öffnen Sie ein Fenster, in dem Sie weitere Einstellungen wie Helligkeit und Farbgebung vornehmen. ZUM DASHBOARD HINZUFÜGEN ergänzt eine Karte in der Übersicht, sofern das nicht bereits automatisch erfolgt ist.

Automatisierungen

Ein Assistent taugt herzlich wenig, wenn er nicht selbstständig Aufgaben erledigt. Diese Prozesse heißen in Home Assistant Automatisierungen und bilden ein Kernstück des Systems. Die Bandbreite reicht von simplen bis zu hochkomplexen Abläufen. Ein einfaches Beispiel ist das zeitgesteuerte Ein- und Ausschalten der Lampe. Eine neue Automatisierung richten Sie über Einstellungen | Automatisierungen und Szenen | AUTOMATISIERUNG ERSTELLEN | Neue Automatisierung erstellen ein.

Im Kern handelt es sich um ein simples Wenn-Dann-Konstrukt: Wenn es 20 Uhr ist, dann schalte die Shelly-RGB-Lampe für 30 Minuten ein. Über den Schalter AUSLÖSER HINZUFÜGEN legen Sie den Trigger fest. Den passenden Auslöser, konkret die Zeit, finden Sie über das Ausklappmenü mit erweiterten Suchfunktionen. AKTION HINZUFÜGEN bestimmt die Handlung. Erneut bieten Ausklapplisten und erweiterte Suchfunktionen eine umfassende Hilfestellung. Damit haben Sie das Einschalten der Lampe gesichert. Jetzt fehlen noch die 30-minütige Verzögerung und das Ausschalten. Beide ergänzen Sie wieder über AKTION HINZUFÜGEN, wobei für das Ausschalten eine andere Option über einen Dienst zum Tragen kommt. SPEICHERN Sie Ihre Aktionen, um das Einrichten der Automatisierung abzuschließen.

Derlei banale Abläufe kommen aber eher selten vor, und fast jeder Heimautomatisierungssoftware gelingt es, mit eigenen Bordmitteln vergleichbares umzusetzen. Der Mehrwert von Home Assistant speist sich für diesen Teilaspekt aus unterschiedlichen Quellen: Zum Beispiel lässt sich der Ablauf jeder Automatisierung verfolgen (Tracing). Sie können jede Aktion einzeln ausführen und damit testen und obendrein Szenen konfigurieren. Eine Szene entspricht einer Abfolge von Aktionen, in der im Unterschied zu Automatisierungen keine Auslöser oder Bedingungen existieren.

Darüber hinaus gibt es Skripte, die Szenen darin ähneln, dass sie ebenfalls keinen Auslöser besitzen. Sie erlauben allerdings mehr Dynamik, da sich Schleifen (Wiederholungen) und Bedingungen abbilden lassen. Zudem beeinflussen Sie den Ablauf durch das Übergeben von Variablen. Das markiert gleichzeitig den Einstieg in die Programmierung. Mithilfe von Vorlagen (Blueprints) müssen Sie das Rad aber nicht ständig neu erfinden, sondern machen sich die Vorarbeit der Home-Assistant-Community zunutze.

Alles YAML

Zum Konfigurieren greift Home Assistant auf die YAML-Syntax zurück. Obwohl Sie die Aufgaben zum Großteil über die Benutzeroberfläche erledigen können, kommen Sie manchmal nicht umhin, auf Dateiebene und damit in YAML Hand anzulegen. Zu den entscheidenden Dateien zählen beispielsweise die configuration.yaml für die allgemeine Konfiguration oder die automations.yaml für Automatisierungen. Hinter der im vorigen Abschnitt erstellten Automatisierung verbirgt sich intern nichts anderes als eine Abfolge von YAML-Anweisungen (Listing 1).

Listing 1

Lampen-Timer in YAML

alias: "Shelly_RGB-Lampe_Timer "
description: ""
trigger:
  - platform: time
    at: "20:00:00"
condition: []
action:
  - type: turn_on
    device_id: 0193d2437b79e92d6e9eb9bf40fedf03
    entity_id: a3f10c55f7329cc3c9dd93bbea34d5b5
    domain: light
  - delay:
      hours: 0
      minutes: 30
      seconds: 0
      milliseconds: 0
  - service: light.turn_off
    metadata: {}
    data: {}
    target:
      entity_id: light.shellycolorbulb_3494546b2c8d
mode: single

Gut zu erkennen sind die unterschiedlichen Wege der Schaltvorgänge: Das Einschalten übernimmt der Aktionstyp turn_on (Zeile 8) mit entsprechenden Name-Wert-Paaren, das Ausschalten verantwortet der Service light.turn_off (Zeile 17). Zugegebenermaßen wirkt das für den Einsteiger etwas befremdlich und abschreckend. Doch wie so oft macht hier Übung den Meister. Je intensiver und häufiger Sie sich mit YAML im Zusammenspiel mit Home Assistant befassen, desto eingängiger und einfacher wird die Sache. Die eingebauten Entwicklerwerkzeuge leisten an dieser Stelle wertvolle und unverzichtbare Hilfe.

Fazit

Home Assistant besitzt das Potenzial, zum Goldstandard in der Home Automation zu avancieren. Das beruht nicht allein auf der Vielzahl integrierbarer Gerätetypen unterschiedlichster Hersteller.

Hinzu kommen die vielen nützlichen Funktionen, die in diesem Artikel aus Platzgründen nicht zur Sprache kommen konnten. Dazu gehören eine ausgereifte App, diverse Möglichkeiten der Anwesenheitserkennung, verschiedene Wege, um Text-to-Speech einzusetzen, die einfache Programmierung von Mikrocontrollern mit ESPHome und vieles andere mehr. Monatliche Updates halten das System aktuell.

Gleichwohl ist Home Assistant keine eierlegende Wollmilchsau. Zwar macht das System vieles möglich, aber die damit einhergehende Komplexität und Vielschichtigkeit fordern ihren Tribut. Dementsprechend sollten Sie als Benutzer unbedingt strukturiert vorgehen. Beherzigen Sie außerdem stets das KISS-Prinzip: Keep it simple and stupid! 

Der Autor

Udo Brandes war als Programmierer und Inhouse Consultant bei diversen öffentlichen Dienstleistern tätig. Heute arbeitet er als Autor mit den Themenschwerpunkten IoT und MCU. Sein bei Rheinwerk erschienenes Werk “Home Assistant – das umfassende Handbuch” behandelt die mannigfaltigen Möglichkeiten des Smart-Home-Helfers.

Infos

  1. Home Assistant: https://www.home-assistant.io

  2. Home Assistant auf Github: https://github.com/home-assistant/core

  3. Nabu Casa:https://www.nabucasa.com

  4. ESPHome: https://esphome.io

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 09/2024 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben