Klare Namen und Befehle für die Sprachsteuerung

Home Assistant: Entitäten sauber in Amazon Alexa integrieren

Eine der wohl besten Funktionen eines Smarthome Hubs, ist die Sprachsteuerung per Amazon Alexa oder Google Assistant. Damit das auch wie gewünscht und mit eigenen Namen für die unterschiedlichen Lampen, Jalousien etc. funktioniert, sollten diese in Home Assistant klar definiert werden. So funktioniert es.

Amazon Alexa und Home Assistant richtig einrichten

Ich wiederhole mich zwar an dieser Stelle wieder, aber ein Smarthome hat den Namen nur verdient, wenn es wirklich smart arbeitet und das bedeutet, es muss Dinge nach der jeweiligen Situation und Bedarf automatisch und ohne Nutzereingriff einstellen. Manchmal ist es jedoch auch notwendig, Lampen, Jalousien, Schalter usw. manuell steuern zu können. Dazu will man natürlich nicht jedes Mal auf eine Taste drücken oder die Home Assistant App bemühen müssen, sondern sie bequem per Sprachbefehl steuern.

Amazon Echo Dot 4

Über den Dienst von Nabu Casa, lassen sich Amazon Alexa und Google Assistant mit wenigen Klicks an Home Assistant anbinden, zudem unterstützt man durch das kostenpflichtige Angebot die Weiterentwicklung von Home Assistant.

Allerdings werden die Namen der Entitäten dabei so übernommen, wie sie auch in Home Assistant angelegt wurden und bei Namen wie „WZ Decke“ für die Lampen der Wohnzimmerdecke, ist das weder einfach zu merken, noch besonders sicher in der Nutzung. Gerade Alexa versteht da gerne mal etwas falsch. Zudem möchte man nicht alle Entitäten als Geräte in Alexa zur Verfügung haben, sondern diejenigen, die man auch nutzen möchte. Ohne diese Einschränkung würde Home Assistant bei uns über 900 Entitäten in Alexa verfügbar machen.

Entitäten und Alexa Geräte aufräumen und löschen

In der Standardeinstellung überträgt Home Assistant alle möglichen Entitäten zu Alexa, die es findet. Bei den meisten Anwendern dürfte das bereits der Fall gewesen sein, sodass man erst einmal aufräumen sollte. Ich beschränke mich hier auf die Nutzung von Amazon Alexa, der Ablauf ist bei Google Assistant jedoch grundsätzlich vergleichbar.

Zunächst geht man dazu in Home Assistant unter Einstellungen -> Home Assistant Cloud auf die Einstellungen der Sprach-Assistenten. Unter Entitäten verwalten erhält man eine Liste aller Entitäten, die an Alexa zur Sprachsteuerung übertragen wurden und das können jede Menge sein. Hier kann man alle Entitäten deaktivieren, die man nicht zur Sprachsteuerung benötigt.

Allerdings würde Home Assistant alle neu hinzukommenden Entitäten automatisch an Alexa übertragen. Um das zu verhindern, wählt man oben rechts Domains verwalten und deaktiviert alle Domains, die man nicht in Alexa benötigt. Dazu gehören häufig Binärsensoren oder Boolsche Werte. Ich habe alle Domains deaktiviert, da ich selbst bestimmen möchte, was ich mit Alexa nutzen möchte. Klickt man auf Entitäten zurücksetzen, werden alle Entitäten dieser Domain deaktiviert und man muss nicht jede einzeln einstellen.

Hat man diese Einstellungen gemacht, kann man unnötige Geräte, die bereits übertragen wurden, in Alexa löschen. Dazu geht man nicht in die Alexa App, sondern auf https://alexa.amazon.com, meldet sich mit seinen Amazon Zugangsdaten an und klickt auf Smart Home. Unter Geräte, werden alle derzeit verfügbaren Geräte anzeigt, die Home Assistant (und auch andere Dienste) zu Alexa übertragen hat. Nun kann man entweder einzelne Geräte entfernen oder die komplette Liste löschen. Dazu klickt man am Ende der Liste auf Alle entfernen. Zum Zeitpunkt des Beitrags, quittierte die Seite das immer mit einer Fehlermeldung, löschte aber trotzdem einen Großteil der Geräte. Um die komplette Liste zu leeren, musste ich mehrfach auf den Button klicken.

Damit hat man einen sauberen Ausgangspunkt, ab dem man mit der zielgerichteten und klar definierten Einrichtung beginnen kann.

Alexa Entitäten und Namen selbst definieren

Um nun die Entitäten auszuwählen, die man per Sprachsteuerung zur Verfügung haben möchte und deren Namen zu definieren, muss man die configuration.yaml bearbeiten. Damit die configuration.yaml übersichtlich bleibt, ist es sinnvoll, diese auf mehrere Dateien aufzusplitten. Dazu legt man eine neue Datei cloud.yaml an und trägt dann in der configuration.yaml folgendes ein:

cloud: !include cloud.yaml
Code-Sprache: YAML (yaml)

Damit teilt man der Config mit, dass es die neue Datei cloud.yaml einbinden soll. Ich habe z. B. alle Sensoren, Schalter, Szenen etc. in eigene Dateien ausgelagert, was dann in der configuration.yaml so aussieht:

light: !include lights.yaml automation: !include automations.yaml script: !include scripts.yaml scene: !include scenes.yaml switch: !include switch.yaml cloud: !include cloud.yaml sensor: !include sensors.yaml lcn: !include lcn.yaml
Code-Sprache: YAML (yaml)

Damit wird die ganze Konfiguration deutlich übersichtlicher und einfacher zu handhaben. Die neue cloud.yaml beinhaltet ab sofort all die Entitäten, die wir an Amazon übergeben wollen.

Die calud.yaml Datei beginnt im Falle von Amazon Alexa einmalig mit

alexa: entity_config:
Code-Sprache: YAML (yaml)

Nun definiert man alle Entitäten, deren Namen und Kategorie in Alexa z. B.

alexa: entity_config: light.kuche_insel: name: Insel description: Kücheninsel Beleuchtung display_categories: LIGHT
Code-Sprache: YAML (yaml)

light.kuche_insel ist dabei der Name der Entität in Home Assistant. Darunter folgt der Name, unter dem wir diese Entität zukünftig mit Alexa ansprechen wollen. Alexa, schalte Insel ein!

Die description ist optional, hilft aber später, entsprechende Geräte zu identifizieren. Mit display_categories kann man die unterschiedlichen Entitäten den Gerätekategorien von Alexa zuordnen. Damit schafft man Übersicht in der App oder wenn man Alexa Geräte mit Display nutzt. Mögliche Kategorien sind hier aufgelistet: Alexa.Discovery Interface | Alexa Skills Kit (amazon.com). Hier ist ein Auzug aus meiner cloud.yaml

light.badschrank: name: Badschrank description: Beleuchtung Badschrank display_categories: LIGHT light.bad_dusche: name: Dusche description: Licht Dusche display_categories: LIGHT light.bad_decke: name: Baddecke description: Licht Bad Decke display_categories: LIGHT light.sz_markus: name: Nachttisch Markus description: Nachtischlicht Markus display_categories: LIGHT switch.kaffeemaschine: name: Kaffeemaschine description: Siebträger display_categories: COFFEE_MAKER switch.terrasse_sd: name: Steckdosen Terrasse description: Steckdosen Terrasse display_categories: SWITCH switch.lotkolben_werkstatt: name: Lötkolben description: Lötkolben Werkstatttisch display_categories: SWITCH vacuum.rockrobo: name: Staubi description: Roborock EG display_categories: VACUUM_CLEANER vacuum.staubi_2: name: Vorwerk description: Vorwerk Roboter display_categories: VACUUM_CLEANER cover.jalousie_buro_terrasse: name: Bürotür description: Jalousie Bürotüre display_categories: EXTERIOR_BLIND cover.jalousie_bad: name: Badfenster description: Jalousie Badfenster display_categories: EXTERIOR_BLIND
Code-Sprache: YAML (yaml)

Und das sieht dann so in der Alexa App aus:

Alexa App mit Gerätekategorie wie Licht, Schalter oder Saugroboter

Nachdem man die neue Konfiguration gespeichert und Home Assistant neu gestartet hat, werden diese Geräte automatisch zu Alexa übertragen und auch NUR diese. Entscheidet man sich später einmal, dass man ein Gerät mit einem anderen Namen aufrufen möchte, ändert man einfach den entsprechenden Eintrag in der cloud.yaml. Zwar ist das bei der ersten Einrichtung etwas Aufwand, dafür wird man aber mit einem übersichtlichen System belohnt, das auch auf die Sprachbefehle hört, die man nutzen möchte – und die man sich merken kann.

Ein weiterer nicht zu unterschätzender Effekt ist, dass die Sprachbefehle sehr viel schneller ausgeführt werden, da nicht zig unnütze Geräte durchsucht und interpretiert werden müssen.

Abonnieren
Benachrichtige mich bei
Das Kommentarformular speichert deine Namen, deine E-Mail-Adresse und den Inhalt, damit wir den Überblick über die auf der Website veröffentlichten Kommentare behalten können. Bitte lies und akzeptiere unsere Website-Bedingungen und Datenschutzerklärung, um einen Kommentar zu schreiben.
0 Kommentare
Inline Feedbacks
View all comments

Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Irrtümer und Preisfehler vorbehalten.