5. Home Assistant

_images/home-assistant-logo.png

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:

_images/home-assistant-installations.png

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

_images/home-assistant-dashboard.png

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:

_images/home-assistant-praxisbeispiel.png

5.3.3. Automatisierung erstellen

Die Automatisierung kann am einfachsten mit dem GUI erstellt werden.

_images/home-assistant-settings.png