Home Assistant Guide
Der Guide rund um Home Assistant. Dieser Artikel soll als Nachschlagewerk und Hilfestellung für diverse Themen und Erkenntnisse rund um Home Assistant dienen.
Aufbau dieses Artikels
- Was ist Home Assistant?
- Installation & Hosting
- Anpassungen an der Konfiguration
- Basics in Home Assistant
- Fernzugriff auf Home Assistant
- HACS installieren
- Hardware-Empfehlungen
Was ist Home Assistant?
Home Assistant ist eine Open-Source-Software zur Steuerung und Verwaltung von Smart Home Geräten. Home Assistant ist dabei der zentrale Punkt, an welchem alle Geräte zusammenkommen und Automatisierung, etc. ausgeführt werden. Home Assistant bietet eine Vielzahl an Integrationen an, welche es ermöglichen eine Verbindung mit Smart Home Geräten herzustellen. Viele davon können direkt über das Webinterface konfiguriert werden, ansonsten ist es möglich Integrationen über eine YAML-Datei zu konfigurieren. Wenn eine Integration für ein gewünschtes Gerät nicht direkt in Home Assistant verfügbar ist, kann es auch gut sein, dass jemand aus der Community für dieses Gerät bereits eine eigenen Integration oder anderweitige Implementation entwickelt hat. Diese können auf GitHub oder im Home Assistant Community Store (HACS) gefunden und installiert werden. In Home Assistant ist es dann möglich geräteübergreifende Automationen zu erstellen und Dashboards zur einfachen Steuerung anzulegen.
Installation & Hosting
Es gibt verschiedene Varianten um Home Assistant zu betrieben:
- Home Assistant OS
- Home Assistant Container
- Home Assistant Supervised
- Home Assistant Core
Am wartungsärmsten ist der Betrieb per Home Assistant OS mit Hardware direkt von Home Assistant. Wenn man jedoch bereits einen Server mit Docker verwendet, kann Home Assistant auch ganz leicht mittels einem Docker Container betrieben werden. Da Home Assistant viele Ports benötigt, macht es Sinn dem Container eine eigene IP-Adresse zuzuweisen.
Um Home Assistant per Docker zu hosten, kann folgendes docker-compose.yml
verwendet werden.
Wenn das Bluetooth Modul des Docker Hosts in Home Assistant verfügbar sein soll, kann man es durch das Ergänzen des folgenden Volume hinzufügen: /run/dbus:/run/dbus:ro
Um die Umgebung zu starten, muss der Befehl docker-compose up -d
ausgeführt werden.
Anschliessend kann Home Assistant im Browser unter http://<IP-DEINES-SERVERS>:8123
erreicht und das Onboarding abgeschlossen werden. Beim ersten Onboarding kann ein neues Zuhause angelegt oder eine bestehende Installation aus einem Backup wiederhergestellt werden. Wenn du ein neues Zuhause erstellst, musst du ebenfalls noch einen Benutzer anlegen und einige Einstellungen wie den Standort deiner Umgebung festlegen. Wenn das Onboarding abgeschlossen ist, hast du Zugriff auf Home Assistant und kannst damit beginnen, Geräte hinzuzufügen.
Die detaillierte Anleitung zur Installation von Home Assistant der anderen Varianten kann auf der Website von Home Assistant gefunden werden.
Update von Home Assistant installieren
Jeden Monat erscheint eine neue Version von Home Assistant. Diese Updates enthalten neben neuen Features & Verbesserungen auch neue Integrationen, welche direkt über das Webinterface konfiguriert werden können und Bugfixes. Deshalb lohnt es sich regelmässig die neusten Updates von Home Assistant zu installieren, um von allen Verbesserungen zu profitieren. Bei den Updates gibt es oft auch sogenannte "Backward-incompatible changes". Das sind Änderungen, welche Konzepte oder Integrationen anpassen, die nicht mit älteren Versionen von Home Assistant kompatibel sind und ggf. eine manuelle Anpassung erfordern. Vor dem Update sollte man daher in den Release Notes prüfen, ob man von diesen Änderungen betroffen ist und ggf. Anpassungen vornehmen.
Um das Update zu installieren, befolge die folgenden Schritte (Voraussetzung: Du betriebst Home Assistant als Docker-Container):
- Per SSH auf den Docker-Host verbinden und ins Verzeichnis mit dem
docker-compose.yml
navigieren. - Befehl
docker-compose pull
ausführen - Befehl
docker-compose down && docker-compose up -d
ausführen - Warten, bis Home Assistant wieder gestartet ist
- Fertig
Es empfiehlt sich vor dem Update ein Backup deiner Home Assistant Instanz durchzuführen. Bei einem Betrieb per Docker kannst du einfach eine Kopie des Datenverzeichnisses durchführen. Das geht in meinem Fall mit folgendem Befehl: cp -r data data.backup
Anpassungen an der Konfiguration
Im Ordner /config findet man dann die Konfigurationen von Home Assistant. Die wichtigste Datei hiervon ist die configuration.yaml
, welche verwendet werden kann um eigene Integrationen & Einstellungen zu konfigurieren, welche über das GUI nicht möglich sind.
Damit man Home Assistant hinter einem Reverse Proxy betreiben kann, muss folgendes in der configuration.yaml
ergänzt werden.
http:
use_x_forwarded_for: true
trusted_proxies:
- <IP-ADRESSE REVERSE PROXY SERVER>/32
Hierbei muss <IP-ADRESSE REVERSE PROXY SERVER>
durch die IP-Adresse des Reverse Proxies ersetzt werden.
Nach einer Anpassung der Datei configuration.yaml
muss die Konfiguration von Home Assistant neugeladen werden. Dazu in den Einstellungen von Home Assistant auf die drei Punkte oben rechts klicken und "Home Assistant neu starten" auswählen. Es öffnet sich ein Fenster, mit einem Klick auf "Schnelles neu laden" wird nur die YAML-Konfiguration neugeladen. Dies reicht für kleinere Änderungen an der Konfiguration aus. Bei manchen Änderungen ist es jedoch notwendig den Home Assistant Server neu zu starten. Dies gelingt mit der zweiten Option im selben Fenster.
Connect ZBT-1/Skyconnect Stick integrieren
Der Home Assistant Connect ZBT-1 (ehemals Skyconnect) ist ein Zigbee-fähiger-Stick, welcher man an seinem Home Assistant Server anschliessen kann. Er ermöglicht das Verbinden von jeglichen Zigbee-Geräten mit Home Assistant per ZHA (Zigbee Home Automationen) oder Z2M (Zigbee2MQTT). Man ist also unabhängig von jeglichen Anbietern von Bridges und Hubs und kann ein gesamtes, gemeshtes, Zigbee-Netzwerk aufbauen, da man nur noch diesen Stick und nicht mehr pro Hersteller eines Produktes eine eigene Bridge benötigt.
Neben dem Connect ZBT-1 gibt es auch noch von anderen Herstellern Zigbee-Sticks, welche dies ermöglichen. Ich empfehle jedoch den Connect ZBT-1 von Home Assistant, da dieser neben Zigbee auch Thread und dazu auch noch die Weiterentwicklung von Home Assistant unterstützt.
Folgendermassen kannst du den Stick in dein Home Assistant integrieren:
- Stoppe den Docker-Container (Befehl:
docker-compose down
) - Füge folgendes im
docker-compose.yml
hinzu
- Starte die Umgebung mit
docker-compose up -d
erneut - Warte bis Home Assistant vollständig gestartet ist
- Füge den Dienst “Zigbee Home Automation” hinzu und wähle dafür den Connect ZBT-1 Stick aus
- Beim Hinzufügen der ZHA-Integration (Zigbee Home Automation) musst du ein neues Zigbee-Netzwerk erstellen (es gibt auch die Möglichkeit ein Backup eines bestehendes Zigbee-Netzwerk als JSON-Datei zu importieren)
- Anschliessend können Geräte hinzugefügt werden, indem man auf “Integration hinzufügen” klickt. Damit das Gerät gefunden werden kann, muss es in den Kopplungsmodus versetzt werden. Dies geschieht je nach Gerät mit einer Reset Taste oder durch mehrmaliges Ein/Ausschalten.
- Wenn das Gerät erfolgreich hinzugefügt wurde, kann man es in Home Assistant verwenden und steuern.
IP-Adresse eines Geräts ändern
Wenn ein Gerät in Home Assistant mit einer IP-Adresse konfiguriert wurde, sollte diese IP-Adresse auf dem DHCP-Server reserviert werden, damit sich diese nicht ändert. Falls du nun in eine Situation geraten bist, bei der sich die IP-Adresse eines Gerätes aus irgendwelchen Gründen doch geändert hat, kannst du folgendes tun:
- Gerät aus Home Assistant entfernen & erneut hinzufügen
- IP-Adresse im internen Config-File von Home Assistant anpassen
Wenn du das Gerät aus Home Assistant entfernst und anschliessend wieder hinzufügst, kannst du dem Gerät dieselbe Entitäts-ID zuweisen wie bisher, damit die restlichen Automationen und Konfiguration weiterhin funktionieren.
Um die IP-Adresse im Config-File von Home Assistant anzupassen musst du folgendes machen (bewahre jedoch Vorsicht beim Bearbeiten der internen Konfiguration von Home Assistant):
Basics in Home Assistant
Home Assistant unterstützt von Haus aus einen Vielzahl an Geräten, welche hinzugefügt und gesteuert werden können. Unter "Geräte & Dienste" in den Einstellungen kannst du mit einem Klick auf "Integration hinzufügen" eine Integration auswählen und anschliessend deine Geräte hinzufügen. Viele Geräte werden von Home Assistant auch automatisch in deinem Netzwerk erkannt und zur Konfiguration vorgeschlagen.
Jedes Gerät welches du in Home Assistant hinzufügst, besteht aus mehreren sogenannten Entitäten. Eine Entität ist eine Konfiguration, ein Schalter oder ein Sensor eines Gerätes. Für jeden Sensor und jedem Funktion eines Gerätes gibt es eine Entität, welche nach Bedarf aufgerufen und verändert werden kann. Jede Entität kann einem Bereich zugeordnet werden und hat einen Zustand. Ausserdem ist jede Entität einmalig. Dadurch ist es möglich, dein ganzes Zuhause mithilfe dieser Entitäten in Home Assistant zu steuern. Wenn du ein Dashboard in Home Assistant baust, ist jedes Element auf deinem Dashboard mit einer oder mehreren Entitäten verknüpft, welche damit gesteuert werden können. Die Entitäten werden auch benötigt, wenn du Automationen erstellst. Dadurch dass Entitäten verwendet werden, musst du bei einem Austausch oder eine Neukonfiguration eines Gerätes, nicht dein ganzes Dashboard und alle Automationen anpassen, sondern nur dieselbe Entität für das Gerät festlegen wie bisher und alle Automationen, etc. laufen wie gewohnt weiter. Dies bietet eine grosse Flexibilität im Aufbau und der Steuerung deines Smart Homes.
Automationen ermöglichen es, deine Geräte anhand von Bedingungen zu steuern. Dabei können Automationen durch simple Dinge wie einen Klick auf einen Knopf oder einen Zeitplan oder auch durch komplexere Verknüpfungen und Aneinanderreihungen von verschiedenen Informationen ausgelöst werden. Als Aktion einer Automation kann dann jede erdenkliche Eigenschaft deines Smart Homes verändert werden. Damit ist es möglich die Helligkeit des Lichtes in deinen Räumen anhand des Tageslichts anzupassen oder automatisch die Heizung auszuschalten sobald ein Fenster geöffnet wird. Und es sind noch wesentlich komplexere Abfolgen von Aktionen anhand von definierten Bedingungen möglich. Bei der Automatisierung sind der Fantasie keine Grenzen gesetzt.
Eine vollständige Übersicht über die Konzepte in Home Assistant ist im "Getting Started"-Guide von Home Assistant zu finden.
Dashboards
In Home Assistant gibt es die Möglichkeit eigene Dashboards zu erstellen. Auf einem Dashboard kannst du Steuerelemente für deine Geräte anlegen oder Informationen aus deinen Sensoren visuell aufbereiten. Das Dashboard ist eine Art "Steuerzentrale" für dein Smart Home.
Zur Erstellung eines Dashboards empfehle ich die Mushrooms Erweiterung. Folgendes Video zeigt auf wie ein schönes Dashboard mit Mushroom erstellt werden kann.
Ebenfalls gibt es im Internet eine Menge Inspiration und Ideen für tolle Dashboards. Der Kreativität sind keine Grenzen gesetzt. Alles was nicht per GUI geht, kann man mit YAML noch manuell ergänzen.
Seit dem Update auf Home Assistant 2024.3
gibt es die neue "Sections-View". Das ist eine neue Art wie ein Dashboard aufgebaut werden kann. Es basiert auf einem Rastersystem, welches ermöglich flexiblere Dashboard-Layouts als bisher zu erstellen.
Ich denke die Zukunft von Dashboards geht in die Richtung von sich automatisch anpassenden Dashboards, je nachdem in welchem Raum man sich befindet. Dies lässt sich mit der neuen "Sections-View" und Bedingungen für die Sichtbarkeit umsetzen. Das folgende Video zeigt auf, wie das im Alltag angewendet werden könnte.
Templates & Helfer
Es gibt sogenannte Helfer in Home Assistant. Damit lassen sich eigene Entitäten erstellen, wenn diese beispielsweise bei einem Gerät fehlen oder für eine Automation ein virtueller Schalter benötigt wird. Es gibt eine Vielzahl verschiedener Helfer. Unter anderem folgende:
- Dropdown
- Eingabefelder (Text, Zahl, Datum/Uhrzeit, etc.)
- Gruppe
- Schalter
- Zufallswerte
- Template-Helfer
- Timer
- Zeitpläne
Die Helfer können in den Einstellungen unter "Geräte & Dienste" und dann im Tab "Helfer" verwaltet werden.
Eine wichtige Art von Helfer sind die Template-Helfer. Diese ermöglichen es eigene Bedingungen zu definieren, welche dann einen Wert ausgeben der von anderen Automationen weiterverarbeitet werden kann. Templates können auch ausserhalb von Helfern verwendet werden, beispielsweise um auf einen Dashboard den Zustand einer Entität zu beschreiben. Die Templates sind dabei mit der Jinja2-Templating-Engine aufgebaut. Folgendermassen könnte ein Jinja2-Template aussehen, welches auf einem Dashboard den Status einer Steckdosenleiste anzeigt:
Weitere Informationen wie Templates verwendet werden, findest du in folgendem Artikel von Home Assistant:
Blueprints
Mit Blueprints ist es möglich Automationen aus der Home Assistant Community auf einfache Art und Weise bei sich selbst zu verwenden. Dazu kann man einfach im Bereich “Blueprints” unter “Automatisierung & Szenen” einen Blueprint importieren. Dazu wird die URL zum entsprechenden YAML-File mit dem Blueprint benötigt.
Anschliessend kann mit einem Klick auf einen heruntergeladenen Blueprint eine Automation anhand dieses Blueprint erstellt werden. Dazu müssen dann die vom Blueprint bereitgestellten Felder ausgefüllt werden und schon kann dieser verwendet werden.
Fernzugriff auf Home Assistant
Es empfiehlt sich einen Fernzugriff auf Home Assistant einzurichten, damit man auch von unterwegs und auf dem Smartphone Zugriff auf Home Assistant hat. Es gibt vier Varianten wie der Fernzugriff konfiguriert werden kann.
- Home Assistant Cloud (kostenpflichtig, unterstützt die Entwickler von Home Assistant)
- Cloudflare Tunnel (kostenlos, benötigt Domain)
- VPN (kostenlos, benötigt öffentliche IP)
- Portweiterleitung (kostenlos, benötigt öffentliche IP)
In folgender Tabelle habe ich die verschiedenen Variaten miteinader verglichen:
Home Assistant Cloud | Cloudflare Tunnel | VPN | Portweiterleitung | |
---|---|---|---|---|
Aufwand | Wenig | Wenig | Hoch | Mittel |
Öffentliche IP-Adresse benötigt | Nein | Nein | Ja | Ja |
Domain benötigt | Nein | Ja | Nein* | Nein* |
Sicherheit | Sehr sicher | Sehr sicher | Sicher | Eher unsicher |
Durchgehender Zugriff | Ja | Ja | Nein | Ja |
Preis | 6.5$/Monat | Kostenlos + Domainkosten | Kostenlos | Kostenlos |
*DynDNS kann anstelle einer Domain verwendet werden. Empfehlung: ipv64.net
Ich würde die Variante mit dem Cloudflare Tunnel empfehlen, da diese, neben der Home Assistant Cloud, die sicherste Variante ist und keine öffentliche IP-Adresse benötigt. Wenn man einen Fernzugriff per VPN macht, muss man sich immer zuerst mit dem VPN verbinden, bevor man auf Home Assistant zugreifen kann. Dies kann für einige Automationen von Nachteil sein. Bei einer Portweiterleitung öffnet man den Port von Home Assistant auf dem Router. Dadurch entsteht eine potentielle Angriffsfläche, welche ausgenutzt werden könnte. Wer es einfach haben und sich nicht um allfällige Probleme kümmern möchte, sollte auf die Home Assistant Cloud zurückgreifen. Damit lässt sich der Remotezugriff leicht einrichten und man unterstützt nebenbei die Entwicklung von Home Assistant.
Folgendes Video zeigt die Konfiguration des Remotezugriffes mit einem Cloudflare Tunnel:
HACS installieren
HACS (Home Assistant Community Store) ist ein App Store für Home Assistant, womit es möglich ist weitere Tools, Integrationen und Frontend-Cards aus der Community zu installieren. Es empfiehlt sich diesen zu installieren, da es die Arbeit mit Erweiterungen erleichtert und automatische Updates unterstützt.
HACS kann folgendermassen installiert werden:
- Zuerst muss man sich auf den Docker Container verbinden. Dies gelingt mit folgendem Befehl:
docker exec -it homeassistant sh
- Installiere HACS mit dem Installationsskript:
wget -O - https://get.hacs.xyz | bash -
- Starte Home Assistant neu
- Lade die Seite von Home Assistant in deinem Browser neu
- Öffne die Einstellungen von Home Assistant und navigiere in den Bereich "Geräte & Dienste"
- Klicke unten rechts auf "Integration hinzufügen", suche in der Liste nach "HACS" und klicke darauf
- Akzeptiere die Bedingungen und Infos zur Nutzung von HACS
- Melde dich nun mit GitHub bei HACS an. Dies ist notwendig, damit HACS für dich Inhalte direkt von GitHub laden und installieren kann.
- Nun wurde HACS erfolgreich zu deinem Home Assistant hinzugefügt und du kannst mit dem Download von Erweiterungen aus der Community beginnen.
Weitere Infos zur Nutzung des Home Assistant Community Stores sind auf der Website von HACS zu finden.
Meine Empfehlungen
Folgende Erweiterungen verwende ich aus dem Home Assistant Community Store, um mein Dashboard zu gestalten. Mehr dazu wie ich mein Dashboard gestalte, habe ich im Abschnitt "Dasboards" beschrieben.
Hardware-Empfehlungen
Die folgenden Smart-Home Geräte & Sensoren verwende ich zusammen mit Home Assistant und kann ich empfehlen. Vor allem die Geräte von Ikea & Aqara bieten ein gutes Preis-Leistungsverhältnis an und nutzen Zigbee zur Kommunikation mit Home Assistant und zum Aufbau eines zuverlässigen Smart Home Netzes. Ich empfehle den Kauf von Smart Home Produkten auf Amazon, da diese dort oft deutlich preiswerter sind als bei Händler in der Schweiz. Beispiel: Tür & Fenstersensor von Aqara kostet auf digitec 33 CHF und auf Amazon nur 14€.
IKEA Tretakt
Es handelt sich um einen preiswerten Zigbee-fähigen Smart-Plug (Zwischenstecker) um bestehende Gerät mittels Smart-Home zu steuern.
Preis: 8 CHF
IKEA Tradfri Leuchtmittel
Ikea bietet preiswerte Zigbee Leuchtmittel in verschiedenen Fassungen und Varianten an. Es gibt sowohl Varianten, welche Farben anzeigen können als auch solche, welche nur das Weissspektrum abdecken. Wenn man viele Leuchtmittel braucht, lohnt sich hier ein Blick.
Preis: 9-20 CHF
Aqara Thermostat
Zigbee-fähiges Thermostat zur Regulierung eines Heizkörpers
Preis: 46€
Aqara Multisensor
Multisensor von Aqara, welcher Vibrationen, Bewegung und Fall erkennen kann.
Preis: 16€
Aqara FP2 Anwesenheitssensor
Ein Sensor mit mmWave-Technologie, erkennt wo im Raum sich Personen befinden und kann anhand dessen Automationen ausführen.
Preis: 60€
Aqara Curtain Driver (Kapitel unten lesen)
Achtung, es gibt für verschiedene Vorhänge verschiedenen Arten. Es wird entweder die Rail Variante oder die Rod-Variante (Stange) benötigt. Ich habe die Rod Variante bei mir im Einsatz. Die Infos unten sollten zuerst gelesen werden, da die manuelle Konfiguration per ZHA etwas mühsam ist.
Preis: ca. 80-110 CHF
Philips Hue Tap Dial Switch
Es wird ein Blueprint benötigt für die Verwendung mit ZHA, da die Klicks und Drehungen nur als zha_event geloggt werden.
Link zum Blueprint: https://gist.github.com/psbaltar/bb8f44e715051ae37852f39cf75e7a60
Preis: ca. 35€
Aqara Curtain Driver
Der Aqara Curtain Driver ist ein Motor um Vorhänge smart zu machen und diese automatisch zu öffnen bzw. zu schliessen. Er kann mit einem Aqara Hub oder auch ganz ohne mit ZHA konfiguriert werden. Wenn ZHA verwendet wird, muss die Distanz zum Öffnen/Schliessen manuell mit dem Knopf auf der Vorderseite konfiguriert werden. Da dies nicht ganz einfach ist, habe ich hier die Schritte zur Konfiguration der Fahrtdistanz zusammengefasst.
- Das Band mit den Klammern am Vorhang befestigen (zwischen Band und Vorhang kommt später der Curtain Driver, die Klammern sollten gleichmässig über den gesamten Vorhang verteilt werden)
- Curtain Driver zwischen den ersten beiden Klammern montieren (im geschlossenen Zustand)
- Den Curtain Driver mit Home Assistant koppeln (Knopf für ca. 5 Sekunden gedrückt halten, in Home Assistant den Kopplungsmodus von ZHA öffnen)
- Den Knopf auf der Vorderseite fünfmal kurz drücken. Der Vorgang wird durch einen Piepton bestätigt (es muss ein Piepton ertönen, ansonsten muss der Vorgang wiederholt werden, bis ein Piepton ertönt).
- Danach kann die Fahrt durch Drücken auf den Knopf gestartet werden, um den ersten Zustand (offen/geschlossen) festzulegen. Wenn die Position stimmt, den Knopf dreimal drücken. Der Vorgang wird mit einem Piepton bestätigt.
- Nun kann durch erneutes Drücken auf den Knopf die Fahrt für die zweite Position gestartet werden. Wenn die Position stimmt, den Knopf dreimal drücken. Der Vorgang wird ebenfalls mit einem Piepton bestätigt.
- Anschliessend kann die Konfiguration getestet werden, indem man in Home Assistant den Vorgang ganz öffnet und schliesst.
Wenn in Home Assistant der Zustand geöffnet & geschlossen verkehrt angezeigt wird, kann dies ganz leicht angepasst werden, indem der Schalter "Invert" in Home Assistant aktiviert wird. Wichtig ist einfach, dass die Fahrtdistanz korrekt konfiguriert wurde, damit der Motor nicht über den Vorhang hinausschiesst.
*Affiliate-Link