Zurück zur Startseite und zum Inhaltsverzeichnis
Voriges Kapitel: #02.02 Basisinstallation von HA
Nächstes Kapitel: #02.04 Grundkonfiguration von HA
Version: 2024-03-11
Wenn wir uns auf die Funktionen von HA beschränken, welche wir für unsere Heimkinosteuerung benötigen, würde ich das System grob vereinfacht wie folgt darstellen:
Integrationen
Auf der einen Seite (hier links) bindet sich HA mittels Integrationen an Devices an.
- Integrationen sind gerätespezifische Schnittstellen und Adpater (Software)
- Integrationen konvertieren die gerätespezifische Protokolle auf das einheitliche interne HA Interface (Entities und Services)
- HA stellt bereits eine Vielzahl von Integrationen bereit
- HA bietet eine Einwicklungsumgebung an. Damit kann man "recht einfach" Integrationen für beliebige Geräte programmieren. Somit wächst der Pool an verfügbaren Integrationen täglich an (https://www.home-assistant.io/integrations)
- Das Einbinden und Konfigurieren der Integrationen in HA wird imho leider nicht sehr einheitlich umgesetzt.
Dashboards (Lovelace)
Auf der anderen Seite (hier rechts) werden Dashboards erstellt, welche von Anwender über HA-Clients zur Anzeige von Geräte-Informationen und zur Aktivierung von Geräte-Steuerbefehlen genutzt werden.
- Für das Erstellen der Dashboards stellt HA ein recht einfaches aber mächtiges GUI zur Verfügung.
- Mit dieser GUI wird der eigentliche Konfigurationssyntax (YAML) bearbeitet.
- Wir werden hier YAML vielfach benötigen und einsetzen!
Entities
Sämtliche Informationen welche über Integrationen von Devices einlagen werden in der Entities-Tabelle gespeichert.
Die Entity-Tabelle hat drei Spalten:
- Die Bezeichnung der Entity
- Status der Entity
- Attibute der Entity
Was konkret in einer Entity gespeichert wird, ist sehr von der jeweiligen Integration abhängig.
Einerseits kann eine Entity einem ganzen Gerät entsprechen.
- ZB. dem AVR, mit dem Bestriebszustand als Status und die Konfigruationsparameter werden in der Attribut-Spalte gespeichert.
Andererseits kann mit einer Entity auch nur einen Wert gespeichert sein.
- ZB. einem Temperatur-Sensor, mit der Temperatur als Status und Detail-Infos (Letztes Update, etx.) in der Attribut-Spalte.
Services
Um Geräte steuern zu können registiert eine Integration <Services> in HA, welche man nutzen kann um Befehl an das dahinterliegende Gerät zu senden.
Die Implementierung der Services ist wieder je Integration sehr unterschiedlich!
Beispiele für Services sind zB.
- Gerät einschalten
- Quelle auf HDMI1 ändern
- Eine Einstellung auf einen Wert ändern
- Einen Wert abfragen
- u.v.m
Automations
HA bietet mit Automations die Möglichkeit auf Basis Ereignissen (=Trigger) Aktionen auszulösen.
- Trigger sind zB. Status-Änderungen (AVR wurde eingeschalten)
- Aktionen sind YAML-Scripts die Services aufrufen können
Diese Automations können übergreifend über sämtliche installierte Integrationen genutzt werden.
Push/Pull
Daten von Geräten können über zwei Methoden an HA übertragen werden:
- Push
Ein Gerät überträgt automatisch jede Statusänderung an HA ohne das HA aktiv danach fragt.
ZB. Ändert man die Lautstärke am AVR, sendet der AVR selbständig eine Meldung an HA mit der neuen Lautstärke-Information und HA kann diese Info sofort anzeigen oder weiterverarbeiten.
- Pull
Ein Gerät überträgt nur Daten an HA wenn HA aktiv danach fragt.
Hierfür gibt es einen Sheduler-Prozess in HA, der alle 30s alle im Sheduler registrierte Integeration triggert (update), um ausgewählte Daten-Abfragen durchzuführen,
oder man nutzt ein Service der Integration um Daten manuell abzufragen.
In der Regel werden in Integrationen beide Methoden genutzt.