Alles auf einen Blick
ToggleAlexa, rede mit mir!
Bei meinem Home Assistant Einstieg, dem permanenten Umbauen und Kaputt machen, lernen und in den Tisch beißen, bin ich irgendwann auch auf den guten Simon gestoßen (ich verlinke mal stellvertretend für alle seine Kanäle seine Webseite) und kenne daher auch die Community von ihm.
Erfreut bin ich auf einen Beitrag von DirkS (liebe Grüße an der Stelle) gestoßen, der meinen Alexa Artikel verlinkt hat und im Zusammenhang gefragt hat, wie man Alexa auch nach dem einen oder anderen Fragen kann.
Das möchte ich heir in diesem Artikel gerne erklären =).
Allgemeiner Ablauf
Um mit Alexa „reden“ zu können (mit Absicht in Anführungszeichen gesetzt, da es kein wirkliches reden ist sondern nur ein Trägern eines Skriptes, das Reden übernimmt dann Home Assistant für Alexa) benötigen wir folgende Voraussetzungen;
Die Alexa Media Player Integration muss installiert sein im Home Assistant und funktionieren. Das hat Simon super erklärt in einem Video, daher überspringe ich den Teil an der Stelle mal.
Damit wir Alexa etwas fragen können, richten wir später in Alexa eine Routine ein, die wiederum ein Skript in Home Assistant startet. Dieses Skript reicht uns dann unsere gewünschte Antwort wiederum über den Alex Media Player an unsere Alexa zurück.
Kleines Technik-Ping-Pong sozusagen.
Dabei sei erwähnt: Home Assistant macht Skripte in Alexa als Szene bekannt. Also rein theoretisch gesehen ist ein Skript für Alexa eine Licht-Szene die sich einfach „aktivieren“ lässt. Normalerweise würde dann damit eine vorher definierte Lichteinstellung aktiv werden. Mehr ist es für Alexa nicht.
Dadurch, dass diese „Szene“ aber aktiv wird, startet Home Assistant das Skript, welches dann wiederum Dinge für uns tun kann (das kann natürlich alles mögliche sein).
Ein Skript in Home Assistant
Verallgemeinert ist ein Skript wie eine Automatisierung. Nur hat sie keinen Trigger (wie z.B. eine Zeit oder einen Sensor / Status einer Entität die es auslöst). Man kann ein Skript einfach starten und es wird ausgeführt. Gleichzeitig kann man einem Skript aber auch Variablen oder Argumente übergeben. Das habe ich hier in meinem TTS-Queue Artikel ausführlich erklärt bzw. gezeigt, wofür sich die Argumente nutzen lassen können.
Die hier gewünschte Funktion beschreibe ich jetzt einfach mal anhand einer ganz einfachen Skript-Situation:
alias: Alexa, es ist zu dunkel
sequence:
- service: input_boolean.turn_on
metadata: {}
data: {}
target:
entity_id: input_boolean.lux_override
- service: script.tts_queue
metadata: {}
data:
target:
- media_player.alexa_kuche
- media_player.alexa_arbeitszimmer
- media_player.alexa_flur
- media_player.alexa_schlafzimmer
- media_player.alexa_badezimmer
- media_player.alexa_wohnzimmer
message: Okay, ich sorge für ein wenig mehr Licht.
mode: single
Dieses Skript macht lediglich folgendes:
Es aktiviert den input_boolean.lux_override und startet mein tts_queue Skripte (ja, auch Skripte können Skripte starten) und lässt meine Alexa sprechen. Hier sagt sie mir als Bestätigung „Okay, ich sorge für ein wenig mehr Licht“.
Die gleiche Info kann natürlich auch „nur“ über den alexa_media_player wiedergegeben werden. Das macht technisch keinen Unterschied. Also z.B. statt dem obigen:
alias: Alexa, es ist zu dunkel
sequence:
- service: input_boolean.turn_on
metadata: {}
data: {}
target:
entity_id: input_boolean.lux_override
- service: notify.alexa_media
metadata: {}
data:
message: Okay, ich sorge für ein wenig mehr Licht.
target:
- media_player.alexa_flur
mode: single
erzeugt dieses Skript genau das gleiche Ergebnis.
Die Alexa Routine
Die Routine in Alexa wird direkt in der Alexa-App eingerichtet:
Das war es bereits. Es dauert nun einige Minuten, bis alle Alexas über die Routine bescheid wissen (das passiert automatisch). Und nach zwei bis drei Minuten kann Alexa mit dem Satz (in meinem Beispiel: Alexa, es ist zu dunkel) angetriggert werden um unser Skript (bzw. für Alexa die Szene) zu starten.
Home Assistant führt dann das Skript aus und macht dann die Dinge, die wir uns wünschen ;D.
Im allgemeinen kann nicht viel schief gehen ;D. Es kann aber sein, dass das Skript Alexa nicht von Home Assistant bekannt gemacht wird. Dann muss geschaut werden, ob die Entität (das Skript) an Alexa gemeldet wird (die Alexa App meldet dann üblicherweise auch zackig ne Benachrichtigung mit „Neue Szene verfügbar“).
Wenn das nicht automatisch geschieht, dann muss nur überprüft werden ob Home Assistant die Entität bekannt gemacht hat. Das lässt sich über die Einstellungen in Home Assistant (und in den aktuellen Versionen unter Sprachassistenten) überprüfen:
Bildquellen
- 2024.05.25.00.28.03-FB4C9F38: ChatGPT
0 Kommentare