Wir haben in fast jedem Raum einen Amazon Echo stehen, über den wir nicht nur Radio und Musik hören, sondern auch viele Dinge im Haus steuern können. Home Assistant und die kostenpflichtige, jedoch einfach Anbindung des Sprachassistenten über die Nabu Casa Cloud, machen es in kürzester Zeit möglich. Nabu Casa ist eine Firma, die aus den Home Assistant Machern entstanden ist. Für 5 Euro pro Monat erhält man darüber nicht nur eine einfache Möglichkeit, Sprachassistenten wie Alexa oder den Google Assistant anzubinden, sondern auch einen abgesicherten Fernzugang. Zusätzlich unterstützt man damit die Weiterentwicklung von Home Assistant, was eine hervorragende Sache ist.

Seit einiger Zeit gibt es jedoch Probleme mit der Anbindung der Sprachassistenten über Nabu Casa. Offenbar hat der große Erfolg von HA dafür gesorgt, dass der Dienst, der Home Assistant und die Assistenten ohne großen Konfigurationsaufwand mit den entsprechenden Anbietern verbindet, sehr langsam und unzuverlässig geworden ist. Möchte man einen Befehl ausführen, dauert es oft mehrere Sekunden. Zusätzlich quittiert Alexa den Befehl damit, dass das entsprechende Gerät nicht reagieren würde. Kurze Zeit darauf wird der Befehl trotzdem ausgeführt.
Das ist nicht nur nervig, sondern reduziert den WAF (Womens Acceptance Factor) deutlich. Da wir diese Dienste jedoch regelmäßig nutzen, weil wir auch beide im Homeoffice arbeiten, habe ich meine Alexa-Anbindung umgestellt.

Eine vollständige Anleitung dazu gibt es bei Home Assistant und auch dieses Video hilft dabei, die recht komplexe Konfiguration zu meistern.
Man benötigt dazu einen kostenlosen Amazon Developer-Account, um auf die AWS-Dienste zugreifen zu können. Außerdem muss Home Assistant per SSL über den Port 443 und einer festen Adresse erreichbar sein. Wir haben hier eine feste IP-Adresse für unseren DSL-Anschluss, die ich im DNS meines Domain-Providers über eine Subdomain auflöse. Auf meinem Server läuft vor Homeassistant ein Docker-Container mit einem NGINX-Proxy-Server, der die Verwaltung der Zertifikate und auch einiges an Absicherung übernimmt.
Home Assistant selbst bietet im Supervisor ähnliche Funktionen und auch DuckDNS kann hier genutzt werden, falls man eine dynamische IP-Adresse nach außen hat. Die Erreichbarkeit von außen samt gültigen SSL-Zertifikaten muss vor der weiteren Einrichtung funktionieren und getestet sein.

Ich habe für die komplette Einrichtung etwa 45 Minuten benötigt. Man erstellt in diesem Zusammenhang auch einen eigenen Alexa Skill, der die zukünftige Steuerung übernimmt. Das ist insgesamt sehr interessant, weil man damit auch ein bisschen Einblick in die Grundlagen der Skill-Entwicklung für Alexa bekommt.
Hat man alles getestet, fällt die bisherige Konfiguration der Geräte und Entitäten, die zu Alexa synchronisiert und dort erreichbar sein sollen weg und muss durch eine Erweiterung der HA configuration.yaml ersetzt werden. Damit kann man allerdings auch sehr viel granularer und gezielter einstellen, welche Dienste mit welchem Namen und Sprachbefehl mit Alexa genutzt werden können.

Ich habe diese Konfiguration in eine eigene Datei alexa.yaml ausgelagert und diese in meiner configuration.yaml eingebunden. Dabei habe ich zunächst alle Domains, also Lampen, Schalter, Sensoren etc. mit exclude_domains: von Alexa ausgeschlossen, um sie dann gezielt per include_entities einzubinden.
smart_home:
locale: de-DE
client_id: amzn1.application-oa2-client.40cd01
client_secret: 062e0ca88560015b9ee
filter:
exclude_domains:
- automation
- alert
- input_boolean
- media_player
- binary_sensor
- switch
- camera
- light
- automation
- script
- sensor
- device-tracker
- lock
- fan
- remote
- alarm_control_panel
- input_select
- input_number
- person
- sun
- climate
- weather
- zone
- persistent_notification
- air_quality
include_entities:
- group.schlafzimmerlicht
- group.wohnzimmerlicht
- group.kuechenlicht
- group.buerolicht
- group.studiolicht
- group.badlicht
- group.werkstattlicht
- group.aussenlicht
# Lampen Küche
- light.kuchenlicht
- light.kuche_insel
- light.kuche_haupt
- light.kuche_fenster
- light.kuche_theke
Code-Sprache: YAML (yaml)
Mit der entity_config lässt sich dann auch bestimmen, wie die Entität in Alexa angesprochen werden soll – ganz unabhängig vom Namen der Entität in Home Assistant:
entity_config:
light.burolicht:
name: Bürolicht
description: Büro Beleuchtung
display_categories: LIGHT
light.buro_markus:
name: Büro Markus
description: Büro Beleuchtung Markus
display_categories: LIGHT
light.wz_leselicht:
name: Leselicht
description: Leselicht Wohnzimmer
display_categories: LIGHT
light.wz_spots:
name: Deckenspots
description: Spots Wohnzimmerdecke
display_categories: LIGHT
light.kuche_theke:
name: Theke
description: Licht Küchentheke
display_categories: LIGHT
Code-Sprache: YAML (yaml)
Die display_categories sorgen dafür, dass die Entität einer Geräteklasse in Alexa (z. B. LIGHT, COVER, SWITCH, LOCK etc.) zugeordnet wird, was wiederum für die Übersicht gut ist. Dieser Teil der Konfiguration nimmt fast noch mehr Zeit in Anspruch, als die eigentliche Konfiguration – lohnt sich aber!
Da man für die manuelle Anbindung von Alexa ohnehin einen sicheren Zugang von außen auf HA benötigt, erübrigt sich damit auch der von Nabu Casa angebotene Dienst dafür.
Alles so schnell auf einmal!
Tatsächlich war ich überrascht, wie schnell die Befehle nun ausgeführt werden, ohne dass sie den Umweg über einen (derzeit überlasteten) Drittserver gehen müssen. Auch als bei mir noch Symcon im Einsatz war, lief die Kommunikation über den Service von Symcon ab. Ich hatte also noch nie den direkten Vergleich. Aber auch andere Dienste wie Philips Hue etc. waren langsamer als diese Lösung.
Die Befehle werden sofort ausgeführt, ohne dass man dabei eine merkliche Verzögerung beobachten könnte und werden brav mit „PALIM!“ quittiert. Seitdem gab es keine Meldungen mehr, dass ein Gerät nicht reagieren würde.
Flash Briefings für Alexa
So euphoriert, habe ich mich auch gleich noch an ein eigenes Flash Briefing für Alexa gemacht, das mir auf die Frage „Alexa, was gibt es Neues?“ eine Übersicht über wichtige Werte und Zustände liefert. So etwa welche Außentemperatur gerade herrscht, ob es regnet und wie der Ladestand unseres Tesla Model 3 (unser McFly) ist:
flash_briefings:
password: xxxxxxxx
wetter:
title: Wie ist das Wetter?
text: >
Momentan hat es außen {{ states("sensor.wih_temp_aussen") }} Grad
{% if is_state('binary_sensor.wih_regen', 'on') %}
und es regnet.
{% else %}
und es ist trocken.
{% endif %}
Die gefühlte Temperatur beträgt {{ states("sensor.weewx_gefuehlte_temperatur")}} Grad.
{% if is_state('binary_sensor.garage_geschlossen', 'on') %}
Das Garagentor ist geschlossen.
{% else %}
Das Garagentor ist offen.
{% endif %}
{% if is_state('binary_sensor.werkstattfenster', 'off') %}
Das Werkstattfenster ist geschlossen.
{% else %}
Das Werkstattfenster ist offen.
{% endif %}
{% if is_state('switch.studio_sd_rack', 'on') %}
Der Strom im Studio ist an.
{% if is_state('switch.nachbelichtet', 'on') %}
und der PC im Studio ist noch an.
{% endif %}
{% endif %}
{% if is_state('binary_sensor.haustur', 'off') %}
Die Haustüre ist geschlossen.
{% else %}
Die Haustüre ist offen.
{% endif %}
McFly hat {{states("sensor.mcfly_battery_sensor")}} Kilowatt geladen und seine Reichweite liegt bei {{states("sensor.mcfly_range_sensor")}} Kilometern.
Der Gasverbrauch lag heute bisher bei {{states("sensor.gasverbrauch_kwh")}} Kilowattstunden und es werden gerade {{states("sensor.strom_stats_w")}} Watt Strom verbraucht.
Code-Sprache: YAML (yaml)
Für diesen Bereich habe ich noch jede Menge Ideen und ich werde ihn noch so verfeinern, dass bestimmte Zustände nur angesagt werden, wenn eine Handlung erforderlich ist, z. B. „Bitte das Werkstattfenster schließen!“. Auch kommen hier alle Fenster- und Türsensoren dazu.
Fazit
Die direkte Anbindung von Alexa an Home Assistant ist eine nicht ganz triviale Sache und erfordert einiges an Zeit und Muse. Belohnt wird man aber mit einem sehr schnellen System. Die Home Assistant Entwickler bei Nabu Casa sind laut Reddit bereits an einer Lösung für das Problem mit ihrer Cloud dran. Diese wird aber wohl erst Ende Februar 22 fertig. Ich werde jedoch auf jeden Fall bei meiner individuellen Anbindung bleiben. Das hat zwei Gründe:
- Sie ist schneller, weil ein weiterer Server dazwischen wegfällt
- und sie ist zuverlässiger, weil ein weiterer Server dazwischen wegfällt.
Es gab bei Nabu Casa auch schon ein paar Ausfälle, die dann eben alle Homeassistant-Anwender betreffen, die auf diese Lösung setzen. Die 5 Euro pro Monat bekommen sie weiterhin, weil ich damit die Weiterentwicklung von Home Assistant unterstützen möchte.
Schreibe einen Kommentar