Alexa, welches Fenster/Tür ist noch offen?

Hallo zusammen,

durch das Stöbern hier im Forum habe ich diesen Artikel gefunden.
[ Regenwarnung in HA](Regenwarnung in HA - #8 von silberfuxx)

Ich selber habe das Bosch-Smart-Home-System.

Frage:
Ist es möglich eine Automation zu erstellen, dass wenn ich Alexa Frage, “Was ist noch offen?” Mir Alexa die Türen und Fenster aufzählt die noch offen sind.

Bosch bzw. Alexa bietet in der App diese Funktion nicht wirklich.
Jedoch, wenn ich die Alarmanlage in der App scharf schalte, wird bei dem Button Alarmsystem ein kleines Ausrufezeichen eingeblendet, wenn nicht alle Fenster und Türen geschlossen sind. Klicke ich dann auf diese Ausrufezeichen, dann werde alle offenen Fenster und Türen angezeigt.
Leider geht dies aber nur über diesen Weg. Widerum bedeutet doch dies, dass diese Funktion irgendwie vorhanden sein muss, und vielleicht so umgesetzte werden kann, dass man Alexa danach fragen kann, auch wenn man dazu den Alarm nicht scharf schaltet. Was meint ihr daz

Ich habe aus „Spaß“ / Interesse, Chat GPT dasselbige gefragt …ich weiß es ist nicht 100% und auch nicht aus persönlichen Erfahrung aber vielleicht ist es der heutige Weg???
Folgende Antwort habe ich bekommen:

du kannst eine Automation mit Alexa erstellen, um die Liste der offenen Türen und Fenster abzurufen. Hier ist ein Beispiel, wie du dies in Home Assistant umsetzen kannst:

1. Stelle sicher, dass du Home Assistant mit Alexa verbunden hast. Du kannst die offizielle Alexa-Integration von Home Assistant verwenden, um eine Verbindung herzustellen.
2. Richte die Türen und Fenster als Entitäten in Home Assistant ein. Stelle sicher, dass sie als Binärsensoren oder Kontaktensoren erkannt werden.
3. Erstelle eine Automation in Home Assistant, die ausgelöst wird, wenn du Alexa die Frage “Was ist noch offen?” stellst.
4. Die Automation sollte einen Service-Aufruf enthalten, um die Liste der offenen Türen und Fenster abzurufen und als Antwort an Alexa zurückzugeben. Verwende dazu eine Vorlage (Template), um die Informationen zu formatieren.

Hier ist ein Beispiel für eine Automation in YAML-Syntax:

automation:
  - alias: 'Offene Türen und Fenster abrufen'
    trigger:
      platform: event
      event_type: alexa_intent
      event_data:
        name: 'OffeneTuerenFensterIntent'
    action:
      service: notify.notify
      data_template:
        message: >
          {% set open_doors = states.binary_sensor | selectattr('state', 'eq', 'on') | selectattr('device_class', 'eq', 'door') %}
          {% set open_windows = states.binary_sensor | selectattr('state', 'eq', 'on') | selectattr('device_class', 'eq', 'window') %}
          Offene Türen: {{ open_doors | map(attribute='name') | join(', ') }}
          Offene Fenster: {{ open_windows | map(attribute='name') | join(', ') }}

In diesem Beispiel wird die Automation ausgelöst, wenn der Alexa-Intent “OffeneTuerenFensterIntent” erkannt wird. Du musst sicherstellen, dass dieser Intent in deiner Alexa-Konfiguration definiert ist.

Denke daran, dass dies ein Beispiel ist und du es möglicherweise an deine spezifischen Anforderungen anpassen musst. Es ist auch wichtig sicherzustellen, dass du Home Assistant korrekt mit Alexa verbunden hast, damit die Automation ordnungsgemäß funktioniert.

Hoffentlich kannst Du damit was anfangen, am sonsten ignorieren. Schönen Sonntag noch
:information_source:
Ich selber nutze Siri und die macht es ohne Automation, ich muss nur fragen.
Für den Fall dass es regnet und Fenster/ Türen auf sind habe ich eine Automation, di mir eine Nachricht an iPhone / Watch, sendet.

@jack

Vielen lieben Dank für deine Hilfe.
Ich habe jetzt Dank Alexa kostenlos in Home Assistant einrichten von Tristan’s Smartes Heim Alexa eingebunden. Das klappt auch super.
Siehe

Lüften → Sprachnachricht über Echodot, welches Fenster nach 10 Minuten noch offen ist

Also Punkt 1 müsste ich somit abgehakt haben.

Jetzt hänge ich an Punkt 2

Richte die Türen und Fenster als Entitäten in Home Assistant ein. Stelle sicher, dass sie als Binärsensoren oder Kontaktensoren erkannt werden
Könntest du mir da einen Screenshot zukommen lassen wie das auszusehen hat?
Bei mir sieht das so aus.

Bei den Automationen finde ich den Befehl bzw. den Dienst nicht, den ich Auswählen kann um z.B. die Frage “Was ist offen ?” zu erstellen. Wäre tollen wenn du mir diesen nennen könntest.

Vielen herzlichen Dank
Frank

Moin @Musicus leider nutze ich keine Alexa und kann dir auch nicht wirklich weiter helfen. Sorry und viel Erfolg noch. Gruß

Hi,
mit diesem Skript klappt das bei mir. Musst eine Gruppe anlegen in der alle Fenster sind, und teilweise unschöne Namen der Sensoren kann mal ersetzten.

alias: Frage Status Fenster
sequence:
  - service: alexa_media.update_last_called
    data: {}
  - delay:
      hours: 0
      minutes: 0
      seconds: 0
      milliseconds: 2
  - service: notify.alexa_media_last_called
    data:
      data:
        type: tts
        method: speak
      message: >-
        Folgende Fenster und Türen sind noch offen: {{
        expand('binary_sensor.fenster_all')
           | selectattr('state', 'eq', 'on') 
           | map(attribute='name') 
           | list 
           | join (', ')
           | replace('UG_Schlafzimmer_Fenstersensor', 'Schlafzimmer')
           | replace('EG_Büro_Fenstersensor', 'Büro')
           | replace('EG_Wohnzimmer_Fenstersensor', 'Wohnzimmer')
        }}
mode: single

1 „Gefällt mir“

Das Script funktioniert mit kleinen Modifikationen perfekt.

Jetzt ist die Frage wie ich es einrichte, dass Alexa meine Frage beantwortet:

“Alexa, welche Fenster sind geöffnet?”

Mit dem Begriff Alexa_intent kann ich leider nichts anfangen und habe auch nichts passendes im Internet dazu gefunden.

Bisher habe ich virtuelle Schalter od. ähnliches verwendet um Alexa zu triggern, aber in diesem Fall möchte ich gerne die oben genannte Frage stellen.
Geht sowas?

service: notify.alexa_media
data:
  target:
    - media_player.alexa_wohnzimmer
  data:
    type: announce
    method: speak
  message: >-
    Folgende Fenster und Türen sind noch offen: {{
    expand('binary_sensor.fk_all')
       | selectattr('state', 'eq', 'on') 
       | map(attribute='name') 
       | list 
       | join (', ')
    }}
alias: Frage Status Fenster

Wenn Du den oben genannten Alexa-Skill eingerichtet hast, kannst Du damit auch Skripte übergeben und in einer Routine aufrufen. In der Alexa-Rubrik in der Configuration.yaml unter entity_config sieht das bei mir so aus:

        script.offene_fenster_und_turen_abfragen:
            name: "Offene Fenster und Türen"
            display_categories: SCRIPT

Mit dem Nabu-Casa-Zugang lässt sich das sicher auch irgendwie machen.

Ja, ich hab das unter Nabu Casa, eingerichtet. Also das Skript wird dann über Sprachassistenten an Alexa freigegeben.
Da musss man dann allerdings sagen: Alexa, starte welche Fenster sind offen
Weil mir das nicht gefallen hat habe ich in Alexa eine Routine angelegt, die auf Alexa, welche fenster sind offen reagiert

So habe ich es auch gemacht mit der Routine. Das Skript hab ich außerdem mit einer Wenn-dann-Funktion versehen, damit Alexa den entsprechenden Spruch nur bringt, wenn auch noch was offen ist. Wenn nicht, sagt sie: “Es sind keine Fenster oder Türen geöffnet.”

Stimmt, gute Idee. Werde ich auch mal anpassen

Freut mich, dass das bei euch so gut klappt, aber

… das war ja im Prinzip meine Frage, wie ich diesen Skill einrichte?

alexa_intent wird doch über den Developer Zugang eingerichtet oder geht das auch anders?

Ich sehe via NabuCasa zwar die Szene und könnte die auch über eine Routine in der Alexa App verknüpfen, allerdings fehlt mir noch das Wissen, welcher der “Auslöser” für die Automatisation ist.

Du erstellst keine Automation, sondern mit dem für Dich angepassten Code von @m1scha ein Script (in der Rubrik “Automationen und Szenen” den Punkt “Skripte” auswählen). Damit hast Du quasi nur den “Aktionen”-Teil einer Automation. Dieses Skript kannst Du in der Alexa-Routine dann als Aktion auswählen. Damit fungiert die Routine als Auslöser.

Die Last-called-Services in dem Skript haben übrigens den Vorteil, dass immer der Echo antwortet, der auch gefragt wurde (falls Du mehrere von ihnen hast).

Den Skill brauchst Du nur, wenn Du die Nabu-Casa-Cloud nicht nutzt.

1 „Gefällt mir“

Ok. Hat sich erledigt. Nachdem ich verstanden habe wie es funktioniert, war es ganz einfach.
Läuft prinzipiell.

Jetzt fehlt nur noch die Schleife, dass bei keinem offenen Fenster die Ansage entsprechend angepasst wird.

Dank euch :slight_smile:

Hallo zusammen,

Dank der großartigen Hilfe und Geduld von @Samhain habe ich es nun auch geschafft. Wenn ich das Script händisch starte, werden mir alle offen Türen und Fenster über Alexa genannt.
(Zwar relativ schnell, aber man kann es noch verstehen)

Was mir jetzt noch nicht klar ist, wie ich das Script bzw. die Szene an die Alexa-App (Handy) übergebe, damit ich da eine Routine für die Anfrage erstellen kann.
Die Alexa-App bietet mir nur folgende Optionen an:
Stimmen
Zeitplan
Smart Home
Wecker
Geräuscherfassung
Echo Button

Als Sprachassistenten habe ich nicht NabuCasa, sondern Alexa Media Player
Gibt es dann überhaupt eine Möglichkeit ohne NabuCasa das Script für die Weiterverarbeitung an die Alexa-App zu senden, oder wie kann ich den Sprachbefehl “welche Fenster sind offen” über Alexa aktivieren?

Unter Sprachassistent erscheint leider der


Alexa Media Player nicht.

Vielen Dank
Frank

Hi Frank,

der Alexa Media Player erlaubt leider nur die Sprachausgabe von Home Assistant aus. Wenn Du Deine Entitäten an Alexa übergeben möchtest, dann musst Du entweder die Nabu-Casa-Cloud buchen oder Dir einen eigenen Alexa-Skill bauen, wie es Tristan in diesem Video beschreibt und Cryd in diesem. Als ich den Skill in meinem Beitrag weiter oben erwähnt habe, dachte ich, Du hättest den schon eingerichtet, aber Du meintest da ja nur den Alexa Media Player (den Du dafür natürlich auch brauchst).

Gruß Heiko

1 „Gefällt mir“

Hallo,

ich habe mich an Tristans Anleitung gehalten und kann dadurch meine Homeassistant Geräte bedienen. Hierzu habe ich eine alexa.yaml, in der ich alle eingetragen habe, die ich unterstützt haben möchte.
Nun habe ich in dieser Datei auch das Script eingebaut (vgl. oben von Heiko). ALs Script als solches habe ich mir eine angepasste Variante von m1scha gebaut - das kann ich ablaufen lassenb und alle offen Türen und Fenster werden genannt.
Jetzt habe ich aber das Problem, dass ich bei Alexa nicht di Möglichkeit finde, das Script vom HA zu starten. In der Alexa-App gibt es, wenn ich eine Routine erstellen möchte als “Aktion hinzufügen” die Möglichkeit “Smart Home” auszuwählen (da finde ich z.b. meine bisher schon lauffähigen Komponenten). Nun aber meine Frage - Wo finde ich “Scripte” bzw. wie kann ich die einbinden? Wie habt Ihr die Steuerung über Alexa eingerichtet?

Grüße

Wenn Du alles richtig gemacht hast, findest Du Dein Skript in der Alexa-app unter “Alle Geräte”. Hast Du Deine Alexa.yaml mit der Configuration.yaml verknüpft?

Hi,

ja - die alexa.yaml wird in der configuration.yaml bei mir eingebunden:

alexa: !include alexa.yaml

und alle Geräte die dort drin stehen werden in Alexa geführt - nur das script nicht.

Ich habe die Geräte über den explorer durch alexa.amazon.de integriert. Dort gibt es oben noch die Auswahlmöglichkeit:

Hier kann man unter Smart Home nach “Szenen”, “Geräten” und “Gruppen” suchen. Wenn diese im alexa.yaml aufgeführt sind, erscheinen die nach Suche dort und können genutzt werden. “Scripte” werden dort nicht geführt… Wie machst Du die Intergation in Alexa?

Eine Rubrik gibt es für die Skripte nicht. Die werden einfach in der Geräteliste unter ihrem jeweiligen Namen aufgeführt, auch in der Webanwendung. Hat sich vielleicht bei dem Skript ein Fehler in der Alexa.yaml eingeschlichen?

Bei mir heißt das ausführbare Skript:
grafik

und in der alexa.yaml ist eingetragen:
grafik

die Verknüpfung von der alexa.yaml zum script sollte so eigentlich passen.
Das Objekt “Offene Fenster und Türen” erscheint aber nicht in der Auswahlliste bei Alexa.

Kann das mit der Displaykategorie “Script” zusammenhängen?

Ich hatte nach dem ich alle Einträge gemacht hatte HA neu gestartet. Danach bei Alexa im Web geschaut und bei allen drei Kategorien nach neuen Objekten gesucht → nichts zu sehen. Erscheinen die neuen Objekte in der mobilen Alexaanwendung automatisch oder muss man die dort auch suchen?