5. Home Assistant¶
5.1. Einführung¶
5.1.1. Was ist Home Assistant?¶
Home Assistant ist eine kostenlose und open-source 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.
5.1.2. Installations Methoden¶
Home Assistant unterstützt viele Platformen, darunter Windows, macOS und Linux. Es gibt vier verschiedene Installations Methoden:
5.1.3. Integrationen¶
Home Assistant unterstützt momentan über 1800 Integrationen, darunter befinden sich auch Amazon Alexa, Google Assistant, Phillips Hue und Plex Media Server. Durch diese hohe Anzahl an vorerstellten Integrationen ist es sehr einfach die meisten Geräte unter Home Assistant anzusteuern.
Eine Liste aller aktuell bestehender Integrationen ist hier zu finden.
5.1.4. Benutzeroberfläche¶
Lovelace ist das Home Assistant Dashboard. Es ist eine schnelle, anpassbare und leistungsstarke Möglichkeit für Benutzer ihr System mit dem Handy oder Dektop zu verwalten. Features von dem Dashboard sind unter anderem:
29 verschiedene Karten zum Platzieren und Konfigurieren
Dashboard-Editor: Ermöglicht die Verwaltung des Dashboards durch Bearbeiten von Karten mit Live-Vorschau
Anpassbar:
Karten verfügen über eine große Anzahl von Optionen mit denen die Konfiguriert werden können
Themen (auch auf Kartenbasis)
Namen und Symbole von Entitäten können überschrieben werden
Unterstützung von benutzerdefinierten Karten aus der Community
5.2. Automation¶
Der Begriff Automation bezeichnet die Delegation von Tätigkeiten an Maschinen, die in der Lage sind, diese selbsttätig auszuführen. Prinzipielles Ziel von Automatisierung ist es, einen Prozess ohne menschliche Handlungen ablaufen zu lassen.
5.2.1. Bedingungen¶
Bedingungen sind ein optionaler Teil einer Automatisierungsregel und können verwendet werden, um zu verhindern, dass eine Aktion ausgeführt wird, wenn sie ausgelöst wird. Ein Trigger betrachtet Ereignisse im System, während eine Bedingung nur das aktuelle Aussehen des Systems untersucht. Eine Bedingung kann nur sehen, ob ein Schalter gerade ein- oder ausgeschaltet ist.
5.2.2. Trigger¶
Löst die Verarbeitung einer Automatisierungsregel aus. Dieser wird ausgelöst, wenn ein Ereignis empfangen wird. Ereignisse können mit dem Ereignisnamen abgeglichen werden. Es ist auch möglich Ereignisse abzugleichen, wenn bestimmte Ereignisdaten oder ein bestimmter Kontext vorhanden sind. Ein Trigger kann beobachten, dass ein Schalter eingeschaltet wird.
5.2.3. Action¶
Die Aktion einer Automatisierungsregel wird ausgeführt, wenn ein Trigger ausgelöst wird. In diesem Bereich werden die Dienste und Ereignisse hinterlegt, die stattfinden sollen.
5.3. Praxisbeispiel¶
Als Beispiel wird Home Assistant als Docker installiert.
5.3.1. Installation¶
Zunächst wird eine docker-compose.yaml
, mit folgendem Inhalt erstellt.
version: '3'
services:
homeassistant:
container_name: homeassistant
image: homeassistant/home-assistant:stable
volumes:
- /PATH_TO_YOUR_CONFIG:/config
- /etc/localtime:/etc/localtime:ro
restart: unless-stopped
network_mode: host
Diese Datei beschreibt die Dienste aus welchen unsere Anwendung besteht. In diesem Fall das Home Assistant Image.
Diese wird mit folgenden Befehl gestartet
docker-compose up -d
5.3.2. Konfiguration¶
Im folgenden ist die Konfigurationsdatei ( configuration.yaml
) aufgezeigt.
Im Praxisbeispiel verwenden wir Dummydevices um die verschiedenen Möglichkeiten aufzuzeigen.
version: "3.9"
switch:
- platform: template
switches:
lampe:
friendly_name: "Lampe"
value_template: "{{ is_state_attr('switch.lampe_toggle', 'sensor_state', 'on') }}"
turn_on:
service: switch.toggle
target:
entity_id: switch.lampe_toggle
turn_off:
service: switch.toggle
target:
entity_id: switch.lampe_toggle
fan:
- platform: template
fans:
dummy_ventilator:
friendly_name: "Dummy-Ventilator"
value_template: "{{ states('input_boolean.state') }}"
percentage_template: "{{ states('input_number.percentage') }}"
preset_mode_template: "{{ states('input_select.preset_mode') }}"
oscillating_template: "{{ states('input_select.osc') }}"
direction_template: "{{ states('input_select.direction') }}"
turn_on:
service: script.fan_on
turn_off:
service: script.fan_off
set_percentage:
service: script.fans_set_speed
data:
percentage: "{{ percentage }}"
set_preset_mode:
service: script.fans_set_preset_mode
data:
preset_mode: "{{ preset_mode }}"
set_oscillating:
service: script.fan_oscillating
data:
oscillating: "{{ oscillating }}"
set_direction:
service: script.fan_direction
data:
direction: "{{ direction }}"
speed_count: 6
preset_modes:
- 'auto'
- 'smart'
- 'whoosh'
template:
- sensor:
- name: "Dummy - Temperature"
unit_of_measurement: "°C"
state: 20
Unter http://localhost:8123
sollte
nun die Home Assistant Welcome Page sichtbar sein:
5.3.3. Automatisierung erstellen¶
Die Automatisierung kann am einfachsten mit dem GUI erstellt werden.