# Home Assistant

Home Assistant ist eine kostenlose und quelloffene Software zur Hausautomation, die als zentrales Steuerungssystem in einem Smart Home oder Smart House konzipiert ist. Geschrieben in Python liegt ihr Hauptaugenmerk auf lokaler Steuerung und Privatsphäre.
Home Assistant verfügt über ein breites Spektrum an Geräteunterstützung und bietet über 2200 modulare Plug-ins mit Systemintegrationen zu verschiedenen IoT-Technologien, -Systemen und -Diensten, die als Integrationskomponenten verfügbar sind. Aktionen, wie die lokale oder ferngesteuerte Steuerung von Beleuchtung, Klimatisierung, Unterhaltungssystemen und Geräten, können durch Automatisierungen, Skripte, Sprachbefehle und mobile Apps ausgelöst oder über die webbasierte Benutzerschnittstelle (Front-End) des Home Assistant gesteuert werden.
Das Home Assistant-Projekt begann im September 2013. Im November 2013 wurde die Kernfunktionalität erstmals auf GitHub veröffentlicht. Im Mai 2020 gab es mehr als 1.930 Entwickler, die zum Kern des Projekts beigetragen haben. Das Projekt verfügt über kostenlose und Open-Source-Begleitanwendungen für Android und iOS (iPhone und iPad).
Beim GitHub „State of the Octoverse“ im Jahr 2019 wurde Home Assistant, basierend auf der Anzahl der aktiven Mitwirkenden in diesem Jahr, als zehntgrößtes Open-Source-Projekt auf GitHub gelistet. Das Projekt hatte im Jahr 2019 Beiträge von mehr als 63.000 Mitwirkenden.

## Entstehung und Besonderheiten

Home Assistant wurde 2013 von Paulus Schoutsen ins Leben gerufen. Im Jahr 2017 kam mit Add-ons von Franck Nijhof ein nicht unwesentlicher Bestandteil des heutigen Ökosystems hinzu. In 2018 wurde das System um Home Assistant OS (Operating System) von Pascal Vizeli ergänzt, um den Einstieg in ein Smart Home mit Home Assistant möglichst einfach zu gestalten.
Ebenfalls in 2018 wurde dann die Nabu Casa, Inc. von Paulis Schoutsen und Pascal Vizeli gegründet, die Anfang 2024 über 30 Software-Entwickler beschäftigt, welche zur Weiterentwicklung von Home Assistant wesentlich beitragen.
Im April 2024 wurde Home Assistant offiziell in die neu gegründete Open Home Foundation überführt. Die Gründer von Home Assistant haben sich hierzu entschieden, um Partnerschaften mit anderen Systemen oder Geräteherstellern leichter umsetzen zu können. Das Ziel eines offenen und datenschutzfreundlichen Smart Homes wurde somit noch weiter in den Fokus gerückt.
Home Assistant ist entstanden, um eine Reihe von Problemen zu lösen, die sich bei der Hausautomatisierung ergeben können. Der folgende Abschnitt erklärt die Wichtigsten und zeigt auf, inwiefern diese durch Home Assistant gelöst werden. Viele davon sind für Laien beim Kauf schwer oder gar nicht zu erkennen und werden erst bemerkt, wenn man bei der Nutzung an Grenzen stößt oder sich im Vorfeld umfangreicher informiert.

### Vereinheitlichung und Integration geschlossener Plattformen

Es existieren verschiedene Ökosysteme zur Heimautomatisierung. Standards hierfür wie beispielsweise Z-Wave oder ZigBee wurden zwar schon kurz nach der Jahrtausendwende entwickelt und damit mehrere Jahre vor Beginn der zunehmenden Verbreitung „smarter“ Geräte in den Privathaushalten. Trotzdem setzen einige Produkte auf eigene (meist proprietäre) Lösungen, um etwa Funktionen anzubieten, die im Standard fehlen. Zudem ist eine geschlossene Plattform aus ökonomischer Sicht für den Hersteller von Vorteil: Möchte der Kunde weitere Geräte (z. B. Sensoren oder Schalter) mit den bereits vorhandenen kombinieren, ist dies in einem geschlossenen System nur mit Produkten des gleichen Herstellers bzw. teils sogar der gleichen Serie offiziell möglich. Dies schränkt die Auswahl ein. Möglicherweise lassen sich bestimmte Szenarien gar nicht abdecken, da der Hersteller ein gewünschtes Produkt nicht anbietet.
Gerade bei umfangreicheren Installationen muss oder möchte man daher auf mehrere Hersteller setzen. Hier kann es komplex bis unmöglich werden, die verschiedenen Produkte miteinander zu kombinieren. Auch wenn dies nicht erforderlich ist, hat der Nutzer die Funktionen meist über mehrere Apps/Oberflächen verstreut. Home Assistant bietet eine einzige Oberfläche für tausende von Geräten verschiedenster Hersteller an. Neben der zentralen Verwaltung können Geräte verschiedener Hersteller miteinander interagieren, obwohl diese solch eine Interaktion nicht vorsehen. Beispielsweise könnte ein Fenstersensor von Hersteller A beim Öffnen des Fensters ein Signal an den Heizkörperthermostat von Hersteller B senden, der B dazu veranlasst, die Heizung abzustellen. Unterstützt werden zudem alle gängigen offenen Standards. Home Assistant ist somit nicht nur für bestehende proprietäre Systeme interessant. Man kann es auch als Plattform zum Aufbau einer offenen Plattform nutzen, wenn man entsprechende Komponenten kauft, die mit Standards wie z. B. Z-Wave kompatibel sind.

### Datenschutz, Sicherheit und Kontrolle

Zur Verwaltung solcher Systeme werden meist eben so geschlossene Apps angeboten. Sie sammeln nicht selten viele Daten und übermitteln diese teils an den Hersteller, teils auch an Dritte. Dies kann zudem ein Sicherheitsrisiko darstellen und wird daher von Experten kritisch bewertet. Experten weisen darauf hin, dass solche Datensammlungen auch gegen den Besitzer verwendet werden können. Die Erfassung intimster Details ist möglich. Oft bieten solche Plattformen zudem Cloudfunktionen an oder setzen diese sogar voraus. Der Nutzer muss dafür in der Regel ein Konto erstellen, je nach Anbieter werden dafür mehr oder weniger persönliche Daten abgefragt. Aus Nutzersicht wirkt eine Herstellercloud auf den ersten Blick zunächst praktisch. Sie ermöglicht es, die Geräte zentral und von überall zu steuern. Technische Expertise ist dafür oft nur wenig erforderlich. Neben den Nachteilen für die Privatsphäre und teils auch Sicherheit des Nutzers ist dieser zudem vom Hersteller abhängig: Ändern sich die Konditionen der Cloud (z. B. weniger Funktionen, höhere Kosten) oder stellt der Anbieter sein Angebot gar komplett ein, sind die Geräte nur noch eingeschränkt oder überhaupt nicht nutzbar. Dies betrifft nicht nur kleine Unternehmen: Google kündigte beispielsweise an, die Dienste in der Google Cloud für IoT-Geräte ab August 2023 einzustellen. Eine Alternative wird nicht angeboten.
Home Assistant wird vom Nutzer komplett selbst betrieben (On-Prem). Der Nutzer entscheidet, ob er seine Installation über das Internet überhaupt verfügbar machen möchte – oder sie nur lokal benötigt, wodurch die Sicherheit erhöht wird. Im Gegensatz zu einer öffentlichen Cloud hat man zudem verschiedene Möglichkeiten, um den Zugriff abzusichern, falls man sich für einen Zugriff übers Internet entscheidet. Etwa, in dem ein VPN genutzt wird und die Anwendung somit nicht direkt von außen erreichbar ist. Für die Nutzung werden keine Abo-Gebühren fällig und man ist nicht auf externe Dienste angewiesen, die möglicherweise zukünftig Geld kosten oder abgeschaltet werden. Der Nutzer hat die volle Kontrolle über das System und entscheidet auch selbst, ob und wann z. B. Updates eingespielt werden.

### Automatisierung

Sogenannte „Blueprints“ ermöglichen vorgefertigte Automatisierungen, die einen einfachen Einstieg ermöglichen sollen. Grundsätzlich besteht eine Automatisierung immer aus drei Komponenten:
* Der Trigger löst ein Ereignis aus. Beispielsweise erkennt ein Bewegungsmelder, dass eine Person den Raum betreten hat.
* Durch das Auslösen wird eine Bedingung geprüft. Etwa könnte geprüft werden, ob die Sonne bereits untergegangen ist, um festzustellen, ob es dunkel ist. Bedingungen sind optional. Ist keine Bedingung vorhanden, wird die Aktion immer ausgeführt.
* Trifft die Bedingung zu, löst Home Assistant eine zuvor festgelegte Aktion aus. Im obigen Beispiel könnte eine sinnvolle Aktion darin bestehen, eine bestimmte Lampe einzuschalten.
In diesem Szenario würde die Beleuchtung des Zimmers nur dann eingeschaltet werden, wenn eine Person den Raum betritt und es dunkel ist. Durch Automatisierung kann ein Mehrwert geschaffen werden, der den Alltag erleichtert. Bestimmte Dinge sind zwar auch mit klassischer Elektronik möglich – beispielsweise ein Bewegungsmelder, der direkt an eine Lampe angeschlossen ist. Die Möglichkeiten sind jedoch beschränkt und statisch. Möchte man Änderungen vornehmen (z. B. eine weitere Lampe an den Bewegungsmelder anschließen), müssen Kabel gezogen werden und ggf. ist ein Tausch von Komponenten erforderlich. Bei Home Assistant erfolgt alles dynamisch. Man kann Abläufe zentral verändern. Ein Funkschalter kann etwa so programmiert werden, dass er eine manuelle Schaltung einer Lampe ermöglicht, die bisher nur per Bewegungsmelder geschaltet wurde. Durch die Nutzung von Funkverbindungen ist keine Verkabelung notwendig, die ggf. umfangreich und teuer wäre.

### Erweiterungen und Anpassungen

Über Add-Ons kann die Funktionalität von Home Assistant erweitert werden. Sie lassen sich per Mausklick über die zentrale Verwaltungsoberfläche installieren. Da es sich um quelloffene Software handelt, kann jeder grundsätzlich eigene Erweiterungen schreiben bzw. Home Assistant selbst ebenfalls erweitern oder Fehler korrigieren.

## Home Assistant Cloud

Unter dem Namen Home Assistant Cloud wird von Nabu Casa, Inc. ein kostenpflichtiger Service angeboten, mit welchem Nutzer sehr einfach das eigene, lokale Smart Home von unterwegs erreichen können.
Mit entsprechendem Wissen ist es auch ohne diesen kostenpflichtigen Dienst möglich, die eigene Home Assistant Instanz von unterwegs zu steuern. Aus diesem Grund wird der kostenpflichtige Dienst von einigen Anwendern kritisiert.
Nabu Casa, Inc. finanziert durch die generierten Einnahmen aber auch die professionelle Weiterentwicklung von Home Assistant, was in den letzten Jahren nicht unwesentlich zur Steigerung der Code-Qualität und -Stabilität beigetragen haben dürfte. Hierfür werden von Nabu Casa, Inc. Entwickler beschäftigt.
Entsprechend gibt es auch nicht wenige wohlwollende Stimmen und Befürworter des kostenpflichtigen Dienstes.

## Architektur von Home Assistant

Die Architektur von Home Assistant besteht aus drei Komponenten:
* Home Assistant Core stellt die eigentliche Kernfunktionalität von Home Assistant bereit, nämlich die Interaktion mit dem Benutzer, dem Supervisor und Internet of Things-Geräten und -Diensten.
* Der Home Assistant Supervisor dient der Verwaltung des Betriebssystems.
* Das Betriebssystem Home Assistant OS beinhaltet eine minimale Linux-Umgebung, um auf dieser den Supervisor und Core auszuführen.

## Installationsmöglichkeiten

Als Konsequenz kann Home Assistant unterschiedlich installiert werden: Die Installation des Operating Systems ist die am wenigsten komplexe Variante und ideal für den Raspberry Pi geeignet. Home Assistant Container kann auf jeder OCI kompatiblen Umgebung, wie beispielsweise Docker installiert werden und besteht im Wesentlichen aus Core. Home Assistant Core selbst kann in einer virtuellen Python-Umgebung installiert werden. Mit Home Assistant Supervised kann auf Debian eine Installation erfolgen, wobei hierbei Debian selbst auch noch für andere Zwecke als Home Assistant genutzt werden kann.
Home Assistant kann auf verschiedenen Geräten installiert werden. Dazu zählen Home Assistant Yellow, Raspberry Pi, Odroid, x64-Geräte, ASUS Tinker Board. Weiterhin kann Home Assistant in einer Virtual Machine installiert werden.

## Ähnliche Systeme

* FHEM
* ioBroker
* openHAB