Alexa, 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

Schreibe einen Kommentar

Avatar-Platzhalter

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

DSGVO Cookie Consent mit Real Cookie Banner