Hallo,
ich möchte mit euch meine zwei Skript für Alexa Media Player teilen.
Mir war es immer lästig alles zu konfigurieren in den Automationen deshalb habe ich zwei Skripte geschrieben.
Eins für Sprachausgabe und eine für Soundausgabe.
Für Sprachausgabe:
sequence:
- variables:
volume_float: "{{ desired_volume | float / 100 }}"
previous_volume: "{{ state_attr(alexa_entity, 'volume_level') }}"
- choose:
- conditions:
- condition: template
value_template: "{{ change_volume }}"
sequence:
- data:
entity_id: "{{ alexa_entity }}"
volume_level: "{{ volume_float }}"
action: media_player.volume_set
- choose:
- conditions:
- condition: template
value_template: "{{ notification_type == 'announce' }}"
sequence:
- data:
target:
- "{{ alexa_entity }}"
data:
method: all
type: announce
title: Wichtige Nachricht
message: "{{ tts_message }}"
action: notify.alexa_media
default:
- data:
target:
- "{{ alexa_entity }}"
data:
type: tts
message: "{{ tts_message }}"
action: notify.alexa_media
- delay:
seconds: "{{ delay_time }}"
- choose:
- conditions:
- condition: template
value_template: "{{ change_volume }}"
sequence:
- data:
entity_id: "{{ alexa_entity }}"
volume_level: "{{ previous_volume }}"
action: media_player.volume_set
alias: Alexa Nachricht mit Lautstärkeänderung
description: >
Gibt eine Alexa-Nachricht aus, optional mit Lautstärkeänderung und Rücksetzung
nach Verzögerung.
fields:
alexa_entity:
name: Alexa Gerät
description: Wähle das Alexa Gerät, das die Nachricht abspielen soll.
required: true
selector:
entity:
domain: media_player
default: media_player.alexa_wohnzimmer
change_volume:
name: Lautstärke ändern
description: Soll die Lautstärke angepasst werden?
required: true
default: true
selector:
boolean: {}
desired_volume:
name: Lautstärke (0-100%)
description: >-
Definierte Lautstärke für die Ansage in Prozent (0 = aus, 100 = maximale
Lautstärke).
required: true
default: 50
selector:
number:
min: 0
max: 100
step: 10
tts_message:
name: TTS Nachricht
description: Die Nachricht, die Alexa ansagen soll.
required: true
default: Dies ist eine Testnachricht.
selector:
text: {}
delay_time:
name: Verzögerung (in Sekunden)
description: " (Nicht notwendig da keine Lautstärkenänderungen während der Ansage) Wartezeit in Sekunden, bevor die ursprüngliche Lautstärke wiederhergestellt wird. (Nicht notwendig)"
required: true
default: 1
selector:
number:
min: 1
max: 60
step: 1
notification_type:
name: Benachrichtigungstyp
description: >
Normale Nachricht oder eine wichtige Nachricht sein soll. (Wichtige hat
ein Ton davor)
required: true
default: tts
selector:
select:
options:
- value: tts
label: Normal (TTS)
- value: announce
label: Wichtig (Announce)
mode: single
Für Soundausgabe:
alias: Alexa Sound abspielen (SSML-Tag direkt)
description: >
Spielt einen vollständigen SSML-Audio-Tag (z. B. <audio
src="soundbank://..."/>) auf dem ausgewählten Alexa-Gerät ab.
🎵 Soundbeispiele findest du hier: 🔗
https://developer.amazon.com/en-US/docs/alexa/custom-skills/ask-soundlibrary.html
fields:
alexa_entity:
name: Alexa Gerät
description: Wähle das Alexa Gerät, auf dem der Sound abgespielt werden soll.
required: true
selector:
entity:
domain: media_player
ssml_tag:
name: SSML-Audio-Tag
description: >-
Füge den kompletten <audio src="..."/>-Tag aus der Soundbank ein. Es gehen
auch mehrere hintereinander.
required: true
selector:
text:
multiple: true
multiline: false
default:
- >-
<audio
src="soundbank://soundlibrary/animals/amzn_sfx_dog_med_bark_2x_02"/>
change_volume:
name: Lautstärke ändern
description: Lautstärke auf gewünschten Wert setzen
required: true
default: true
selector:
boolean: {}
desired_volume:
name: Lautstärke (0-100%)
description: Definierte Lautstärke für die Soundwiedergabe in Prozent.
required: true
default: 50
selector:
number:
min: 0
max: 100
step: 10
sequence:
- variables:
volume_float: "{{ desired_volume | float / 100 }}"
previous_volume: "{{ state_attr(alexa_entity, 'volume_level') }}"
alexa_device: "{{ alexa_entity.split('.')[-1] }}"
- choose:
- conditions:
- condition: template
value_template: "{{ change_volume }}"
sequence:
- data:
entity_id: "{{ alexa_entity }}"
volume_level: "{{ volume_float }}"
action: media_player.volume_set
- data:
message: "{{ ssml_tag }}"
data:
type: tts
action: notify.alexa_media_{{ alexa_device }}
- delay:
seconds: 2
- choose:
- conditions:
- condition: template
value_template: "{{ change_volume }}"
sequence:
- data:
entity_id: "{{ alexa_entity }}"
volume_level: "{{ previous_volume }}"
action: media_player.volume_set
mode: single
Viel Spaß damit ich freu mich über Rückmeldung.
PS: Die Skripte sind mit ChatGPT geschrieben und immer wieder verbessert worden.
Gruß Marc