Wird vielleicht damit zusammenhängen, welcher Benutzer gerade auf dem jeweiligen Echo aktiv ist. Aber ruf doch einfach beide Dienste parallel auf, dann hast Du immer den richtigen.
wie meinst du beide Dienste paralell?
Wenn Du die Benachrichtigung parallel an beide Notify-Adressen schickst, müsste sie doch auf jeden Fall einmal ankommen.
nein ich glaube wenn ich das mache, bricht er ab, wenn es den ersten Dienst nicht gibt oder?
Deshalb parallel. Du wählst in den Aktionen “Parallel laufen” aus und fügst da beide Benachrichtigungen ein.
Hab es jetzt mal mit diesem Code probiert:
alias: Welche Fenster und Türen offen
sequence:
- service: alexa_media.update_last_called
data: {}
- delay:
hours: 0
minutes: 0
seconds: 0
milliseconds: 2
- if:
- condition: state
entity_id: binary_sensor.fenster_und_tursensoren
state: "on"
then:
- service: notify.alexa_media_last_called_xxx
data:
data:
type: announce
message: |-
Folgende Fenster und Türen sind noch offen: {{
expand('binary_sensor.fenster_und_tursensoren')
| selectattr('state', 'eq', 'on')
| map(attribute='name')
| list
| join (', ')
}}
else:
- service: notify.alexa_media_last_called_xxx
data:
data:
type: announce
message: Es sind alle Fenster und Türen geschlossen
enabled: true
- if:
- condition: state
entity_id: binary_sensor.fenster_und_tursensoren
state: "on"
then:
- service: notify.alexa_media_last_called
data:
data:
type: announce
message: |-
Folgende Fenster und Türen sind noch offen: {{
expand('binary_sensor.fenster_und_tursensoren')
| selectattr('state', 'eq', 'on')
| map(attribute='name')
| list
| join (', ')
}}
else:
- service: notify.alexa_media_last_called
data:
data:
type: announce
message: Es sind alle Fenster und Türen geschlossen
enabled: true
mode: parallel
Aber leider kommt keine Ansage.
er bricht wohl doch beim ersten ab:
Nicht der Modus muss parallel sein, sondern die Aktionen. Schau in der Liste der Aktionen nach “parallel laufen”. Da kommen dann beide Notify-Aktionen rein.
Super vielen Dank. Das funktioniert jetzt.
So jetzt hab ich dich lange genug an Weihnachten aufgehalten Frohe Weihnachten
Danke, frohe Weihnachten auch für Dich.
Hallo zusammen und ein gesundes Jahr 2024.
ich komme hier leider nicht weiter, das Script funktioniert soweit
alias: 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.gruppe_alle_fenster_und_turen')
| selectattr('state', 'eq', 'on')
| map(attribute='name')
| list
| join (', ')
}}
mode: single
Ich habe sowohl den Alexa_Media player installiert als auch das Video von Cryd abgearbeitet, das funktioniert soweit alles gut, licht an und so weiter
was aber so überhaupt nicht funktionieren will ist das ich das an Alexa übergebe.
die Config sieht wie folgt aus:
# Loads default set of integrations. Do not remove.
default_config:
# Load frontend themes from the themes folder
frontend:
themes: !include_dir_merge_named themes
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
sensor: !include sensor.yaml
template: !include template.yaml
alarm_control_panel: !include alarm.yaml
waste_collection_schedule: !include abfall.yaml
alexa: !include alexa.yaml
light: !include light.yaml
climate: !include climate.yaml
influxdb: !include influxdb.yaml
und die alexa.yaml sieht so aus:
smart_home:
locale: de-DE
endpoint: https://api.eu.amazonalexa.com/v3/events
filter:
include_entities:
# Lichter
- light.buro
- light.esszimmer
- light.wohnzimmer
- light.sleepingroom_licht
- light.terrasse
# Steckdosen
- switch.tasmota_2
- switch.fernseher_sideboard_wohnzimmer_fernseher_wohnzimmer
- switch.ventilator_wz
- switch.ecklampe
- switch.ventilator_wz
- switch.nachttisch
- switch.schlafzimmer_ventilator_fernseher_fernseher
# abfragen
- input_boolean.test_schalter
entity_config:
script.fenster:
name: "offene Fenster"
display_categories: SCRIPT
wo habe ich einen Fehler gemacht?
Danke und Gruß
Micha
Hallo Micha und herzlich willkommen im Forum. Du musst das Script auch in die include_enities einfügen.
Danke Heiko,
jedes mal wenn ich es versuche das Skript in die include zu setzen bekomme ich ganz viele Fehler Meldungen
wie zum Beispiel
schreibe ich hingegen
smart_home:
locale: de-DE
endpoint: https://api.eu.amazonalexa.com/v3/events
filter:
include_entities:
# Lichter
- light.buro
- light.esszimmer
- light.wohnzimmer
- light.sleepingroom_licht
- light.terrasse
# Steckdosen
- switch.tasmota_2
- switch.fernseher_sideboard_wohnzimmer_fernseher_wohnzimmer
- switch.ventilator_wz
- switch.ecklampe
- switch.ventilator_wz
- switch.nachttisch
- switch.schlafzimmer_ventilator_fernseher_fernseher
# abfragen
- input_boolean.test_schalter
# script
- script.fenster:
name: "Fenster"
display_categories: SCRIPT
kommt folgende Meldung beim prüfen
Invalid config for 'alexa' at alexa.yaml, line 5: value should be a string for dictionary value 'alexa->smart_home->filter->include_entities', got ['light.buro', 'light.esszimmer', 'light.wohnzimmer', 'light.sleepingroom_licht', 'light.terrasse', 'switch.tasmota_2', 'switch.fernseher_sideboard_wohnzimmer_fernseher_wohnzimmer', 'switch.ventilator_wz', 'switch.ecklampe', 'switch.ventilator_wz', 'switch.nachttisch', 'switch.schlafzimmer_ventilator_fernseher_fernseher', 'input_boolean.test_schalter', {'script.fenster': {'name': 'Fenster', 'display_categories': 'SCRIPT'}}]
Ich verstehe “noch” nicht wo das Problem ist
Edit:
ich habe keine Ahnung was und wie ich es in die alexa.yaml schreiben soll
Es gibt Entitäten, bei denen Alexa selbst erkennt, um welche Displaykategorie es sich handelt, dazu gehören beispielsweise Lichter und Schalter. Da brauchst Du einen Eintrag in der entity_config nur, wenn Du ihnen für Alexa einen speziellen Namen geben möchtest. Bei Skripten brauchst Du diesen Eintrag schon wegen der Kategorie, aber den Eintrag in den include_entities benötigst Du trotzdem. Das muss dann so aussehen:
smart_home:
locale: de-DE
endpoint: https://api.eu.amazonalexa.com/v3/events
filter:
include_entities:
# Lichter
- light.buro
- light.esszimmer
- light.wohnzimmer
- light.sleepingroom_licht
- light.terrasse
# Steckdosen
- switch.tasmota_2
- switch.fernseher_sideboard_wohnzimmer_fernseher_wohnzimmer
- switch.ventilator_wz
- switch.ecklampe
- switch.ventilator_wz
- switch.nachttisch
- switch.schlafzimmer_ventilator_fernseher_fernseher
# abfragen
- input_boolean.test_schalter
# Skripte
- script.fenster
entity_config:
script.fenster:
name: "offene Fenster"
display_categories: SCRIPT
ich danke dir recht herzlich, da hätte ich noch lange probieren können, darauf wäre ich nie gekommen.
Gerne, freut mich, dass ich helfen konnte.
Kleiner Nachtrag, bzw. einen Hinweis.
bei meiner HA Version
hat sich das wohl geändert
von:
- script.fenster
entity_config:
script.fenster:
name: "offene Fenster"
display_categories: SCRIPT
zu
- script.1705080641098
entity_config:
script.1705080641098:
name: "offene Fenster"
display_categories: SCRIPT
Es muss wohl die Script ID benutzt werden.
Ja, das ist immer so. Ich dachte, das sei die ID. Wenn Du ein neues Skript anlegst, dann leg immer gleich oben den Namen dafür fest. Dann wird die ID nach dem Namen generiert. Wenn Du ohne Namen abspeicherst, wird eine solche kryptische ID vergeben. Aber Du kannst die ID auch noch nachträglich ändern, dann hast Du es bei solchen Dingen einfacher.
danke für den Hinweis.
Als IOB Wechsler ist das alles nicht so einfach, auch wenn es einfach aussieht.
nochmal tausend dank
Danke für diesen Thread an alle Beteiligten, es hat mir sehr geholfen.
Mein nun mittlerweile funktionierendes Script sieht so aus:
alias: Abfrage Fenster und Türen offen
sequence:
- data: {}
action: alexa_media.update_last_called
- delay:
hours: 0
minutes: 0
seconds: 0
milliseconds: 2
- if:
- condition: state
entity_id: binary_sensor.alle_fenster_und_turen
state: "on"
then:
- data:
data:
type: tts
method: speak
message: |-
Folgende Fenster und Türen sind noch offen: {{
expand('binary_sensor.alle_fenster_und_turen')
| selectattr('state', 'eq', 'on')
| map(attribute='name')
| list
| join (', ')
}}
action: notify.alexa_media_last_called
else:
- data:
data:
type: tts
method: speak
message: Es sind keine Fenster oder Türen geöffnet.
action: notify.alexa_media_last_called
mode: single
description: ""
icon: mdi:window-open-variant
Nun möchte ich erreichen, dass Alexa mir nicht immer den gleichen Satz vorliest, wenn alles geschlossen ist.
Versucht habe ich folgendes im letzten Abschnitt des Scripts:
else:
- data:
data:
type: tts
method: speak
message: >
{% set alexa_text = [ "Ja,Alles iss zu ", "Ja,Türen und Fenster sind
momentan alle zu ", "Ja,alle Türen und Fenster sind geschlossen " ]
| random %}
action: notify.alexa_media_last_called
mode: single
description: ""
icon: mdi:window-open-variant
Da kommt aber nichts von Alexa, wenn ich das Script so verwende, nur das einleitende “okay” und dann nichts mehr. Kann mir da jemand vielleicht behilflich sein? Das wäre klasse.
2te Frage noch: Das einleitende “okay” bei der Antwort, das bekommt man nicht weg, oder? Ich habe schon mal in der App auf kurze Antworten gestellt, aber dann kommt ein kurzer Ton, da finde ich “okay” dann doch besser. Von tts auf announce habe ich auch mal versucht, aber dann kommt das “okay” plus ein (anderer) Ton
Wurde gelöst von ChatGPT:
message: >
{{ [
"Ja, alles ist zu.",
"Ja, Türen und Fenster sind momentan alle zu.",
"Ja, alle Türen und Fenster sind geschlossen."
] | random }}
action: notify.alexa_media_last_called
Um Alexa zufällig eine Nachricht aus einer Auswahl vorlesen zu lassen, kannst du die Jinja2-Template-Engine von Home Assistant verwenden. Du kannst dabei eine zufällige Auswahl aus einer Liste von Nachrichten treffen, indem du den
random
-Filter verwendest.Änderungen:
- Die
message
-Zeile für den Fall, dass alle Fenster und Türen geschlossen sind, wurde angepasst, um eine zufällige Auswahl aus drei verschiedenen Nachrichten zu treffen. Dies geschieht mit der Liste und demrandom
-Filter.Das Skript wählt jetzt zufällig eine der drei Nachrichten aus, wenn alle Fenster und Türen geschlossen sind.