JohnWilliamDoe/Spielwiese2

Logo von Home Assistant
Home Assistant Frontend
Benutzeroberfläche von Home Assistant
Basisdaten

Hauptentwickler Paulus Schoutsen
Erscheinungsjahr 2013[1]
Aktuelle Version 0.77.1
(29. August 2018)
Aktuelle Vorabversion 0.77.0b4
(28. August 2018)
Betriebssystem Linux, Windows, macOS
Programmiersprache Python
Kategorie Smart Home
Lizenz Apache 2.0
deutschsprachig ja
home-assistant.io

Home Assistant ist eine in Python entwickelte Softwarelösung, die Komponenten zur Gebäudeautomatisierung von verschiedenen Anbietern hersteller- und protokollneutral in einer Plattform miteinander verbindet.

Unterstützte Technologien Bearbeiten

Es werden über 1100 verschiedene Technologien unterstützt, die eine Einbindung von Peripherie und Online-Services ermöglichen. Es stehen unter anderem folgende Komponenten zur Verfügung: Arduino, Bluetooth, DD-WRT, Enocean, FRITZ!Box, Homematic, IFTTT, IKEA Trådfri, KNX, Kodi, RFXtrx, RFLink, MQTT, MySensors, Nest, Philips Hue, Plex, Slack, Sonos, Spotify, Steam, Twitter, YeeLight, ZigBee, Z-Wave

Neben den klassischen Bereichen der Heimautomatisierung, dem Bedienen von Aktoren oder Schaltern und dem Empfangen von Daten durch Sensoren, stehen auch Komponenten bereit, die eine Einbindung von Online-Services in die Automatisierung bieten.

So stehen in der Kategorie "transport" Komponenten für eine Einbindung der Deutschen Bahn, des Rhein-Main-Verkehrsverbundes oder auch Uber bereit.[2] Die durch diese Erweiterungen übermittelten Daten lassen sich dann beispielsweise für die Erstellung von Routinen nutzen. So könnte eine Glühbirne ihre Farbe wechseln sobald eine definierte Bahn eine Verspätung im Fahrtverlauf aufweist.

Auch eine Kombination aus verschiedenen Komponenten zur Erstellung von gegenseitigen Abhängigkeiten ist möglich. Zeige Fahrtweg mit Bahn und Verspätung wenn kein regen sonst zeige fahrtzeit mit auto (durch google maps bereit gestellt).

Sprachsteuerung Bearbeiten

Home Assistant stellt sogenannte Skills zur Verfügung, welche eine Nutzung der Sprachsteuerungs-Assistenten Alexa und Google Assistant möglich machen. Hierzu ist die Erstellung eines Benutzerkontos nötig, welches in der lokalen Instanz der Software eingepflegt wird. Diese verbindet sich dann mit einem Server/Online Dienst der Ersteller, über welche die Anfragen abgewickelt werden.[3]

Diese, unter dem Namen Home Assistant Cloud, bereitgestellte Lösung bietet den Vorteil, die lokale Installation nicht durch Methoden wie Portweiterleitung aus dem Internet heraus zugänglich machen zu müssen. Es wird eine Verbindung mit einem von Home Assistant bereitgestellten Server hergestellt, welcher ankommende und abgehende Befehle als Mittelsmann weiterverteilt.[4]

Weiterhin hat der Nutzer die Möglichkeit die genannten Assistenten auch ohne fremde Dienste zu nutzen. Hierzu ist es allerdings nötig seine lokale Home Assistant Installation aus dem Internet heraus erreichbar zu machen (Port-Forwarding).

Architektur Bearbeiten

 
Home Assistant Kernarchitektur

The Home Assistant core is responsible for Home Control. Home Assistant contains four parts which make this possible:

Event Bus Bearbeiten

Event Bus: facilitates the firing and listening of events -- the beating heart of Home Assistant.

State Machine Bearbeiten

State Machine: keeps track of the states of things and fires a state_changed event when a state has been changed.

Service Registry Bearbeiten

Service Registry: listens on the event bus for call_service events and allows other code to register services.

Timer Bearbeiten

Timer: sends a time_changed event every 1 second on the event bus. https://developers.home-assistant.io/img/en/architecture/ha_architecture.svg

Komponenten Bearbeiten

Konfiguration Bearbeiten

 
Beispielhafte configuration.yaml

Ein Großteil der Konfiguration von Home Assistant findet nicht direkt über das im Webbrowser erreichbare User Interface statt, sondern wird mithilfe der Sprache YAML in Konfigurationsdateien vorgenommen. Basis hierbei bildet die Datei configuration.yaml, welche als erste Konfigurationsdatei beim Start von Home Assistant gelesen wird. In dieser werden zu Beginn grundlegende Einstellungen zur installierten Home Assistant Instanz vorgenommen, unter anderem der Name, Koordinaten zur Bestimmung von Sonnenauf- und Untergang, die Nutzung welches Einheitensystems (Metrisch, Angloamerikanisch) und die Zeitzone.

Da theoretisch auch alle verwendeten Geräte bzw. deren Komponenten innerhalb der configuration.yaml gepflegt werden müssten, kann diese schnell sehr unübersichtlich werden. Aus diesem Grund können auch fremde Konfigurationsdateien im YAML Format eingelesen werden. Beim parsen der configuration.yaml werden dann etwaige Abhängigkeiten automatisch erkannt und entsprechend zugehörige Dateien eingebunden. Somit lassen sich auch komplexere Konfigurationen, wie eine Aufteilung des Interfaces erst in Zimmer und dann noch in Komponentengruppen in verschiedenen Ordnern speichern und zur Laufzeit durch den Parser einbinden.

hass.io Bearbeiten

Unter dem Namen hass.io wird von den Entwicklern ein Betriebssystem bereitgestellt, welches alleine auf den Betrieb von Home Assistant ausgelegt ist. Im Gegensatz zur klassischen Einrichtung auf einem bereits laufendem, konventionellem, Betriebssystem, bietet diese Art der Installation keinen Zugriff auf grundlegende Systemschnittstellen. Basis dieses Betriebssystem ist bisher ResinOS. https://www.home-assistant.io/blog/2018/04/22/hassio-2018/

Überschrift für Android, Web und iOS Bearbeiten

- iOS Screenshot - Nach der erfolgten Installation stellt Home Assistant Generell Interface

Die Weboberfläche bietet für eine Vielzahl von Schaltern und Komponenten eine Möglichkeit der Steuerung. Messwerte von einem Temperatur-, Luftfeuchtigkeits- oder auch CO2-Messgerät können mithilfe von Kurvendiagrammen dargestellt werden. Glühbirnen mit Farbwechselfunktion erhalten einen Farbwähler zur Auswahl der gewünschten Farbe. In Verbindung mit einer Datenbank, die Home Assistant nach der Aktivierung der recorder-Komponente erstellt und verwaltet, lassen sich weiterhin historische Zustände nachvollziehenl, also einen Überblick über verschiedene Schaltzerzustände oder Messwerte die länger als 24 Stunden in der Vergangenheit liegen.[5]

Lovelace Bearbeiten

https://www.home-assistant.io/lovelace/

Versionzyklus Bearbeiten

 

Neue Versionen der Software werden nicht direkt im stabilen Release-Kanal veröffentlicht

Instead of releasing a new version today, we’ve released a beta version of the new version: 0.66.0.beta0. After a week of being in beta, the version will be promoted to be the new stable release. While the beta is live, we will accept contributions on the dev branch for the next version as usual.


The goal is to create a more stable first release without the need for a quick follow up hot fix. So if you want to be able to access the new features faster but don’t mind the risk of running into the occasional bug, get yourself on the beta channel today:

Hass.io users will be able to enable the dev channel in the system settings. For Docker users, the beta’s will be published under the rc tag. Beta’s are also published to PyPi. Because it is a beta release, it will not be installed by Pip unless explictely specified in the install command: pip3 install --pre --upgrade homeassistant. The documentation for the beta version can be found at https://rc.home-assistant.io/.

If you find issues with either the code or the docs of the pre-release, please open an issue in the appropriate place or, even better, submit a pull request to fix it.

Home Assistant Cloud Bearbeiten

https://www.nabucasa.com/ https://www.home-assistant.io/blog/2018/09/17/thinking-big/

Siehe auch Bearbeiten

Weblinks Bearbeiten

[6]

[7]

[8]

[9]

[10]

[11]

Einzelnachweise Bearbeiten

  1. Paulus Schoutsen: Initial Commit. In: GitHub. 7. September 2013, abgerufen am 21. August 2018.
  2. https://www.home-assistant.io/components/#transport
  3. Home Assistant Cloud. Abgerufen am 25. Juli 2018.
  4. Paulus Schoutsen: Introducing Home Assistant Cloud. 17. Dezember 2017, abgerufen am 25. Juli 2018.
  5. Jan Mahn: Hausautomations-Schaltszentrale Home Assistant auf Python-Basis. In: c’t. 8. Dezember 2017, abgerufen am 23. August 2018.
  6. Franziska Pfeiffer: Mit Home Assistant das Smart Home einfach selber basteln. In: Home & Smart. 2. April 2018, abgerufen am 23. August 2018.
  7. Matthew Treinish: Building a better thermostat with Home Assistant. In: opensource.com. 10. August 2018, abgerufen am 23. August 2018 (englisch).
  8. Dylan Murphy: Controlling smart lights with Home Assistant. (PDF;50MB) In: HackSpace. Raspberry Pi Foundation, 1. Mai 2018, S. 92-95, abgerufen am 23. August 2018 (englisch).
  9. Andrew Williams: Home Assistant lets you automate your smart home without giving up privacy. In: the ambient. 10. Mai 2018, abgerufen am 23. August 2018 (englisch).
  10. Andy Greenberg: Now you can hide your Smart Home on the Darknet. In: Wired. 20. Juli 2016, abgerufen am 23. August 2018.
  11. Gunnar Beutner: Controle home automation hardware with Home Assistant. In: Linux Magazine. 1. Oktober 2017, abgerufen am 23. August 2018 (englisch).