Initial Home Assistant commit

This commit is contained in:
2026-06-05 22:34:31 -04:00
commit 6a58b10e6c
4494 changed files with 297833 additions and 0 deletions
@@ -0,0 +1,85 @@
# ============================================================================
# SpotifyPlus integration intent custom sentence and response definitions.
#
# Language: en, English
# Intent: SpotifyPlusFavoriteAddRemove
# Location: custom_sentences/en/spotifyplus_FavoriteAddRemove_en.yaml
# ============================================================================
language: en
intents:
SpotifyPlusFavoriteAddRemove:
data:
- sentences:
- "{favorite_operator} spotify {spotifyplus_media_type} [to|2|from] (favorite|favorites)"
# Base sentence phrases for this intent.
# This sentence is recognized when a name / area is NOT provided in the spoken command.
# In this case, the first active SpotifyPlus media player is used.
# __Example Phrases - Default Player__
# - "add spotify track to favorites"
# - "add spotify track favorite"
# - "remove spotify track from favorites"
# - "remove spotify track favorite"
slots:
name: "Spotify Premium" # default player to use.
is_public: False
response: default
- sentences:
- "{favorite_operator} spotify {spotifyplus_media_type} [to|2|from] (favorite|favorites) <on_spotifyplus_player_name>"
# This sentence is recognized when a player name is provided in the spoken
# command (e.g. "on player Spotify Premium", "on Todds player", etc).
# Supports the same base sentence phrases for this intent.
# __Example Phrases - By Player Name__
# - "add spotify track favorite for player spotify premium"
# - "add spotify track favorite for spotify premium player"
slots:
name: ""
is_public: False
response: default
- sentences:
- "{favorite_operator} spotify {spotifyplus_media_type} [to|2|from] (favorite|favorites) <in_spotifyplus_player_area>"
# This sentence is recognized when a player area is provided in the spoken
# command (e.g. "in the Living Room area", "in the Living Room", etc).
# Supports the same base sentence phrases for this intent.
# __Example Phrases - By Player Area__
# - "add spotify track favorite in the Office area"
# - "add spotify track favorite in the Office"
slots:
area: ""
name: ""
is_public: False
response: default
# ============================================================================
# Custom response definitions for THIS intent.
# Note - Shared responses for all intents are stored in the Common file.
# ============================================================================
responses:
intents:
SpotifyPlusFavoriteAddRemove:
default: "" # not used - see common `favorite_add_remove_xxxxxxx_ok` messages.
@@ -0,0 +1,93 @@
# ============================================================================
# SpotifyPlus Integration benutzerdefinierte Satz- und Antwortdefinitionen.
#
# Sprache: de, Deutsch
# Absicht: SpotifyPlusGetInfoArtistBio
# Ort: custom_sentences/de/spotifyplus_GetInfoArtistBio_de.yaml
# ============================================================================
language: de
intents:
SpotifyPlusGetInfoArtistBio:
data:
- sentences:
- "[hole|gib mir] spotify künstler (info|informationen|details|bio) [für|von] {artist_name}"
# Basissätze für diese Absicht.
# Dieser Satz wird erkannt, wenn kein Name / Bereich im Sprachbefehl angegeben wird.
# In diesem Fall wird der erste aktive SpotifyPlus Media Player verwendet.
# __Beispielsätze - Standard-Player__
# - "spotify künstler info für Phil Wickham"
# - "gib mir spotify künstler info von Phil Wickham"
slots:
name: "Spotify Premium" # Standard-Alias für den Media Player.
target_player: ""
artist_bio: ""
artist_name: ""
artist_title: ""
artist_url: ""
response: default
- sentences:
- "[hole|gib mir] spotify künstler (info|informationen|details|bio) [für|von] {artist_name} <on_spotifyplus_player_name>"
# Dieser Satz wird erkannt, wenn ein Player-Name im Sprachbefehl angegeben wird
# (z.B. "auf Player Spotify Premium", "auf Todds Player", etc.).
# __Beispielsätze - Nach Player-Name__
# - "gib mir spotify künstler info für Phil Wickham auf player spotify premium"
# - "hole spotify künstler info von Phil Wickham auf spotify premium player"
slots:
name: ""
target_player: ""
artist_bio: ""
artist_name: ""
artist_title: ""
artist_url: ""
response: default
- sentences:
- "[hole|gib mir] spotify künstler (info|informationen|details|bio) [für|von] {artist_name} <in_spotifyplus_player_area>"
# Dieser Satz wird erkannt, wenn ein Player-Bereich im Sprachbefehl angegeben wird
# (z.B. "im Wohnzimmer", "in der Küche", etc.).
# __Beispielsätze - Nach Player-Bereich__
# - "hole spotify künstler info für Phil Wickham im Büro"
# - "gib mir spotify künstler info von Phil Wickham im Büro"
slots:
area: ""
name: ""
target_player: ""
artist_bio: ""
artist_name: ""
artist_title: ""
artist_url: ""
response: default
# ============================================================================
# Benutzerdefinierte Antwortdefinitionen für DIESE Absicht.
# Hinweis - Geteilte Antworten für alle Absichten sind in der Common-Datei gespeichert.
# ============================================================================
responses:
intents:
SpotifyPlusGetInfoArtistBio:
default: "" # nicht verwendet - siehe allgemeine `get_info_artist_bio`-Nachricht in der common-Datei.
@@ -0,0 +1,97 @@
# ============================================================================
# SpotifyPlus Integration benutzerdefinierte Satz- und Antwortdefinitionen.
#
# Sprache: de, Deutsch
# Absicht: SpotifyPlusGetNowPlayingInfo
# Ort: custom_sentences/de/spotifyplus_GetNowPlayingInfo_de.yaml
# ============================================================================
language: de
intents:
SpotifyPlusGetNowPlayingInfo:
data:
- sentences:
- "[hole|gib mir] spotify [was läuft|aktuelle wiedergabe] {spotifyplus_media_type} (info|informationen|details)"
# Basissätze für diese Absicht.
# Dieser Satz wird erkannt, wenn kein Name / Bereich im Sprachbefehl angegeben wird.
# In diesem Fall wird der erste aktive SpotifyPlus Media Player verwendet.
# __Beispielsätze - Standard-Player__
# - "spotify was läuft album info"
# - "spotify album info"
# - "get spotify album info"
# - "spotify nowplaying artist info"
# - "spotify artist info"
# - "get spotify artist info"
# - "spotify nowplaying audiobook info"
# - "spotify audiobook info"
# - "get spotify audiobook info"
# - "spotify nowplaying playlist info"
# - "spotify playlist info"
# - "get spotify playlist info"
# - "spotify nowplaying podcast episode info"
# - "spotify podcast episode info"
# - "get spotify podcast episode info"
# - "spotify nowplaying podcast info"
# - "spotify podcast info"
# - "get spotify podcast info"
# - "spotify nowplaying track info"
# - "spotify track info"
# - "get spotify track info"
slots:
name: "Spotify Premium" # Standard-Player.
response: default
- sentences:
- "[hole|gib mir] spotify [was läuft|aktuelle wiedergabe] {spotifyplus_media_type} (info|informationen|details) <on_spotifyplus_player_name>"
# Dieser Satz wird erkannt, wenn ein Player-Name im Sprachbefehl angegeben wird
# (z.B. "auf Player Spotify Premium", "auf Todds Player", etc.).
# __Beispielsätze - Nach Player-Name__
# - "gib mir spotify künstler info für player spotify premium"
# - "hole spotify künstler informationen für spotify premium player"
slots:
name: ""
response: default
- sentences:
- "[hole|gib mir] spotify [was läuft|aktuelle wiedergabe] {spotifyplus_media_type} (info|informationen|details) <in_spotifyplus_player_area>"
# Dieser Satz wird erkannt, wenn ein Player-Bereich im Sprachbefehl angegeben wird
# (z.B. "im Wohnzimmer", "in der Küche", etc.).
# __Beispielsätze - Nach Player-Bereich__
# - "hole spotify künstler info im Büro"
# - "gib mir spotify künstler informationen im Büro"
slots:
area: ""
name: ""
response: default
# ============================================================================
# Benutzerdefinierte Antwortdefinitionen für DIESE Absicht.
# Hinweis - Geteilte Antworten für alle Absichten sind in der Common-Datei gespeichert.
# ============================================================================
responses:
intents:
SpotifyPlusGetNowPlayingInfo:
default: "" # nicht verwendet - siehe allgemeine `nowplaying_info_xxxxxxx`-Nachrichten in der common-Datei.
@@ -0,0 +1,86 @@
# ============================================================================
# SpotifyPlus Integration benutzerdefinierte Satz- und Antwortdefinitionen.
#
# Sprache: de, Deutsch
# Intent: SpotifyPlusPlayerDeckControl
# Ort: custom_sentences/de/spotifyplus_PlayerDeckControl_de.yaml
# ============================================================================
language: de
intents:
SpotifyPlusPlayerDeckControl:
data:
- sentences:
- "spotify {spotifyplus_player_deck_control}"
# Basissätze für diese Intent.
# Dieser Satz wird erkannt, wenn kein Name / Bereich im Sprachbefehl angegeben wird.
# In diesem Fall wird der erste aktive SpotifyPlus Media Player verwendet.
# __Beispielsätze - Kein Player-Name__
# - "spotify pause"
# - "spotify stopp"
# - "spotify weiter"
# - "spotify fortsetzen"
# - "spotify nächster titel"
# - "spotify vorheriger titel"
# - "spotify neustart"
slots:
name: "Spotify Premium" # Standard-Player.
delay: 0.50
response: default
- sentences:
- "spotify {spotifyplus_player_deck_control} <on_spotifyplus_player_name>"
# Dieser Satz wird erkannt, wenn ein Player-Name im Sprachbefehl angegeben wird
# (z.B. "auf Player Spotify Premium", "auf Todds Player", etc.).
# __Beispielsätze - Nach Player-Name__
# - "spotify pause auf player spotify premium"
# - "spotify stopp auf spotify premium player"
slots:
name: ""
delay: 0.50
response: default
- sentences:
- "spotify {spotifyplus_player_deck_control} <in_spotifyplus_player_area>"
# Dieser Satz wird erkannt, wenn ein Player-Bereich im Sprachbefehl angegeben wird
# (z.B. "im Wohnzimmer", "in der Küche", etc.).
# __Beispielsätze - Nach Player-Bereich__
# - "spotify pause im Büro"
# - "spotify stopp im Büro"
slots:
area: ""
name: ""
delay: 0.50
response: default
# ============================================================================
# Benutzerdefinierte Antwortdefinitionen für DIESE Intent.
# Hinweis - Geteilte Antworten für alle Intenten sind in der Common-Datei gespeichert.
# ============================================================================
responses:
intents:
SpotifyPlusPlayerDeckControl:
default: "" # nicht verwendet - siehe allgemeine `player_deck_control_xxxxxxx`-Nachrichten in der common-Datei.
@@ -0,0 +1,98 @@
# ============================================================================
# SpotifyPlus Integration benutzerdefinierte Satz- und Antwortdefinitionen.
#
# Sprache: de, Deutsch
# Absicht: SpotifyPlusPlayerSetRepeatMode
# Ort: custom_sentences/de/spotifyplus_PlayerSetRepeatMode_de.yaml
# ============================================================================
language: de
intents:
SpotifyPlusPlayerSetRepeatMode:
data:
- sentences:
- "spotify wiederholungsmodus {player_repeat_mode}"
- "spotify wiederholung {player_repeat_mode}"
# Basissätze für diese Absicht.
# Dieser Satz wird erkannt, wenn kein Name / Bereich im Sprachbefehl angegeben wird.
# In diesem Fall wird der erste aktive SpotifyPlus Media Player verwendet.
# __Example Phrases - Default Player__
# - "spotify repeat on"
# - "spotify repeat track"
# - "spotify repeat 1 track"
# - "spotify repeat single track"
# - "spotify repeat context"
# - "spotify repeat all"
# - "spotify repeat all tracks"
# - "spotify repeat list"
# - "spotify repeat off"
# - "spotify repeat disabled"
slots:
name: "Spotify Premium" # Standard-Alias für den Media Player.
delay: 0.50
player_repeat_mode: "off"
response: default_no_player
- sentences:
- "spotify wiederholungsmodus {player_repeat_mode} <on_spotifyplus_player_name>"
- "spotify wiederholung {player_repeat_mode} <on_spotifyplus_player_name>"
# Dieser Satz wird erkannt, wenn ein Player-Name im Sprachbefehl angegeben wird
# (z.B. "auf Player Spotify Premium", "auf Todds Player", etc.).
# __Beispielsätze - Nach Player-Name__
# - "spotify wiederholungsmodus titel für player spotify premium"
# - "spotify wiederholung titel für spotify premium player"
slots:
name: ""
delay: 0.50
player_repeat_mode: "off"
response: default_by_name
- sentences:
- "spotify wiederholungsmodus {player_repeat_mode} <in_spotifyplus_player_area>"
- "spotify wiederholung {player_repeat_mode} <in_spotifyplus_player_area>"
# Dieser Satz wird erkannt, wenn ein Player-Bereich im Sprachbefehl angegeben wird
# (z.B. "im Wohnzimmer", "in der Küche", etc.).
# __Beispielsätze - Nach Player-Bereich__
# - "spotify wiederholungsmodus titel im Büro"
# - "spotify wiederholung titel im Büro"
slots:
area: ""
name: ""
delay: 0.50
player_repeat_mode: "off"
response: default_by_area
# ============================================================================
# Benutzerdefinierte Antwortdefinitionen für DIESE Absicht.
# Hinweis - Geteilte Antworten für alle Absichten sind in der Common-Datei gespeichert.
# ============================================================================
responses:
intents:
SpotifyPlusPlayerSetRepeatMode:
default_by_name: "Okay, der Spotify-Wiederholungsmodus ist \"{{ slots.player_repeat_mode.text }}\" für den Player \"{{ slots.target_player.text }}\"."
default_by_area: "Okay, der Spotify-Wiederholungsmodus ist \"{{ slots.player_repeat_mode.text }}\" im Bereich \"{{ slots.target_player.text }}\"."
default_no_player: "Okay, der Spotify-Wiederholungsmodus ist \"{{ slots.player_repeat_mode.text }}\" für den Standard-Player \"{{ slots.target_player.text }}\"."
default: "Okay, der Spotify-Wiederholungsmodus ist \"{{ slots.player_repeat_mode.text }}\"."
@@ -0,0 +1,94 @@
# ============================================================================
# SpotifyPlus Integration benutzerdefinierte Satz- und Antwortdefinitionen.
#
# Sprache: de, Deutsch
# Absicht: SpotifyPlusPlayerSetShuffleMode
# Ort: custom_sentences/de/spotifyplus_PlayerSetShuffleMode_de.yaml
# ============================================================================
language: de
intents:
SpotifyPlusPlayerSetShuffleMode:
data:
- sentences:
- "spotify zufallswiedergabe [modus] {player_shuffle_mode}"
- "spotify shuffle [modus] {player_shuffle_mode}"
# Basissätze für diese Absicht.
# Dieser Satz wird erkannt, wenn kein Name / Bereich im Sprachbefehl angegeben wird.
# In diesem Fall wird der erste aktive SpotifyPlus Media Player verwendet.
# __Example Phrases - Default Player__
# - "spotify shuffle mode on"
# - "spotify shuffle mode off"
# - "spotify shuffle on"
# - "spotify shuffle off"
# - "spotify shuffle enabled"
# - "spotify shuffle disabled"
slots:
name: "Spotify Premium" # Standard-Alias für den Media Player.
delay: 0.50
player_shuffle_mode: "off"
response: default_no_player
- sentences:
- "spotify zufallswiedergabe [modus] {player_shuffle_mode} <on_spotifyplus_player_name>"
- "spotify shuffle [modus] {player_shuffle_mode} <on_spotifyplus_player_name>"
# Dieser Satz wird erkannt, wenn ein Player-Name im Sprachbefehl angegeben wird
# (z.B. "auf Player Spotify Premium", "auf Todds Player", etc.).
# __Beispielsätze - Nach Player-Name__
# - "spotify shuffle an für player spotify premium"
# - "spotify zufallswiedergabe an für spotify premium player"
slots:
name: ""
delay: 0.50
player_shuffle_mode: "off"
response: default_by_name
- sentences:
- "spotify zufallswiedergabe [modus] {player_shuffle_mode} <in_spotifyplus_player_area>"
- "spotify shuffle [modus] {player_shuffle_mode} <in_spotifyplus_player_area>"
# Dieser Satz wird erkannt, wenn ein Player-Bereich im Sprachbefehl angegeben wird
# (z.B. "im Wohnzimmer", "in der Küche", etc.).
# __Beispielsätze - Nach Player-Bereich__
# - "spotify shuffle an im Büro"
# - "spotify zufallswiedergabe an im Büro"
slots:
area: ""
name: ""
delay: 0.50
player_shuffle_mode: "off"
response: default_by_area
# ============================================================================
# Benutzerdefinierte Antwortdefinitionen für DIESE Absicht.
# Hinweis - Geteilte Antworten für alle Absichten sind in der Common-Datei gespeichert.
# ============================================================================
responses:
intents:
SpotifyPlusPlayerSetShuffleMode:
default_no_player: "Okay, der Spotify-Zufallswiedergabemodus ist \"{{ slots.player_shuffle_mode.text }}\" für den Standard-Player \"{{ slots.target_player.text }}\"."
default_by_name: "Okay, der Spotify-Zufallswiedergabemodus ist \"{{ slots.player_shuffle_mode.text }}\" für den Player \"{{ slots.target_player.text }}\"."
default_by_area: "Okay, der Spotify-Zufallswiedergabemodus ist \"{{ slots.player_shuffle_mode.text }}\" im Bereich \"{{ slots.target_player.text }}\"."
default: "Okay, der Spotify-Zufallswiedergabemodus ist \"{{ slots.player_shuffle_mode.text }}\"."
@@ -0,0 +1,92 @@
# ============================================================================
# SpotifyPlus Integration benutzerdefinierte Satz- und Antwortdefinitionen.
#
# Sprache: de, Deutsch
# Absicht: SpotifyPlusPlayerTransferPlayback
# Ort: custom_sentences/de/spotifyplus_PlayerTransferPlayback_de.yaml
# ============================================================================
language: de
intents:
SpotifyPlusPlayerTransferPlayback:
data:
- sentences:
- "spotify (wiedergabe übertragen auf|übertrage auf|wiedergabe auf) [gerät] {spotifyplus_device_names:device_name}"
- "spotify (wiedergabe übertragen auf|übertrage auf|wiedergabe auf) [gerät] {device_name}"
# Basissätze für diese Absicht.
# Dieser Satz wird erkannt, wenn kein Name / Bereich im Sprachbefehl angegeben wird.
# In diesem Fall wird der erste aktive SpotifyPlus Media Player verwendet.
# __Beispielsätze - Standard-Player__
# - "spotify wiedergabe übertragen auf gerät Bose-ST10-1"
# - "spotify übertrage auf Bose-ST10-1"
# - "spotify wiedergabe auf Bose-ST10-1"
slots:
name: "Spotify Premium" # Standard-Alias für den Media Player.
target_player: ""
delay: 0.50
device_name: "*"
response: default_no_player
- sentences:
- "spotify (wiedergabe übertragen|übertrage|wiedergabe) [auf] [gerät] {spotifyplus_device_names:device_name} <on_spotifyplus_player_name>"
- "spotify (wiedergabe übertragen|übertrage|wiedergabe) [auf] [gerät] {device_name} <on_spotifyplus_player_name>"
# Dieser Satz wird erkannt, wenn ein Player-Name im Sprachbefehl angegeben wird
# (z.B. "auf Player Spotify Premium", "auf Todds Player", etc.).
# __Beispielsätze - Nach Player-Name__
# - "spotify wiedergabe übertragen auf Bose-ST10-1 für player spotify premium"
# - "spotify übertrage auf Bose-ST10-1 für spotify premium player"
slots:
name: ""
delay: 0.50
device_name: "*"
response: default_by_name
- sentences:
- "spotify (wiedergabe übertragen|übertrage|wiedergabe) [auf] [gerät] {spotifyplus_device_names:device_name} <in_spotifyplus_player_area>"
- "spotify (wiedergabe übertragen|übertrage|wiedergabe) [auf] [gerät] {device_name} <in_spotifyplus_player_area>"
# Dieser Satz wird erkannt, wenn ein Player-Bereich im Sprachbefehl angegeben wird
# (z.B. "im Wohnzimmer", "in der Küche", etc.).
# __Beispielsätze - Nach Player-Bereich__
# - "spotify wiedergabe übertragen auf Bose-ST10-1 im Büro"
# - "spotify übertrage auf Bose-ST10-1 im Büro"
slots:
area: ""
name: ""
delay: 0.50
device_name: "*"
response: default_by_area
# ============================================================================
# Benutzerdefinierte Antwortdefinitionen für DIESE Absicht.
# Hinweis - Geteilte Antworten für alle Absichten sind in der Common-Datei gespeichert.
# ============================================================================
responses:
intents:
SpotifyPlusPlayerTransferPlayback:
default_no_player: "Okay, Wiedergabe auf Gerät \"{{ slots.device_name.text }}\" übertragen, für Standard-Player \"{{ slots.target_player.text }}\"."
default_by_name: "Okay, Wiedergabe auf Gerät \"{{ slots.device_name.text }}\" übertragen, für Player \"{{ slots.target_player.text }}\"."
default_by_area: "Okay, Wiedergabe auf Gerät \"{{ slots.device_name.text }}\" übertragen, im Bereich \"{{ slots.target_player.text }}\"."
default: "Okay, Wiedergabe auf Gerät \"{{ slots.device_name.text }}\" übertragen."
@@ -0,0 +1,89 @@
# ============================================================================
# SpotifyPlus Integration benutzerdefinierte Satz- und Antwortdefinitionen.
#
# Sprache: de, Deutsch
# Intent: SpotifyPlusPlayerVolumeControl
# Ort: custom_sentences/de/spotifyplus_PlayerVolumeControl_de.yaml
# ============================================================================
language: de
intents:
SpotifyPlusPlayerVolumeControl:
data:
- sentences:
- "[setze] spotify {spotifyplus_player_volume_control}"
# Basissätze für diese Intent.
# Dieser Satz wird erkannt, wenn kein Name / Bereich im Sprachbefehl angegeben wird.
# In diesem Fall wird der erste aktive SpotifyPlus Media Player verwendet.
# __Beispielsätze - Kein Player-Name__
# - "spotify lauter"
# - "spotify leiser"
# - "spotify stumm"
# - "spotify lautstärke auf 50 prozent"
slots:
name: "Spotify Premium" # Standard-Player.
delay: 0.50
player_volume_level_pct: 10
player_volume_step_pct: 10
response: default
- sentences:
- "[setze] spotify {spotifyplus_player_volume_control} <on_spotifyplus_player_name>"
# Dieser Satz wird erkannt, wenn ein Player-Name im Sprachbefehl angegeben wird
# (z.B. "auf Player Spotify Premium", "auf Todds Player", etc.).
# __Beispielsätze - Nach Player-Name__
# - "spotify lauter auf player spotify premium"
# - "setze spotify lautstärke auf 50 prozent auf player spotify premium"
slots:
name: ""
delay: 0.50
player_volume_level_pct: 10
player_volume_step_pct: 10
response: default
- sentences:
- "[setze] spotify {spotifyplus_player_volume_control} <in_spotifyplus_player_area>"
# Dieser Satz wird erkannt, wenn ein Player-Bereich im Sprachbefehl angegeben wird
# (z.B. "im Wohnzimmer", "in der Küche", etc.).
# __Beispielsätze - Nach Player-Bereich__
# - "spotify lauter im Büro"
# - "setze spotify lautstärke auf 50 prozent im Büro"
slots:
area: ""
name: ""
delay: 0.50
player_volume_level_pct: 10
player_volume_step_pct: 10
response: default
# ============================================================================
# Benutzerdefinierte Antwortdefinitionen für DIESE Intent.
# Hinweis - Geteilte Antworten für alle Intenten sind in der Common-Datei gespeichert.
# ============================================================================
responses:
intents:
SpotifyPlusPlayerVolumeControl:
default: "" # nicht verwendet - siehe allgemeine `player_volume_control_xxxxxxx`-Nachrichten in der common-Datei.
@@ -0,0 +1,99 @@
# ============================================================================
# SpotifyPlus Integration benutzerdefinierte Satz- und Antwortdefinitionen.
#
# Sprache: de, Deutsch
# Intent: SpotifyPlusPlaylistCreate
# Ort: custom_sentences/de/spotifyplus_PlaylistCreate_de.yaml
# ============================================================================
language: de
intents:
SpotifyPlusPlaylistCreate:
data:
- sentences:
- "spotify erstelle (playlist|wiedergabeliste) {playlist_name}"
- "erstelle spotify (playlist|wiedergabeliste) {playlist_name}"
# Basissätze für diese Intent.
# Dieser Satz wird erkannt, wenn kein Name / Bereich im Sprachbefehl angegeben wird.
# In diesem Fall wird der erste aktive SpotifyPlus Media Player verwendet.
# __Beispielsätze - Standard-Player__
# - "spotify erstelle playlist Meine neue Playlist"
# - "erstelle spotify wiedergabeliste Meine neue Playlist"
slots:
name: "Spotify Premium" # Standard-Alias für den Media Player.
target_player: ""
playlist_name: ""
description: "Erstellt durch Home Assistant Voice Assist Intent."
is_collaborative: False
is_public: False
image_path: "" # Beispiel: "www/spotifyplus/spotify_playlist_default_image.png"
response: default
- sentences:
- "spotify erstelle (playlist|wiedergabeliste) {playlist_name} <on_spotifyplus_player_name>"
- "erstelle spotify (playlist|wiedergabeliste) {playlist_name} <on_spotifyplus_player_name>"
# Dieser Satz wird erkannt, wenn ein Player-Name im Sprachbefehl angegeben wird
# (z.B. "auf Player Spotify Premium", "auf Todds Player", etc.).
# __Beispielsätze - Nach Player-Name__
# - "spotify erstelle playlist Meine neue Playlist auf player spotify premium"
# - "erstelle spotify wiedergabeliste Meine neue Playlist auf player spotify premium"
slots:
name: ""
target_player: ""
playlist_name: ""
description: "Erstellt durch Home Assistant Voice Assist Intent."
is_collaborative: False
is_public: False
image_path: "" # Beispiel: "www/spotifyplus/spotify_playlist_default_image.png"
response: default
- sentences:
- "spotify erstelle (playlist|wiedergabeliste) {playlist_name} <in_spotifyplus_player_area>"
- "erstelle spotify (playlist|wiedergabeliste) {playlist_name} <in_spotifyplus_player_area>"
# Dieser Satz wird erkannt, wenn ein Player-Bereich im Sprachbefehl angegeben wird
# (z.B. "im Wohnzimmer", "in der Küche", etc.).
# __Beispielsätze - Nach Player-Bereich__
# - "spotify erstelle playlist Meine neue Playlist im Büro"
# - "erstelle spotify wiedergabeliste Meine neue Playlist im Büro"
slots:
area: ""
name: ""
target_player: ""
playlist_name: ""
description: "Erstellt durch Home Assistant Voice Assist Intent."
is_collaborative: False
is_public: False
image_path: "" # Beispiel: "www/spotifyplus/spotify_playlist_default_image.png"
response: default
# ============================================================================
# Benutzerdefinierte Antwortdefinitionen für DIESE Intents.
# Hinweis - Geteilte Antworten für alle Intenten sind in der Common-Datei gespeichert.
# ============================================================================
responses:
intents:
SpotifyPlusPlaylistCreate:
default: "Okay, habe die Spotify-Playlist mit dem Namen \"{{ slots.playlist_title.text }}\" erstellt."
@@ -0,0 +1,167 @@
# ============================================================================
# SpotifyPlus Integration benutzerdefinierte Satz- und Antwortdefinitionen.
#
# Sprache: de, Deutsch
# Intent: SpotifyPlusSearchPlayControl
# Ort: custom_sentences/de/spotifyplus_SearchPlayControl_de.yaml
# ============================================================================
language: de
intents:
SpotifyPlusSearchPlayControl:
data:
- sentences:
# Diese Satzvorlage sollte verwendet werden, wenn mehrere Begriffe erforderlich sind.
- "spotify spiele {spotifyplus_search_play_control_multi} {freeform:criteria_arg_1} von (podcast|show) {freeform:criteria_arg_2}"
- "spotify spiele {spotifyplus_search_play_control_multi} {freeform:criteria_arg_1} von künstler {freeform:criteria_arg_2}"
- "spiele spotify {spotifyplus_search_play_control_multi} {freeform:criteria_arg_1} von (podcast|show) {freeform:criteria_arg_2}"
- "spiele spotify {spotifyplus_search_play_control_multi} {freeform:criteria_arg_1} von künstler {freeform:criteria_arg_2}"
# Diese Satzvorlage sollte verwendet werden, wenn einzelne Begriffe erforderlich sind.
- "spotify spiele {spotifyplus_search_play_control_single}"
- "spotify spiele {spotifyplus_search_play_control_single} von künstler {freeform:criteria_arg_1}"
- "spotify spiele {spotifyplus_search_play_control_single} {freeform:criteria_arg_1} [{latest_episode}]"
- "spiele spotify {spotifyplus_search_play_control_single}"
- "spiele spotify {spotifyplus_search_play_control_single} von künstler {freeform:criteria_arg_1}"
- "spiele spotify {spotifyplus_search_play_control_single} {freeform:criteria_arg_1} [{latest_episode}]"
# Basissätze für diese Absicht.
# Dieser Satz wird erkannt, wenn kein Name / Bereich im gesprochenen Befehl angegeben wird.
# In diesem Fall wird der erste aktive SpotifyPlus Media Player verwendet.
# __Beispielsätze - Standard-Player__
# - "spotify spiele künstler album Take Everything von künstler Seventh Day Slumber"
# - "spiele spotify künstler album Take Everything von künstler Seventh Day Slumber"
# - "spotify spiele künstler titel I Need You von künstler Seventh Day Slumber"
# - "spiele spotify künstler titel I Need You von künstler Seventh Day Slumber"
# - "spotify spiele episode Kurt Russell für podcast Armchair Expert with Dax Shepard"
# - "spiele spotify episode Kurt Russell für podcast Armchair Expert with Dax Shepard"
# - "spotify spiele beliebte songs von künstler test artist list entry"
# - "spiele spotify beliebte songs von künstler test artist list entry"
# - "spotify spiele favoriten titel von künstler Jeremy Camp"
# - "spiele spotify favoriten titel von künstler Jeremy Camp"
# - "spotify spiele lieblingslieder"
# - "spiele spotify lieblingslieder"
# - "spotify spiele hörbuch Test Audiobook List Entry"
# - "spiele spotify hörbuch Test Audiobook List Entry"
# - "spotify spiele hörbuch Die Elfensteine von Shannara"
# - "spiele spotify hörbuch Die Elfensteine von Shannara"
# - "spotify spiele playlist Test Playlist List Entry"
# - "spiele spotify playlist Test Playlist List Entry"
# - "spotify spiele playlist Old Christian Contemporary"
# - "spiele spotify playlist Old Christian Contemporary"
# - "spotify spiele podcast Test Podcast List Entry"
# - "spiele spotify podcast Test Podcast List Entry"
# - "spotify spiele podcast Armchair Expert with Dax Shepard"
# - "spiele spotify podcast Armchair Expert with Dax Shepard"
# - "spotify spiele podcast Armchair Expert with Dax Shepard latest episode"
# - "spiele spotify podcast Armchair Expert with Dax Shepard latest episode"
# - "spotify spiele titel Test Track List Entry"
# - "spiele spotify titel Test Track List Entry"
# - "spotify spiele titel More Of You"
# - "spiele spotify titel More Of You"
slots:
name: "Spotify Premium" # Standard-Mediaplayer-Alias.
delay: 0.50
device_name: "*"
latest_episode: "off"
limit_total: 200
player_shuffle_mode: "off"
response: default
- sentences:
# Diese Satzvorlage sollte verwendet werden, wenn mehrere Begriffe erforderlich sind.
- "spotify spiele {spotifyplus_search_play_control_multi} {freeform:criteria_arg_1} von (podcast|show) {freeform:criteria_arg_2} <on_spotifyplus_player_name>"
- "spotify spiele {spotifyplus_search_play_control_multi} {freeform:criteria_arg_1} von künstler {freeform:criteria_arg_2} <on_spotifyplus_player_name>"
- "spiele spotify {spotifyplus_search_play_control_multi} {freeform:criteria_arg_1} von (podcast|show) {freeform:criteria_arg_2} <on_spotifyplus_player_name>"
- "spiele spotify {spotifyplus_search_play_control_multi} {freeform:criteria_arg_1} von künstler {freeform:criteria_arg_2} <on_spotifyplus_player_name>"
# Diese Satzvorlage sollte verwendet werden, wenn einzelne Begriffe erforderlich sind.
- "spotify spiele {spotifyplus_search_play_control_single} <on_spotifyplus_player_name>"
- "spotify spiele {spotifyplus_search_play_control_single} von künstler {freeform:criteria_arg_1} <on_spotifyplus_player_name>"
- "spotify spiele {spotifyplus_search_play_control_single} {freeform:criteria_arg_1} [{latest_episode}] <on_spotifyplus_player_name>"
- "spiele spotify {spotifyplus_search_play_control_single} <on_spotifyplus_player_name>"
- "spiele spotify {spotifyplus_search_play_control_single} von künstler {freeform:criteria_arg_1} <on_spotifyplus_player_name>"
- "spiele spotify {spotifyplus_search_play_control_single} {freeform:criteria_arg_1} [{latest_episode}] <on_spotifyplus_player_name>"
# Dieser Satz wird erkannt, wenn ein Player-Name im gesprochenen
# Befehl angegeben wird (z.B. "auf player Spotify Premium", "auf Todds player", etc).
# Unterstützt die gleichen Basissätze für diese Absicht.
# __Beispielsätze - Nach Player-Name__
# - "spotify spiele künstler titel I Need You von künstler Seventh Day Slumber auf player spotify premium"
# - "spotify spiele titel Test Track List Entry auf player spotify premium"
# - "spotify spiele titel More Of You auf player spotify premium"
slots:
name: ""
delay: 0.50
device_name: "*"
latest_episode: "off"
limit_total: 200
player_shuffle_mode: "off"
response: default
- sentences:
# Diese Satzvorlage sollte verwendet werden, wenn mehrere Begriffe erforderlich sind.
- "spotify spiele {spotifyplus_search_play_control_multi} {freeform:criteria_arg_1} von (podcast|show) {freeform:criteria_arg_2} <in_spotifyplus_player_area>"
- "spotify spiele {spotifyplus_search_play_control_multi} {freeform:criteria_arg_1} von künstler {freeform:criteria_arg_2} <in_spotifyplus_player_area>"
- "spiele spotify {spotifyplus_search_play_control_multi} {freeform:criteria_arg_1} von (podcast|show) {freeform:criteria_arg_2} <in_spotifyplus_player_area>"
- "spiele spotify {spotifyplus_search_play_control_multi} {freeform:criteria_arg_1} von künstler {freeform:criteria_arg_2} <in_spotifyplus_player_area>"
# Diese Satzvorlage sollte verwendet werden, wenn einzelne Begriffe erforderlich sind.
- "spotify spiele {spotifyplus_search_play_control_single} <in_spotifyplus_player_area>"
- "spotify spiele {spotifyplus_search_play_control_single} von künstler {freeform:criteria_arg_1} <in_spotifyplus_player_area>"
- "spotify spiele {spotifyplus_search_play_control_single} {freeform:criteria_arg_1} [{latest_episode}] <in_spotifyplus_player_area>"
- "spiele spotify {spotifyplus_search_play_control_single} <in_spotifyplus_player_area>"
- "spiele spotify {spotifyplus_search_play_control_single} von künstler {freeform:criteria_arg_1} <in_spotifyplus_player_area>"
- "spiele spotify {spotifyplus_search_play_control_single} {freeform:criteria_arg_1} [{latest_episode}] <in_spotifyplus_player_area>"
# Dieser Satz wird erkannt, wenn ein Player-Bereich im gesprochenen
# Befehl angegeben wird (z.B. "im Wohnzimmer bereich", "im Wohnzimmer", etc).
# Unterstützt die gleichen Basissätze für diese Absicht.
# __Beispielsätze - Nach Player-Bereich__
# - "spotify spiele künstler titel I Need You von künstler Seventh Day Slumber im Büro bereich"
# - "spotify spiele titel Test Track List Entry im Büro bereich"
# - "spotify spiele titel More Of You im Büro bereich"
slots:
area: ""
name: ""
delay: 0.50
device_name: "*"
latest_episode: "off"
limit_total: 200
player_shuffle_mode: "off"
response: default
# ============================================================================
# Benutzerdefinierte Antwortdefinitionen für DIESE Intent.
# Hinweis - Geteilte Antworten für alle Intenten sind in der Common-Datei gespeichert.
# ============================================================================
responses:
intents:
SpotifyPlusSearchPlayControl:
default: "" # nicht verwendet - siehe allgemeine `play_xxxxx`-Nachricht in der common-Datei.
@@ -0,0 +1,460 @@
# ============================================================================
# SpotifyPlus Integration allgemeine Antworten, Listen, Erweiterungsregeln, etc.
#
# Ort: custom_sentences/de/spotifyplus_common_de.yaml
# Sprache: de, Deutsch
# ============================================================================
language: de
responses:
# ============================================================================
# SpotifyPlus Plattform-Antworten.
#
# Beachten Sie, dass die HA-Konversationsintegration dieses Konzept nicht versteht,
# da diese Funktionalität einzigartig für UNSERE Integration ist. Daher müssen Sie
# die Integration neu laden (oder HA neu starten), damit Änderungen an diesen
# Nachrichten wirksam werden.
# ============================================================================
spotifyplus:
# Allgemeine Fehlermeldungen.
error_unhandled: "Ein unerwarteter Fehler ist aufgetreten:\n\n{{ slots.error_info.text }}"
error_failed_to_handle: "Absicht konnte nicht verarbeitet werden:\n\n{{ slots.error_info.text }}"
error_media_type_invalid: "Medientyp-Wert \"{{ slots.spotifyplus_media_type.text }}\" ({{ slots.spotifyplus_media_type.value }}) wurde nicht erkannt."
error_player_deck_control_invalid: "Player-Steuerungswert \"{{ slots.spotifyplus_player_deck_control.text }}\" ({{ slots.spotifyplus_player_deck_control.value }}) wurde nicht erkannt."
error_player_volume_control_invalid: "Player-Lautstärkereglerwert \"{{ slots.spotifyplus_player_volume_control.text }}\" ({{ slots.spotifyplus_player_volume_control.value }}) wurde nicht erkannt."
error_search_play_control_invalid: "Such-Wiedergabe-Steuerungswert \"{{ slots.spotifyplus_search_play_control.text }}\" ({{ slots.spotifyplus_search_play_control.value }}) wurde nicht erkannt."
error_search_no_criteria: "Suchkriterien nicht angegeben für Such-Wiedergabe-Steuerungstyp \"{{ slots.spotifyplus_search_play_control.text }}\" ({{ slots.spotifyplus_search_play_control.value }})."
# Nachrichten zu Informationsanfragen.
get_info_artist_bio: "Künstlerbiografie für \"{{ slots.artist_title.text }}\" ... \n\n{{ slots.artist_bio.text | truncate(400, end=' ...') }}\n\n[mehr Infos unter {{ slots.artist_url.text }}]({{ slots.artist_url.value }})"
# Nachrichten zur Favoritenverwaltung.
favorite_operation_invalid: "Favoriten-Operationstyp war ungültig: \"{{ slots.favorite_operator.text }}\"."
favorite_add_remove_album_ok: "Okay, {{ slots.favorite_operator.text }} des Spotify-Albumfavoriten \"{{ slots.album_title.text }}\" von Künstler \"{{ slots.artist_title.text }}\" war erfolgreich."
favorite_add_remove_artist_ok: "Okay, {{ slots.favorite_operator.text }} des Spotify-Künstlerfavoriten \"{{ slots.artist_title.text }}\" war erfolgreich."
favorite_add_remove_audiobook_ok: "Okay, {{ slots.favorite_operator.text }} des Spotify-Hörbuchfavoriten \"{{ slots.audiobook_title.text }}\" von Autor \"{{ slots.author_title.text }}\" war erfolgreich."
favorite_add_remove_playlist_ok: "Okay, {{ slots.favorite_operator.text }} des Spotify-Playlistfavoriten \"{{ slots.playlist_title.text }}\" war erfolgreich."
favorite_add_remove_podcast_ok: "Okay, {{ slots.favorite_operator.text }} des Spotify-Podcastfavoriten \"{{ slots.podcast_title.text }}\" war erfolgreich."
favorite_add_remove_podcast_episode_ok: "Okay, {{ slots.favorite_operator.text }} des Spotify-Episodenfavoriten \"{{ slots.episode_title.text }}\" aus Podcast \"{{ slots.podcast_title.text }}\" war erfolgreich."
favorite_add_remove_track_ok: "Okay, {{ slots.favorite_operator.text }} des Spotify-Titelfavoriten \"{{ slots.track_title.text }}\" von Künstler \"{{ slots.artist_title.text }}\" war erfolgreich."
# Nachrichten zu "Jetzt läuft"-Informationen.
nowplaying_info_album: "Media Player spielt einen Titel vom Album \"{{ slots.album_title.text }}\" von Künstler \"{{ slots.artist_title.text }}\".\n\n[mehr Infos unter {{ slots.album_url.text }}]({{ slots.album_url.value }})"
nowplaying_info_audiobook: "Media Player spielt \"{{ slots.chapter_title.text }}\" aus dem Hörbuch \"{{ slots.audiobook_title.text }}\" von Autor \"{{ slots.author_title.text }}\".\n\n[mehr Infos unter {{ slots.audiobook_url.text }}]({{ slots.audiobook_url.value }})"
nowplaying_info_playlist: "Media Player spielt einen Titel aus der Playlist \"{{ slots.playlist_title.text }}\".\n\n[mehr Infos unter {{ slots.playlist_url.text }}]({{ slots.playlist_url.value }})"
nowplaying_info_podcast: "Media Player spielt die Episode \"{{ slots.episode_title.text }}\" aus dem Podcast \"{{ slots.podcast_title.text }}\".\n\n[mehr Infos unter {{ slots.podcast_url.text }}]({{ slots.podcast_url.value }})"
nowplaying_info_podcast_episode: "Media Player spielt die Episode \"{{ slots.episode_title.text }}\" aus dem Podcast \"{{ slots.podcast_title.text }}\".\n\n[mehr Infos unter {{ slots.episode_url.text }}]({{ slots.episode_url.value }})"
nowplaying_info_track: "Media Player spielt den Titel \"{{ slots.track_title.text }}\" vom Album \"{{ slots.album_title.text }}\" von Künstler \"{{ slots.artist_title.text }}\".\n\n[mehr Infos unter {{ slots.album_url.text }}]({{ slots.album_url.value }})"
nowplaying_no_media_album: "SpotifyPlus Media Player spielt derzeit keine Medien, die Album-Informationen enthalten."
nowplaying_no_media_artist: "SpotifyPlus Media Player spielt derzeit keine Medien, die Künstler-Informationen enthalten."
nowplaying_no_media_audiobook: "SpotifyPlus Media Player spielt derzeit keine Medien, die Hörbuch-Informationen enthalten."
nowplaying_no_media_playlist: "SpotifyPlus Media Player spielt derzeit keine Medien, die Playlist-Informationen enthalten."
nowplaying_no_media_podcast: "SpotifyPlus Media Player spielt derzeit keine Medien, die Podcast-Informationen enthalten."
nowplaying_no_media_podcast_episode: "SpotifyPlus Media Player spielt derzeit keine Medien, die Podcast-Episoden-Informationen enthalten."
nowplaying_no_media_track: "SpotifyPlus Media Player spielt derzeit keine Medien, die Titel-Informationen enthalten."
# Media-Player-bezogene Nachrichten.
play_album_with_artist: "Spiele Spotify-Album \"{{ slots.album_title.text }}\" von Künstler \"{{ slots.artist_title.text }}\"."
play_album: "Spiele Spotify-Album \"{{ slots.album_title.text }}\"."
play_audiobook: "Spiele Spotify-Hörbuch \"{{ slots.audiobook_title.text }}\"."
play_audiobook_with_author: "Spiele Spotify-Hörbuch \"{{ slots.audiobook_title.text }}\" von Autor \"{{ slots.author_title.text }}\"."
play_favorite_tracks: "Spiele Spotify-Favoriten."
play_favorite_tracks_for_artist: "Spiele Spotify-Favoriten für Künstler \"{{ slots.artist_title.text }}\"."
play_playlist: "Spiele Spotify-Playlist \"{{ slots.playlist_title.text }}\"."
play_podcast: "Spiele Spotify-Podcast \"{{ slots.podcast_title.text }}\"."
play_podcast_episode: "Spiele Spotify-Episode \"{{ slots.episode_title.text }}\" aus Podcast \"{{ slots.podcast_title.text }}\"."
play_track_with_artist: "Spiele Spotify-Titel \"{{ slots.track_title.text }}\" von Künstler \"{{ slots.artist_title.text }}\"."
play_track: "Spiele Spotify-Titel \"{{ slots.track_title.text }}\"."
player_already_playing_media: "Media Player \"{{ slots.target_player.text }}\" spielt bereits Medien ab."
player_deck_control_pause: "Okay, Spotify hat die Wiedergabe pausiert."
player_deck_control_resume: "Okay, Spotify hat die Wiedergabe fortgesetzt."
player_deck_control_seek_start: "Okay, Spotify hat den Titel neu gestartet."
player_deck_control_skip_next: "Okay, Spotify hat zum nächsten Titel gesprungen."
player_deck_control_skip_previous: "Okay, Spotify hat zum vorherigen Titel gesprungen."
player_features_not_supported: "Media Player \"{{ slots.name.text }}\" unterstützt die für diese Anfrage erforderlichen Funktionen nicht: \"{{ slots.error_features.text }}\"."
player_not_exposed_to_voice: "Media Player \"{{ slots.target_player.text }}\" wurde nicht für den Sprachassistenten freigegeben."
player_not_matched: "SpotifyPlus Media Player konnte mit \"{{ slots.target_player.text }}\" nicht gefunden werden."
player_not_matched_area: "SpotifyPlus Media Player konnte für den Bereich \"{{ slots.area.text }}\" nicht gefunden werden."
player_not_playing_media: "Media Player \"{{ slots.target_player.text }}\" spielt derzeit keine Medien ab."
player_not_spotifyplus: "Der gefundene Media Player \"{{ slots.target_player.text }}\" ist kein SpotifyPlus Media Player."
player_volume_control_down: "Okay, die Spotify-Lautstärke wurde um {{ slots.player_volume_step_pct.text }} Prozent verringert."
player_volume_control_mute: "Okay, die Spotify-Lautstärke wurde stummgeschaltet."
player_volume_control_set_step_level: "Okay, die Spotify-Lautstärkeschrittweite ist {{ slots.player_volume_step_pct.text }} Prozent."
player_volume_control_set_level: "Okay, die Spotify-Lautstärke wurde auf {{ slots.player_volume_level_pct.text }} Prozent eingestellt."
player_volume_control_unmute: "Okay, die Spotify-Lautstärke wurde wiederhergestellt."
player_volume_control_up: "Okay, die Spotify-Lautstärke wurde um {{ slots.player_volume_step_pct.text }} Prozent erhöht."
playlist_created: "Okay, habe die Spotify-Playlist mit dem Namen \"{{ slots.playlist_title.text }}\" erstellt.\n\n[mehr Infos unter {{ slots.playlist_url.text }}]({{ slots.playlist_url.value }})"
# Allgemeine Spotify-Informationsnachrichten.
spotify_no_artist_info: "Künstlerinformationen für \"{{ slots.artist_name.text }}\" konnten nicht gefunden werden."
spotify_search_no_items_album: "Albuminformationen für \"{{ slots.criteria_arg_1.text }}\" konnten nicht gefunden werden. Suchkriterien: \"{{ slots.search_criteria.text }}\"."
spotify_search_no_items_audiobook: "Hörbuch-Informationen für \"{{ slots.criteria_arg_1.text }}\" konnten nicht gefunden werden. Suchkriterien: \"{{ slots.search_criteria.text }}\"."
spotify_search_no_items_playlist: "Playlist-Informationen für \"{{ slots.criteria_arg_1.text }}\" konnten nicht gefunden werden. Suchkriterien: \"{{ slots.search_criteria.text }}\"."
spotify_search_no_items_podcast: "Podcast-Informationen für \"{{ slots.criteria_arg_1.text }}\" konnten nicht gefunden werden. Suchkriterien: \"{{ slots.search_criteria.text }}\"."
spotify_search_no_items_podcast_episode: "Episodeninformationen für \"{{ slots.criteria_arg_1.text }}\" konnten nicht gefunden werden. Suchkriterien: \"{{ slots.search_criteria.text }}\"."
spotify_search_no_items_track: "Titelinformationen für \"{{ slots.criteria_arg_1.text }}\" konnten nicht gefunden werden. Suchkriterien: \"{{ slots.search_criteria.text }}\"."
spotify_premium_required: "Entschuldigung, für die angeforderte Funktion mit dem Media Player \"{{ slots.target_player.text }}\" ist ein Spotify-Premium-Konto erforderlich."
# ============================================================================
# SpotifyPlus generic responses.
#
# Note that the HA conversation integration does not understand this concept,
# as this functionality is unique to OUR integration. With that said, you
# must reload the integration (or restart HA) in order for changes to take
# effect for these messages.
# ============================================================================
generic-response-1: "This is generic response message 1"
generic-response-2: "This is generic response message 2"
generic-response-3: "This is generic response message 3"
# ============================================================================
# Home Assistant error responses.
#
# The values here will override HA built-in error responses.
# They are purposefully designed to be as generic as possible, as they cover
# multiple domain / platform types.
# ============================================================================
errors:
# Allgemeine Fehler.
no_intent: "Entschuldigung, das habe ich nicht verstanden."
handle_error: "Ein unerwarteter Fehler ist aufgetreten."
# Fehler bei der Intent-Zuordnung, wenn Ziele nicht aufgelöst werden können.
no_area: "Entschuldigung, ich kenne keinen Bereich namens \"{{ area }}\"."
no_floor: "Entschuldigung, ich kenne keine Etage namens \"{{ floor }}\"."
no_domain: "Entschuldigung, ich kenne keine \"{{ domain.replace('_', ' ') }}\"."
no_domain_in_area: "Entschuldigung, ich kenne keine \"{{ domain.replace('_', ' ') }}\" im Bereich \"{{ area }}\"."
no_domain_in_floor: "Entschuldigung, ich kenne keine \"{{ domain.replace('_', ' ') }}\" auf der Etage \"{{ floor }}\"."
no_device_class: "Entschuldigung, ich kenne keine \"{{ device_class }}\"."
no_device_class_in_area: "Entschuldigung, ich kenne keine \"{{ device_class }}\" im Bereich \"{{ area }}\"."
no_device_class_in_floor: "Entschuldigung, ich kenne keine \"{{ device_class }}\" auf der Etage \"{{ floor }}\"."
no_entity: "Entschuldigung, ich kenne kein Gerät namens \"{{ entity }}\"."
no_entity_in_area: "Entschuldigung, ich kenne kein Gerät namens \"{{ entity }}\" im Bereich \"{{ area }}\"."
no_entity_in_floor: "Entschuldigung, ich kenne kein Gerät namens \"{{ entity }}\" auf der Etage \"{{ floor }}\"."
entity_wrong_state: "Entschuldigung, kein Gerät ist {{ state | lower }}."
feature_not_supported: "Entschuldigung, kein Gerät unterstützt die erforderlichen Funktionen."
# Fehler bei der Intent-Zuordnung, wenn Ziele aufgelöst werden können, aber nicht für den Sprachassistenten freigegeben sind.
no_entity_exposed: "Entschuldigung, \"{{ entity }}\" ist nicht für den Sprachassistenten freigegeben."
no_entity_in_area_exposed: "Entschuldigung, \"{{ entity }}\" im Bereich \"{{ area }}\" ist nicht für den Sprachassistenten freigegeben."
no_entity_in_floor_exposed: "Entschuldigung, \"{{ entity }}\" auf der Etage \"{{ floor }}\" ist nicht für den Sprachassistenten freigegeben."
no_domain_exposed: "Entschuldigung, keine \"{{ domain.replace('_', ' ') }}\" ist für den Sprachassistenten freigegeben."
no_domain_in_area_exposed: "Entschuldigung, keine \"{{ domain.replace('_', ' ') }}\" im Bereich \"{{ area }}\" ist für den Sprachassistenten freigegeben."
no_domain_in_floor_exposed: "Entschuldigung, keine \"{{ domain.replace('_', ' ') }}\" auf der Etage \"{{ floor }}\" ist für den Sprachassistenten freigegeben."
no_device_class_exposed: "Entschuldigung, keine \"{{ device_class }}\" ist für den Sprachassistenten freigegeben."
no_device_class_in_area_exposed: "Entschuldigung, keine \"{{ device_class }}\" im Bereich \"{{ area }}\" ist für den Sprachassistenten freigegeben."
no_device_class_in_floor_exposed: "Entschuldigung, keine \"{{ device_class }}\" auf der Etage \"{{ floor }}\" ist für den Sprachassistenten freigegeben."
# Fehler bei der Intent-Zuordnung, wenn mehrere (freigegebene) Geräte denselben Namen haben.
duplicate_entities: "Entschuldigung, es gibt mehrere Geräte namens \"{{ entity }}\"."
duplicate_entities_in_area: "Entschuldigung, es gibt mehrere Geräte namens \"{{ entity }}\" im Bereich \"{{ area }}\"."
duplicate_entities_in_floor: "Entschuldigung, es gibt mehrere Geräte namens \"{{ entity }}\" auf der Etage \"{{ floor }}\"."
# ============================================================================
# SpotifyPlus gemeinsame Listen
# ============================================================================
lists:
freeform:
wildcard: true
album_name:
wildcard: true
artist_name:
wildcard: true
device_name:
wildcard: true
playlist_name:
wildcard: true
track_name:
wildcard: true
favorite_operator:
# out-Werte müssen englische Werte sein.
values:
- in: "(hinzufügen|add)"
out: "add"
- in: "(entfernen|remove)"
out: "remove"
latest_episode:
# out values must be English value.
values:
- in: "(latest|current) episode"
out: "on"
- in: ""
out: "off"
player_repeat_mode:
# out-Werte müssen englische Werte sein.
values:
- in: "(an|ein|titel)"
out: "track"
- in: "(kontext|alle|liste)"
out: "context"
- in: "(aus|deaktiviert)"
out: "off"
player_shuffle_mode:
# out-Werte müssen englische Werte sein.
values:
- in: "(an|ein|aktiviert)"
out: "on"
- in: "(aus|deaktiviert)"
out: "off"
player_volume_level:
values:
- in: (max|maximum|höchste)
out: 100
- in: (min|minimum|niedrigste)
out: 1
player_volume_level_pct:
range:
type: "percentage"
from: 0
to: 100
player_volume_step_pct:
range:
type: "percentage"
from: 1
to: 100
spotifyplus_media_type:
# out-Werte müssen englische Werte sein.
values:
- in: "album"
out: "album"
- in: "künstler"
out: "artist"
- in: "hörbuch"
out: "audiobook"
- in: "playlist"
out: "playlist"
- in: "(podcast|show) episode"
out: "episode"
- in: "(podcast|show)"
out: "podcast"
- in: "(titel|lied|song)"
out: "track"
spotifyplus_player_deck_control:
# out-Werte müssen englische Werte sein.
values:
- in: "(pause|stopp)"
out: "pause"
- in: "(fortsetzen|start)"
out: "resume"
- in: "(neustart|von vorne)"
out: "seek_start"
- in: "(nächster|weiter)"
out: "skip_next"
- in: "(vorheriger|zurück)"
out: "skip_previous"
spotifyplus_player_volume_control:
# out-Werte müssen englische Werte sein.
values:
- in: "stumm"
out: "mute"
- in: "laut"
out: "unmute"
- in: "leiser"
out: "step_down"
- in: "lauter"
out: "step_up"
- in: "lautstärke schritt auf {player_volume_step_pct} [prozent|%]"
out: "set_step_level"
- in: "lautstärke auf {player_volume_level_pct} [prozent|%]"
out: "set_level"
spotifyplus_search_play_control_multi:
# out-Werte müssen englische Werte sein.
values:
- in: "episode"
out: "podcast_episode"
- in: "künstler album"
out: "artist_album"
- in: "künstler (titel|lied|song)"
out: "artist_track"
spotifyplus_search_play_control_single:
# out-Werte müssen englische Werte sein.
values:
- in: "album [{spotifyplus_album_names:criteria_arg_1}]"
out: "album"
- in: "hörbuch [{spotifyplus_audiobook_names:criteria_arg_1}]"
out: "audiobook"
- in: "playlist [{spotifyplus_playlist_names:criteria_arg_1}]"
out: "playlist"
- in: "(podcast|show) [{spotifyplus_podcast_names:criteria_arg_1}] [{latest_episode}]"
out: "podcast"
- in: "(beliebte songs|beliebte lieder|Favoriten Titel)"
out: "favorite_tracks"
- in: "(beliebte songs|beliebte lieder|Favoriten Titel) von künstler {spotifyplus_artist_names:criteria_arg_1}"
out: "favorite_tracks_artist"
- in: "(titel|lied|song) [{spotifyplus_track_names:criteria_arg_1}]"
out: "track"
# --------------------------------------------------------------------------------------
# SpotifyPlus sprachfreundliche Album-Identifikatoren.
#
# Diese Liste wird hauptsächlich verwendet, um Spotify-Alben zu identifizieren, die
# bei einem gesprochenen Satz falsch interpretiert werden, oder wenn Sie ein
# bestimmtes Album von mehreren Album-Versionen wünschen.
#
# in: Sprachfreundlicher Identifikator.
# out: Spotify-Album-URI-Wert.
# --------------------------------------------------------------------------------------
spotifyplus_album_names:
values:
- in: "Test Listeneintrag"
out: "spotify:album:4guAwaniEAEQSW0NCpo4gm" # Journey, 2022 Remaster
- in: "Escape"
out: "spotify:album:4guAwaniEAEQSW0NCpo4gm" # Journey, 2022 Remaster
- in: "Escape 1981"
out: "spotify:album:0gHmMKZ9s3ztqeMfAzwxRL" # Journey, 1981 Live, Escape Tour
# --------------------------------------------------------------------------------------
# SpotifyPlus sprachfreundliche Künstler-Identifikatoren.
#
# Diese Liste wird hauptsächlich verwendet, um Spotify-Künstler zu identifizieren, die
# bei einem gesprochenen Satz falsch interpretiert werden, oder wenn Sie einen
# bestimmten Künstler von mehreren Künstler-Versionen wünschen.
#
# in: Sprachfreundlicher Identifikator.
# out: Spotify-Künstler-URI-Wert.
# --------------------------------------------------------------------------------------
spotifyplus_artist_names:
values:
- in: "Test Listeneintrag"
out: "spotify:artist:6kFLnclYFc3gzpNt13wim5" # Seventh Day Slumber
# --------------------------------------------------------------------------------------
# SpotifyPlus sprachfreundliche Hörbuch-Identifikatoren.
#
# Diese Liste wird hauptsächlich verwendet, um Spotify-Hörbücher zu identifizieren, die
# bei einem gesprochenen Satz falsch interpretiert werden, oder wenn Sie ein
# bestimmtes Hörbuch von mehreren Hörbuch-Versionen wünschen.
#
# in: Sprachfreundlicher Identifikator.
# out: Spotify-Hörbuch-URI-Wert.
# --------------------------------------------------------------------------------------
spotifyplus_audiobook_names:
values:
- in: "Test Listeneintrag"
out: "spotify:show:74aydHJKgYz3AIq3jjBSv1"
# --------------------------------------------------------------------------------------
# SpotifyPlus sprachfreundliche Gerätenamen-Identifikatoren.
#
# Diese Liste wird verwendet, um Spotify Connect-Gerätenamen zu identifizieren.
# Diese sollten mit dem übereinstimmen, was im `source_list`-Attribut des Media Players steht.
#
# in: Sprachfreundlicher Identifikator.
# out: SpotifyPlus media_player source_list Eintrag.
# --------------------------------------------------------------------------------------
spotifyplus_device_names:
values:
- in: "Büro"
out: "Office Speaker"
# --------------------------------------------------------------------------------------
# SpotifyPlus sprachfreundliche Playlist-Identifikatoren.
#
# Diese Liste wird hauptsächlich verwendet, um algorithmische Spotify-Playlists zu
# identifizieren, die von der Spotify Web API seit dem 27.11.2024 nicht mehr
# zurückgegeben werden können.
#
# in: Sprachfreundlicher Identifikator.
# out: Spotify-Playlist-URI-Wert.
# --------------------------------------------------------------------------------------
spotifyplus_playlist_names:
values:
- in: "Test Listeneintrag"
out: "spotify:playlist:37i9dQZEVXcTh0pBxo9pZe"
- in: "(Daily Mix|Tagesmix) (1|eins)"
out: "spotify:playlist:37i9dQZF1E39vTG3GurFPW"
- in: "(Daily Mix|Tagesmix) (2|zwei)"
out: "spotify:playlist:37i9dQZF1E39DIjrju3A9t"
- in: "(Daily Mix|Tagesmix) (3|drei)"
out: "spotify:playlist:37i9dQZF1E36yv9pXdC1Mb"
- in: "(Daily Mix|Tagesmix) (4|vier)"
out: "spotify:playlist:37i9dQZF1E35Ejqg6yJW0p"
- in: "(Daily Mix|Tagesmix) (5|fünf)"
out: "spotify:playlist:37i9dQZF1E35nVVgp8iMex"
- in: "Mix der Woche"
out: "spotify:playlist:37i9dQZEVXcTh0pBxo9pZe"
- in: "(DJ|deejay|dee jay)"
out: "spotify:playlist:37i9dQZF1EYkqdzj48dyYq"
# --------------------------------------------------------------------------------------
# SpotifyPlus sprachfreundliche Podcast-Identifikatoren.
#
# Diese Liste wird hauptsächlich verwendet, um Spotify-Podcasts zu identifizieren, die
# bei einem gesprochenen Satz falsch interpretiert werden, oder wenn Sie einen
# bestimmten Podcast von mehreren Podcast-Versionen wünschen.
#
# in: Sprachfreundlicher Identifikator.
# out: Spotify-Podcast-URI-Wert.
# --------------------------------------------------------------------------------------
spotifyplus_podcast_names:
values:
- in: "Test Listeneintrag"
out: "spotify:show:6kAsbP8pxwaU2kPibKTuHE"
# --------------------------------------------------------------------------------------
# SpotifyPlus sprachfreundliche Titel-Identifikatoren.
#
# Diese Liste wird hauptsächlich verwendet, um Spotify-Titel zu identifizieren, die
# bei einem gesprochenen Satz falsch interpretiert werden, oder wenn Sie einen
# bestimmten Titel von mehreren Titel-Versionen wünschen.
#
# in: Sprachfreundlicher Identifikator.
# out: Spotify-Titel-URI-Wert.
# --------------------------------------------------------------------------------------
spotifyplus_track_names:
values:
- in: "Test Listeintrag"
out: "spotify:track:5ehcf6UL1TkwozB386cRAp" # Journey, 2024 Remaster, Don't Stop believin'
- in: "Don't Stop Believing"
out: "spotify:track:5ehcf6UL1TkwozB386cRAp" # Journey, 2024 Remaster
- in: "Don't Stop Believing 1981"
out: "spotify:track:3Ab9C0oz70wDyigunvnG5N" # Journey, 1981 Live, Escape Tour
# ============================================================================
# SpotifyPlus gemeinsame Erweiterungsregeln
# ============================================================================
expansion_rules:
in_spotifyplus_player_area: "in [dem|der|im] ({area}|bereich {area})"
on_spotifyplus_player_name: "auf [dem] ({name} player|player {name})"
# ============================================================================
# SpotifyPlus gemeinsame zu ignorierende Wörter
# ============================================================================
skip_words:
- "bitte"
- "kannst du"
- "könntest du"
- "würdest du"
- "für mich"
- "ich möchte"
- "ich will"
- "der"
- "die"
- "das"
- "den"
- "dem"
- "des"
- "ein"
- "eine"
- "einen"
- "einem"
- "eines"
@@ -0,0 +1,85 @@
# ============================================================================
# SpotifyPlus integration intent custom sentence and response definitions.
#
# Language: en, English
# Intent: SpotifyPlusFavoriteAddRemove
# Location: custom_sentences/en/spotifyplus_FavoriteAddRemove_en.yaml
# ============================================================================
language: en
intents:
SpotifyPlusFavoriteAddRemove:
data:
- sentences:
- "{favorite_operator} spotify {spotifyplus_media_type} [to|2|from] (favorite|favorites)"
# Base sentence phrases for this intent.
# This sentence is recognized when a name / area is NOT provided in the spoken command.
# In this case, the first active SpotifyPlus media player is used.
# __Example Phrases - Default Player__
# - "add spotify track to favorites"
# - "add spotify track favorite"
# - "remove spotify track from favorites"
# - "remove spotify track favorite"
slots:
name: "Spotify Premium" # default player to use.
is_public: False
response: default
- sentences:
- "{favorite_operator} spotify {spotifyplus_media_type} [to|2|from] (favorite|favorites) <on_spotifyplus_player_name>"
# This sentence is recognized when a player name is provided in the spoken
# command (e.g. "on player Spotify Premium", "on Todds player", etc).
# Supports the same base sentence phrases for this intent.
# __Example Phrases - By Player Name__
# - "add spotify track favorite for player spotify premium"
# - "add spotify track favorite for spotify premium player"
slots:
name: ""
is_public: False
response: default
- sentences:
- "{favorite_operator} spotify {spotifyplus_media_type} [to|2|from] (favorite|favorites) <in_spotifyplus_player_area>"
# This sentence is recognized when a player area is provided in the spoken
# command (e.g. "in the Living Room area", "in the Living Room", etc).
# Supports the same base sentence phrases for this intent.
# __Example Phrases - By Player Area__
# - "add spotify track favorite in the Office area"
# - "add spotify track favorite in the Office"
slots:
area: ""
name: ""
is_public: False
response: default
# ============================================================================
# Custom response definitions for THIS intent.
# Note - Shared responses for all intents are stored in the Common file.
# ============================================================================
responses:
intents:
SpotifyPlusFavoriteAddRemove:
default: "" # not used - see common `favorite_add_remove_xxxxxxx_ok` messages.
@@ -0,0 +1,95 @@
# ============================================================================
# SpotifyPlus integration intent custom sentence and response definitions.
#
# Language: en, English
# Intent: SpotifyPlusGetInfoArtistBio
# Location: custom_sentences/en/spotifyplus_GetInfoArtistBio_en.yaml
# ============================================================================
language: en
intents:
SpotifyPlusGetInfoArtistBio:
data:
- sentences:
- "[get] spotify artist (info|information|details|bio) [for|4] {artist_name}"
# Base sentence phrases for this intent.
# This sentence is recognized when a name / area is NOT provided in the spoken command.
# In this case, the first active SpotifyPlus media player is used.
# __Example Phrases - Default Player__
# - "spotify artist info for Phil Wickham"
# - "get spotify artist info for Phil Wickham"
slots:
name: "Spotify Premium" # default media player alias.
target_player: ""
artist_bio: ""
artist_name: ""
artist_title: ""
artist_url: ""
response: default
- sentences:
- "[get] spotify artist (info|information|details|bio) [for|4] {artist_name} <on_spotifyplus_player_name>"
# This sentence is recognized when a player name is provided in the spoken
# command (e.g. "on player Spotify Premium", "on Todds player", etc).
# Supports the same base sentence phrases for this intent.
# __Example Phrases - By Player Name__
# - "get spotify artist info for Phil Wickham on player spotify premium"
# - "get spotify artist info for Phil Wickham on spotify premium player"
slots:
name: ""
target_player: ""
artist_bio: ""
artist_name: ""
artist_title: ""
artist_url: ""
response: default
- sentences:
- "[get] spotify artist (info|information|details|bio) [for|4] {artist_name} <in_spotifyplus_player_area>"
# This sentence is recognized when a player area is provided in the spoken
# command (e.g. "in the Living Room area", "in the Living Room", etc).
# Supports the same base sentence phrases for this intent.
# __Example Phrases - By Player Area__
# - "get spotify artist info for Phil Wickham in the Office area"
# - "get spotify artist info for Phil Wickham in the Office"
slots:
area: ""
name: ""
target_player: ""
artist_bio: ""
artist_name: ""
artist_title: ""
artist_url: ""
response: default
# ============================================================================
# Custom response definitions for THIS intent.
# Note - Shared responses for all intents are stored in the Common file.
# ============================================================================
responses:
intents:
SpotifyPlusGetInfoArtistBio:
default: "" # not used - see common `get_info_artist_bio` message.
@@ -0,0 +1,100 @@
# ============================================================================
# SpotifyPlus integration intent custom sentence and response definitions.
#
# Language: en, English
# Intent: SpotifyPlusGetNowPlayingInfo
# Location: custom_sentences/en/spotifyplus_GetNowPlayingInfo_en.yaml
# ============================================================================
language: en
intents:
SpotifyPlusGetNowPlayingInfo:
data:
- sentences:
- "[get] spotify [nowplaying|now playing] {spotifyplus_media_type} (info|information|details)"
# Base sentence phrases for this intent.
# This sentence is recognized when a name / area is NOT provided in the spoken command.
# In this case, the first active SpotifyPlus media player is used.
# __Example Phrases - Default Player__
# - "spotify nowplaying album info"
# - "spotify album info"
# - "get spotify album info"
# - "spotify nowplaying artist info"
# - "spotify artist info"
# - "get spotify artist info"
# - "spotify nowplaying audiobook info"
# - "spotify audiobook info"
# - "get spotify audiobook info"
# - "spotify nowplaying playlist info"
# - "spotify playlist info"
# - "get spotify playlist info"
# - "spotify nowplaying podcast episode info"
# - "spotify podcast episode info"
# - "get spotify podcast episode info"
# - "spotify nowplaying podcast info"
# - "spotify podcast info"
# - "get spotify podcast info"
# - "spotify nowplaying track info"
# - "spotify track info"
# - "get spotify track info"
slots:
name: "Spotify Premium" # default player to use.
response: default
- sentences:
- "[get] spotify [nowplaying|now playing] {spotifyplus_media_type} (info|information|details) <on_spotifyplus_player_name>"
# This sentence is recognized when a player name is provided in the spoken
# command (e.g. "on player Spotify Premium", "on Todds player", etc).
# Supports the same base sentence phrases for this intent.
# __Example Phrases - By Player Name__
# - "get spotify artist info for player spotify premium"
# - "get spotify artist info for spotify premium player"
slots:
name: ""
response: default
- sentences:
- "[get] spotify [nowplaying|now playing] {spotifyplus_media_type} (info|information|details) <in_spotifyplus_player_area>"
# This sentence is recognized when a player area is provided in the spoken
# command (e.g. "in the Living Room area", "in the Living Room", etc).
# Supports the same base sentence phrases for this intent.
# __Example Phrases - By Player Area__
# - "get spotify artist info in the Office area"
# - "get spotify artist info in the Office"
slots:
area: ""
name: ""
response: default
# ============================================================================
# Custom response definitions for THIS intent.
# Note - Shared responses for all intents are stored in the Common file.
# ============================================================================
responses:
intents:
SpotifyPlusGetNowPlayingInfo:
default: "" # not used - see common `nowplaying_info_xxxxxxx` messages.
@@ -0,0 +1,104 @@
# ============================================================================
# SpotifyPlus integration intent custom sentence and response definitions.
#
# Language: en, English
# Intent: SpotifyPlusPlayerDeckControl
# Location: custom_sentences/en/spotifyplus_PlayerDeckControl_en.yaml
# ============================================================================
language: en
intents:
SpotifyPlusPlayerDeckControl:
data:
- sentences:
- "spotify {spotifyplus_player_deck_control}"
# Base sentence phrases for this intent.
# This sentence is recognized when a name / area is NOT provided in the spoken command.
# In this case, the first active SpotifyPlus media player is used.
# __Example Phrases - No Player Name__
# - "spotify pause"
# - "spotify pause track"
# - "spotify stop"
# - "spotify stop track"
# - "spotify resume"
# - "spotify resume play"
# - "spotify resume player"
# - "spotify resume track"
# - "spotify start"
# - "spotify start track"
# - "spotify start player"
# - "spotify start play"
# - "spotify next track"
# - "spotify play next track"
# - "spotify play the next track"
# - "spotify skip to next track"
# - "spotify skip track"
# - "spotify previous track"
# - "spotify play previous track"
# - "spotify play the previous track"
# - "spotify skip to previous track"
# - "spotify restart track"
# - "spotify skip to start of track"
slots:
name: "Spotify Premium" # default player to use.
delay: 0.50
response: default
- sentences:
- "spotify {spotifyplus_player_deck_control} <on_spotifyplus_player_name>"
# This sentence is recognized when a player name is provided in the spoken
# command (e.g. "on player Spotify Premium", "on Todds player", etc).
# Supports the same base sentence phrases for this intent.
# __Example Phrases - By Player Name__
# - "spotify pause track on player spotify premium"
# - "spotify pause track on spotify premium player"
slots:
name: ""
delay: 0.50
response: default
- sentences:
- "spotify {spotifyplus_player_deck_control} <in_spotifyplus_player_area>"
# This sentence is recognized when a player area is provided in the spoken
# command (e.g. "in the Living Room area", "in the Living Room", etc).
# Supports the same base sentence phrases for this intent.
# __Example Phrases - By Player Area__
# - "spotify pause track in the Office area"
# - "spotify pause track in the Office"
slots:
area: ""
name: ""
delay: 0.50
response: default
# ============================================================================
# Custom response definitions for THIS intent.
# Note - Shared responses for all intents are stored in the Common file.
# ============================================================================
responses:
intents:
SpotifyPlusPlayerDeckControl:
default: "" # not used - see common `player_deck_control_xxxxxxx` messages.
@@ -0,0 +1,97 @@
# ============================================================================
# SpotifyPlus integration intent custom sentence and response definitions.
#
# Language: en, English
# Intent: SpotifyPlusPlayerSetRepeatMode
# Location: custom_sentences/en/spotifyplus_PlayerSetRepeatMode_en.yaml
# ============================================================================
language: en
intents:
SpotifyPlusPlayerSetRepeatMode:
data:
- sentences:
- "spotify repeat [mode] {player_repeat_mode}"
# Base sentence phrases for this intent.
# This sentence is recognized when a name / area is NOT provided in the spoken command.
# In this case, the first active SpotifyPlus media player is used.
# __Example Phrases - Default Player__
# - "spotify repeat on"
# - "spotify repeat track"
# - "spotify repeat 1 track"
# - "spotify repeat single track"
# - "spotify repeat context"
# - "spotify repeat all"
# - "spotify repeat all tracks"
# - "spotify repeat list"
# - "spotify repeat off"
# - "spotify repeat disabled"
slots:
name: "Spotify Premium" # default media player alias.
delay: 0.50
player_repeat_mode: "off"
response: default_no_player
- sentences:
- "spotify repeat [mode] {player_repeat_mode} <on_spotifyplus_player_name>"
# This sentence is recognized when a player name is provided in the spoken
# command (e.g. "on player Spotify Premium", "on Todds player", etc).
# Supports the same base sentence phrases for this intent.
# __Example Phrases - By Player Name__
# - "spotify repeat track for player spotify premium"
# - "spotify repeat track for spotify premium player"
slots:
name: ""
delay: 0.50
player_repeat_mode: "off"
response: default_by_name
- sentences:
- "spotify repeat [mode] {player_repeat_mode} <in_spotifyplus_player_area>"
# This sentence is recognized when a player area is provided in the spoken
# command (e.g. "in the Living Room area", "in the Living Room", etc).
# Supports the same base sentence phrases for this intent.
# __Example Phrases - By Player Area__
# - "spotify repeat track in the Office area"
# - "spotify repeat track in the Office"
slots:
area: ""
name: ""
delay: 0.50
player_repeat_mode: "off"
response: default_by_area
# ============================================================================
# Custom response definitions for THIS intent.
# Note - Shared responses for all intents are stored in the Common file.
# ============================================================================
responses:
intents:
SpotifyPlusPlayerSetRepeatMode:
default_by_name: "Okay, Spotify repeat mode is \"{{ slots.player_repeat_mode.text }}\" for named player \"{{ slots.target_player.text }}\"."
default_by_area: "Okay, Spotify repeat mode is \"{{ slots.player_repeat_mode.text }}\" in the \"{{ slots.target_player.text }}\" area."
default_no_player: "Okay, Spotify repeat mode is \"{{ slots.player_repeat_mode.text }}\" for default player \"{{ slots.target_player.text }}\"."
default: "Okay, Spotify repeat mode is \"{{ slots.player_repeat_mode.text }}\"."
@@ -0,0 +1,94 @@
# ============================================================================
# SpotifyPlus integration intent custom sentence and response definitions.
#
# Language: en, English
# Intent: SpotifyPlusPlayerSetShuffleMode
# Location: custom_sentences/en/spotifyplus_PlayerSetShuffleMode_en.yaml
# ============================================================================
language: en
intents:
SpotifyPlusPlayerSetShuffleMode:
data:
- sentences:
- "spotify shuffle [mode] {player_shuffle_mode}"
# Base sentence phrases for this intent.
# This sentence is recognized when a name / area is NOT provided in the spoken command.
# In this case, the first active SpotifyPlus media player is used.
# __Example Phrases - Default Player__
# - "spotify shuffle mode on"
# - "spotify shuffle mode off"
# - "spotify shuffle on"
# - "spotify shuffle off"
# - "spotify shuffle enabled"
# - "spotify shuffle disabled"
slots:
name: "Spotify Premium" # default media player alias.
delay: 0.50
player_shuffle_mode: "off"
response: default_no_player
- sentences:
- "spotify shuffle [mode] {player_shuffle_mode} <on_spotifyplus_player_name>"
# This sentence is recognized when a player name is provided in the spoken
# command (e.g. "on player Spotify Premium", "on Todds player", etc).
# Supports the same base sentence phrases for this intent.
# __Example Phrases - By Player Name__
# - "spotify shuffle on for player spotify premium"
# - "spotify shuffle on for spotify premium player"
slots:
name: ""
delay: 0.50
player_shuffle_mode: "off"
response: default_by_name
- sentences:
- "spotify shuffle [mode] {player_shuffle_mode} <in_spotifyplus_player_area>"
# This sentence is recognized when a player area is provided in the spoken
# command (e.g. "in the Living Room area", "in the Living Room", etc).
# Supports the same base sentence phrases for this intent.
# __Example Phrases - By Player Area__
# - "spotify shuffle on in the Office area"
# - "spotify shuffle on in the Office"
slots:
area: ""
name: ""
delay: 0.50
player_shuffle_mode: "off"
response: default_by_area
# ============================================================================
# Custom response definitions for THIS intent.
# Note - Shared responses for all intents are stored in the Common file.
# ============================================================================
responses:
intents:
SpotifyPlusPlayerSetShuffleMode:
default_no_player: "Okay, Spotify shuffle mode is \"{{ slots.player_shuffle_mode.text }}\" for default player \"{{ slots.target_player.text }}\"."
default_by_name: "Okay, Spotify shuffle mode is \"{{ slots.player_shuffle_mode.text }}\" for named player \"{{ slots.target_player.text }}\"."
default_by_area: "Okay, Spotify shuffle mode is \"{{ slots.player_shuffle_mode.text }}\" in the \"{{ slots.target_player.text }}\" area."
default: "Okay, Spotify shuffle mode is \"{{ slots.player_shuffle_mode.text }}\"."
@@ -0,0 +1,94 @@
# ============================================================================
# SpotifyPlus integration intent custom sentence and response definitions.
#
# Language: en, English
# Intent: SpotifyPlusPlayerTransferPlayback
# Location: custom_sentences/en/spotifyplus_PlayerTransferPlayback_en.yaml
# ============================================================================
language: en
intents:
SpotifyPlusPlayerTransferPlayback:
data:
- sentences:
- "spotify transfer playback [to] [device] {spotifyplus_device_names:device_name}"
- "spotify transfer playback [to] [device] {device_name}"
# Base sentence phrases for this intent.
# This sentence is recognized when a name / area is NOT provided in the spoken command.
# In this case, the first active SpotifyPlus media player is used.
# __Example Phrases - Default Player__
# - "spotify transfer playback to device Bose-ST10-1"
# - "spotify transfer playback to Bose-ST10-1"
# - "spotify transfer playback Bose-ST10-1"
slots:
name: "Spotify Premium" # default media player alias.
target_player: ""
delay: 0.50
device_name: "*"
response: default_no_player
- sentences:
- "spotify transfer playback [to] [device] {spotifyplus_device_names:device_name} <on_spotifyplus_player_name>"
- "spotify transfer playback [to] [device] {device_name} <on_spotifyplus_player_name>"
# This sentence is recognized when a player name is provided in the spoken
# command (e.g. "on player Spotify Premium", "on Todds player", etc).
# Supports the same base sentence phrases for this intent.
# __Example Phrases - By Player Name__
# - "spotify transfer playback to Bose-ST10-1 for player spotify premium"
# - "spotify transfer playback to Bose-ST10-1 for spotify premium player"
slots:
name: ""
delay: 0.50
device_name: "*"
response: default_by_name
- sentences:
- "spotify transfer playback [to] [device] {spotifyplus_device_names:device_name} <in_spotifyplus_player_area>"
- "spotify transfer playback [to] [device] {device_name} <in_spotifyplus_player_area>"
# This sentence is recognized when a player area is provided in the spoken
# command (e.g. "in the Living Room area", "in the Living Room", etc).
# Supports the same base sentence phrases for this intent.
# __Example Phrases - By Player Area__
# - "spotify transfer playback to Bose-ST10-1 in the Office area"
# - "spotify transfer playback to Bose-ST10-1 in the Office"
slots:
area: ""
name: ""
delay: 0.50
device_name: "*"
response: default_by_area
# ============================================================================
# Custom response definitions for THIS intent.
# Note - Shared responses for all intents are stored in the Common file.
# ============================================================================
responses:
intents:
SpotifyPlusPlayerTransferPlayback:
default_no_player: "Okay, playback transferred to device \"{{ slots.device_name.text }}\", for default player \"{{ slots.target_player.text }}\"."
default_by_name: "Okay, playback transferred to device \"{{ slots.device_name.text }}\", for named player \"{{ slots.target_player.text }}\"."
default_by_area: "Okay, playback transferred to device \"{{ slots.device_name.text }}\", in the \"{{ slots.target_player.text }}\" area."
default: "Okay, playback transferred to device \"{{ slots.device_name.text }}\"."
@@ -0,0 +1,123 @@
# ============================================================================
# SpotifyPlus integration intent custom sentence and response definitions.
#
# Language: en, English
# Intent: SpotifyPlusPlayerVolumeControl
# Location: custom_sentences/en/spotifyplus_PlayerVolumeControl_en.yaml
# ============================================================================
language: en
intents:
SpotifyPlusPlayerVolumeControl:
data:
- sentences:
- "[set] spotify {spotifyplus_player_volume_control}"
# Base sentence phrases for this intent.
# This sentence is recognized when a name / area is NOT provided in the spoken command.
# In this case, the first active SpotifyPlus media player is used.
# __Example Phrases - No Player Name__
# - "spotify player volume level down"
# - "spotify player volume level decrease"
# - "spotify volume level decrease"
# - "spotify volume decrease"
# - "spotify volume down"
# - "spotify player volume level up"
# - "spotify player volume level increase"
# - "spotify volume level increase"
# - "spotify volume increase"
# - "spotify volume up"
# - "spotify player volume mute"
# - "spotify player volume off"
# - "spotify volume mute"
# - "spotify volume off"
# - "spotify player volume unmute"
# - "spotify player volume on"
# - "spotify player volume restore"
# - "spotify volume unmute"
# - "spotify volume on"
# - "spotify volume restore"
# - "spotify volume step level to 5 percent"
# - "spotify volume step 5 percent"
# - "spotify volume step 5"
# - "set spotify volume step level to 5 percent"
# - "spotify volume level 5 percent"
# - "spotify volume level 5"
# - "spotify volume 5"
# - "set spotify volume level to 5 percent"
# - "set spotify volume level 5"
# - "set spotify volume 5"
# - "set spotify player volume level to 5 percent"
slots:
name: "Spotify Premium" # default player to use.
delay: 0.50
player_volume_level_pct: 10
player_volume_step_pct: 10
response: default
- sentences:
- "[set] spotify {spotifyplus_player_volume_control} <on_spotifyplus_player_name>"
# This sentence is recognized when a player name is provided in the spoken
# command (e.g. "on player Spotify Premium", "on Todds player", etc).
# Supports the same base sentence phrases for this intent.
# __Example Phrases - By Player Name__
# - "spotify volume decrease for player spotify premium"
# - "spotify volume decrease for spotify premium player"
slots:
name: ""
delay: 0.50
player_volume_level_pct: 10
player_volume_step_pct: 10
response: default
- sentences:
- "[set] spotify {spotifyplus_player_volume_control} <in_spotifyplus_player_area>"
# This sentence is recognized when a player area is provided in the spoken
# command (e.g. "in the Living Room area", "in the Living Room", etc).
# Supports the same base sentence phrases for this intent.
# __Example Phrases - By Player Area__
# - "spotify volume decrease in the Office area"
# - "spotify volume decrease in the Office"
slots:
area: ""
name: ""
delay: 0.50
player_volume_level_pct: 10
player_volume_step_pct: 10
response: default
# ============================================================================
# Custom response definitions for THIS intent.
# Note - Shared responses for all intents are stored in the Common file.
# ============================================================================
responses:
intents:
SpotifyPlusPlayerVolumeControl:
default: "" # not used - see common `player_volume_control_xxxxxxx` messages.
@@ -0,0 +1,101 @@
# ============================================================================
# SpotifyPlus integration intent custom sentence and response definitions.
#
# Language: en, English
# Intent: SpotifyPlusPlaylistCreate
# Location: custom_sentences/en/spotifyplus_PlaylistCreate_en.yaml
# ============================================================================
language: en
intents:
SpotifyPlusPlaylistCreate:
data:
- sentences:
- "spotify create (playlist|play list) {playlist_name}" # freeform playlist text.
- "create spotify (playlist|play list) {playlist_name}" # freeform playlist text.
# Base sentence phrases for this intent.
# This sentence is recognized when a name / area is NOT provided in the spoken command.
# In this case, the first active SpotifyPlus media player is used.
# __Example Phrases - Default Player__
# - "spotify create playlist My New Playlist"
# - "create spotify playlist My New Playlist"
slots:
name: "Spotify Premium" # default media player alias.
target_player: ""
playlist_name: ""
description: "Created by Home Assistant Voice Assist intent."
is_collaborative: False
is_public: False
image_path: "" # example: "www/spotifyplus/spotify_playlist_default_image.png"
response: default
- sentences:
- "spotify create (playlist|play list) {playlist_name} <on_spotifyplus_player_name>"
- "create spotify (playlist|play list) {playlist_name} <on_spotifyplus_player_name>"
# This sentence is recognized when a player name is provided in the spoken
# command (e.g. "on player Spotify Premium", "on Todds player", etc).
# Supports the same base sentence phrases for this intent.
# __Example Phrases - By Player Name__
# - "spotify create playlist My New Playlist on player spotify premium"
# - "create spotify playlist My New Playlist on player spotify premium"
slots:
name: ""
target_player: ""
playlist_name: ""
description: "Created by Home Assistant Voice Assist intent."
is_collaborative: False
is_public: False
image_path: "" # example: "www/spotifyplus/spotify_playlist_default_image.png"
response: default
- sentences:
- "spotify create (playlist|play list) {playlist_name} <in_spotifyplus_player_area>"
- "create spotify (playlist|play list) {playlist_name} <in_spotifyplus_player_area>"
# This sentence is recognized when a player area is provided in the spoken
# command (e.g. "in the Living Room area", "in the Living Room", etc).
# Supports the same base sentence phrases for this intent.
# __Example Phrases - By Player Area__
# - "spotify create playlist My New Playlist in the Office area"
# - "create spotify playlist My New Playlist in the Office"
slots:
area: ""
name: ""
target_player: ""
playlist_name: ""
description: "Created by Home Assistant Voice Assist intent."
is_collaborative: False
is_public: False
image_path: "" # example: "www/spotifyplus/spotify_playlist_default_image.png"
response: default
# ============================================================================
# Custom response definitions for THIS intent.
# Note - Shared responses for all intents are stored in the Common file.
# ============================================================================
responses:
intents:
SpotifyPlusPlaylistCreate:
default: "Okay, created Spotify playlist named \"{{ slots.playlist_title.text }}\"."
@@ -0,0 +1,167 @@
# ============================================================================
# SpotifyPlus integration intent custom sentence and response definitions.
#
# Language: en, English
# Intent: SpotifyPlusSearchPlayControl
# Location: custom_sentences/en/spotifyplus_SearchPlayControl_en.yaml
# ============================================================================
language: en
intents:
SpotifyPlusSearchPlayControl:
data:
- sentences:
# this sentence template should be used when multiple terms are required.
- "spotify play {spotifyplus_search_play_control_multi} {freeform:criteria_arg_1} (by|for) (podcast|pod cast|show) {freeform:criteria_arg_2}"
- "spotify play {spotifyplus_search_play_control_multi} {freeform:criteria_arg_1} (by|for) artist {freeform:criteria_arg_2}"
- "play spotify {spotifyplus_search_play_control_multi} {freeform:criteria_arg_1} (by|for) (podcast|pod cast|show) {freeform:criteria_arg_2}"
- "play spotify {spotifyplus_search_play_control_multi} {freeform:criteria_arg_1} (by|for) artist {freeform:criteria_arg_2}"
# this sentence template should be used when single terms are required.
- "spotify play {spotifyplus_search_play_control_single}"
- "spotify play {spotifyplus_search_play_control_single} (by|for) artist {freeform:criteria_arg_1}"
- "spotify play {spotifyplus_search_play_control_single} {freeform:criteria_arg_1} [{latest_episode}]"
- "play spotify {spotifyplus_search_play_control_single}"
- "play spotify {spotifyplus_search_play_control_single} (by|for) artist {freeform:criteria_arg_1}"
- "play spotify {spotifyplus_search_play_control_single} {freeform:criteria_arg_1} [{latest_episode}]"
# Base sentence phrases for this intent.
# This sentence is recognized when a name / area is NOT provided in the spoken command.
# In this case, the first active SpotifyPlus media player is used.
# __Example Phrases - Default Player__
# - "spotify play artist album Take Everything by artist Seventh Day Slumber"
# - "play spotify artist album Take Everything by artist Seventh Day Slumber"
# - "spotify play artist track I Need You by artist Seventh Day Slumber"
# - "play spotify artist track I Need You by artist Seventh Day Slumber"
# - "spotify play episode Kurt Russell for podcast Armchair Expert with Dax Shepard"
# - "play spotify episode Kurt Russell for podcast Armchair Expert with Dax Shepard"
# - "spotify play favorite tracks for artist test artist list entry"
# - "play spotify favorite tracks for artist test artist list entry"
# - "spotify play favorite tracks for artist Jeremy Camp"
# - "play spotify favorite tracks for artist Jeremy Camp"
# - "spotify play favorite tracks"
# - "play spotify favorite tracks"
# - "spotify play audiobook Test Audiobook List Entry"
# - "play spotify audiobook Test Audiobook List Entry"
# - "spotify play audiobook The Elfstones of Shannara"
# - "play spotify audiobook The Elfstones of Shannara"
# - "spotify play playlist Test Playlist List Entry"
# - "play spotify playlist Test Playlist List Entry"
# - "spotify play playlist Old Christian Contemporary"
# - "play spotify playlist Old Christian Contemporary"
# - "spotify play podcast Test Podcast List Entry"
# - "play spotify podcast Test Podcast List Entry"
# - "spotify play podcast Armchair Expert with Dax Shepard"
# - "play spotify podcast Armchair Expert with Dax Shepard"
# - "spotify play podcast Armchair Expert with Dax Shepard latest episode"
# - "play spotify podcast Armchair Expert with Dax Shepard latest episode"
# - "spotify play track Test Track List Entry"
# - "play spotify track Test Track List Entry"
# - "spotify play track More Of You"
# - "play spotify track More Of You"
slots:
name: "Spotify Premium" # default media player alias.
delay: 0.50
device_name: "*"
latest_episode: "off"
limit_total: 200
player_shuffle_mode: "off"
response: default
- sentences:
# this sentence template should be used when multiple terms are required.
- "spotify play {spotifyplus_search_play_control_multi} {freeform:criteria_arg_1} (by|for) (podcast|pod cast|show) {freeform:criteria_arg_2} <on_spotifyplus_player_name>"
- "spotify play {spotifyplus_search_play_control_multi} {freeform:criteria_arg_1} (by|for) artist {freeform:criteria_arg_2} <on_spotifyplus_player_name>"
- "play spotify {spotifyplus_search_play_control_multi} {freeform:criteria_arg_1} (by|for) (podcast|pod cast|show) {freeform:criteria_arg_2} <on_spotifyplus_player_name>"
- "play spotify {spotifyplus_search_play_control_multi} {freeform:criteria_arg_1} (by|for) artist {freeform:criteria_arg_2} <on_spotifyplus_player_name>"
# this sentence template should be used when single terms are required.
- "spotify play {spotifyplus_search_play_control_single} <on_spotifyplus_player_name>"
- "spotify play {spotifyplus_search_play_control_single} (by|for) artist {freeform:criteria_arg_1} <on_spotifyplus_player_name>"
- "spotify play {spotifyplus_search_play_control_single} {freeform:criteria_arg_1} [{latest_episode}] <on_spotifyplus_player_name>"
- "play spotify {spotifyplus_search_play_control_single} <on_spotifyplus_player_name>"
- "play spotify {spotifyplus_search_play_control_single} (by|for) artist {freeform:criteria_arg_1} <on_spotifyplus_player_name>"
- "play spotify {spotifyplus_search_play_control_single} {freeform:criteria_arg_1} [{latest_episode}] <on_spotifyplus_player_name>"
# This sentence is recognized when a player name is provided in the spoken
# command (e.g. "on player Spotify Premium", "on Todds player", etc).
# Supports the same base sentence phrases for this intent.
# __Example Phrases - By Player Name__
# - "spotify play artist track I Need You by artist Seventh Day Slumber on player spotify premium"
# - "spotify play track Test Track List Entry on player spotify premium"
# - "spotify play track More Of You on player spotify premium"
slots:
name: ""
delay: 0.50
device_name: "*"
latest_episode: "off"
limit_total: 200
player_shuffle_mode: "off"
response: default
- sentences:
# this sentence template should be used when multiple terms are required.
- "spotify play {spotifyplus_search_play_control_multi} {freeform:criteria_arg_1} (by|for) (podcast|pod cast|show) {freeform:criteria_arg_2} <in_spotifyplus_player_area>"
- "spotify play {spotifyplus_search_play_control_multi} {freeform:criteria_arg_1} (by|for) artist {freeform:criteria_arg_2} <in_spotifyplus_player_area>"
- "play spotify {spotifyplus_search_play_control_multi} {freeform:criteria_arg_1} (by|for) (podcast|pod cast|show) {freeform:criteria_arg_2} <in_spotifyplus_player_area>"
- "play spotify {spotifyplus_search_play_control_multi} {freeform:criteria_arg_1} (by|for) artist {freeform:criteria_arg_2} <in_spotifyplus_player_area>"
# this sentence template should be used when single terms are required.
- "spotify play {spotifyplus_search_play_control_single} <in_spotifyplus_player_area>"
- "spotify play {spotifyplus_search_play_control_single} (by|for) artist {freeform:criteria_arg_1} <in_spotifyplus_player_area>"
- "spotify play {spotifyplus_search_play_control_single} {freeform:criteria_arg_1} [{latest_episode}] <in_spotifyplus_player_area>"
- "play spotify {spotifyplus_search_play_control_single} <in_spotifyplus_player_area>"
- "play spotify {spotifyplus_search_play_control_single} (by|for) artist {freeform:criteria_arg_1} <in_spotifyplus_player_area>"
- "play spotify {spotifyplus_search_play_control_single} {freeform:criteria_arg_1} [{latest_episode}] <in_spotifyplus_player_area>"
# This sentence is recognized when a player area is provided in the spoken
# command (e.g. "in the Living Room area", "in the Living Room", etc).
# Supports the same base sentence phrases for this intent.
# __Example Phrases - By Player Area__
# - "spotify play artist track I Need You by artist Seventh Day Slumber in the Office area"
# - "spotify play track Test Track List Entry in the Office area"
# - "spotify play track More Of You in the Office area"
slots:
area: ""
name: ""
delay: 0.50
device_name: "*"
latest_episode: "off"
limit_total: 200
player_shuffle_mode: "off"
response: default
# ============================================================================
# Custom response definitions for THIS intent.
# Note - Shared responses for all intents are stored in the Common file.
# ============================================================================
responses:
intents:
SpotifyPlusSearchPlayControl:
default: "" # not used - see common `play_xxxxx` message.
@@ -0,0 +1,461 @@
# ============================================================================
# SpotifyPlus integration intent common responses, lists, expand rules, etc.
#
# Location: custom_sentences/en/spotifyplus_common_en.yaml
# Language: en, English
# ============================================================================
language: en
responses:
# ============================================================================
# SpotifyPlus platform responses.
#
# Note that the HA conversation integration does not understand this concept,
# as this functionality is unique to OUR integration. With that said, you
# must reload the integration (or restart HA) in order for changes to take
# effect for these messages.
# ============================================================================
spotifyplus:
# general error messages.
error_unhandled: "An unexpected error occurred:\n\n{{ slots.error_info.text }}"
error_failed_to_handle: "Failed to handle intent:\n\n{{ slots.error_info.text }}"
error_media_type_invalid: "Media type value \"{{ slots.spotifyplus_media_type.text }}\" ({{ slots.spotifyplus_media_type.value }}) was not recognized."
error_player_deck_control_invalid: "Player deck control value \"{{ slots.spotifyplus_player_deck_control.text }}\" ({{ slots.spotifyplus_player_deck_control.value }}) was not recognized."
error_player_volume_control_invalid: "Player volume control value \"{{ slots.spotifyplus_player_volume_control.text }}\" ({{ slots.spotifyplus_player_volume_control.value }}) was not recognized."
error_search_play_control_invalid: "Search play control value \"{{ slots.spotifyplus_search_play_control.text }}\" ({{ slots.spotifyplus_search_play_control.value }}) was not recognized."
error_search_no_criteria: "Search criteria not specified for search play control type \"{{ slots.spotifyplus_search_play_control.text }}\" ({{ slots.spotifyplus_search_play_control.value }})."
# get information request related messages.
get_info_artist_bio: "Artist bio for \"{{ slots.artist_title.text }}\" ... \n\n{{ slots.artist_bio.text | truncate(400, end=' ...') }}\n\n[more info at {{ slots.artist_url.text }}]({{ slots.artist_url.value }})"
# favorites management related messages.
favorite_operation_invalid: "Favorite operation type was invalid: \"{{ slots.favorite_operator.text }}\"."
favorite_add_remove_album_ok: "Okay, {{ slots.favorite_operator.text }} of Spotify album favorite \"{{ slots.album_title.text }}\", by artist \"{{ slots.artist_title.text }}\", was successful."
favorite_add_remove_artist_ok: "Okay, {{ slots.favorite_operator.text }} of Spotify artist favorite \"{{ slots.artist_title.text }}\", was successful."
favorite_add_remove_audiobook_ok: "Okay, {{ slots.favorite_operator.text }} of Spotify audiobook favorite \"{{ slots.audiobook_title.text }}\", by author \"{{ slots.author_title.text }}\", was successful."
favorite_add_remove_playlist_ok: "Okay, {{ slots.favorite_operator.text }} of Spotify playlist favorite \"{{ slots.playlist_title.text }}\", was successful."
favorite_add_remove_podcast_ok: "Okay, {{ slots.favorite_operator.text }} of Spotify podcast favorite \"{{ slots.podcast_title.text }}\", was successful."
favorite_add_remove_podcast_episode_ok: "Okay, {{ slots.favorite_operator.text }} of Spotify episode favorite \"{{ slots.episode_title.text }}\", from podcast \"{{ slots.podcast_title.text }}\", was successful."
favorite_add_remove_track_ok: "Okay, {{ slots.favorite_operator.text }} of Spotify track favorite \"{{ slots.track_title.text }}\", by artist \"{{ slots.artist_title.text }}\", was successful."
# now playing information related messages.
nowplaying_info_album: "Media player is playing a track from album \"{{ slots.album_title.text }}\", by artist \"{{ slots.artist_title.text }}\".\n\n[more info at {{ slots.album_url.text }}]({{ slots.album_url.value }})"
nowplaying_info_audiobook: "Media player is playing \"{{ slots.chapter_title.text }}\", from audiobook \"{{ slots.audiobook_title.text }}\", by author \"{{ slots.author_title.text }}\".\n\n[more info at {{ slots.audiobook_url.text }}]({{ slots.audiobook_url.value }})"
nowplaying_info_playlist: "Media player is playing a track from playlist \"{{ slots.playlist_title.text }}\".\n\n[more info at {{ slots.playlist_url.text }}]({{ slots.playlist_url.value }})"
nowplaying_info_podcast: "Media player is playing episode \"{{ slots.episode_title.text }}\", from podcast \"{{ slots.podcast_title.text }}\".\n\n[more info at {{ slots.podcast_url.text }}]({{ slots.podcast_url.value }})"
nowplaying_info_podcast_episode: "Media player is playing episode \"{{ slots.episode_title.text }}\", from podcast \"{{ slots.podcast_title.text }}\".\n\n[more info at {{ slots.episode_url.text }}]({{ slots.episode_url.value }})"
nowplaying_info_track: "Media player is playing track \"{{ slots.track_title.text }}\", from album \"{{ slots.album_title.text }}\", by artist \"{{ slots.artist_title.text }}\".\n\n[more info at {{ slots.album_url.text }}]({{ slots.album_url.value }})"
nowplaying_no_media_album: "SpotifyPlus media player is currently not playing media that contains Track Album information."
nowplaying_no_media_artist: "SpotifyPlus media player is currently not playing media that contains Track Artist information."
nowplaying_no_media_audiobook: "SpotifyPlus media player is currently not playing media that contains Audiobook information."
nowplaying_no_media_playlist: "SpotifyPlus media player is currently not playing media that contains Playlist information."
nowplaying_no_media_podcast: "SpotifyPlus media player is currently not playing media that contains Podcast information."
nowplaying_no_media_podcast_episode: "SpotifyPlus media player is currently not playing media that contains Podcast Episode information."
nowplaying_no_media_track: "SpotifyPlus media player is currently not playing media that contains Track information."
# media player related messages.
play_album_with_artist: "Playing Spotify album \"{{ slots.album_title.text }}\", by artist \"{{ slots.artist_title.text }}\"."
play_album: "Playing Spotify album \"{{ slots.album_title.text }}\"."
play_audiobook: "Playing Spotify audiobook \"{{ slots.audiobook_title.text }}\"."
play_audiobook_with_author: "Playing Spotify audiobook \"{{ slots.audiobook_title.text }}\", by author \"{{ slots.author_title.text }}\"."
play_favorite_tracks: "Playing Spotify track favorites."
play_favorite_tracks_for_artist: "Playing Spotify track favorites, for artist \"{{ slots.artist_title.text }}\"."
play_playlist: "Playing Spotify playlist \"{{ slots.playlist_title.text }}\"."
play_podcast: "Playing Spotify podcast \"{{ slots.podcast_title.text }}\"."
play_podcast_episode: "Playing Spotify episode \"{{ slots.episode_title.text }}\", from podcast \"{{ slots.podcast_title.text }}\"."
play_track_with_artist: "Playing Spotify track \"{{ slots.track_title.text }}\", by artist \"{{ slots.artist_title.text }}\"."
play_track: "Playing Spotify track \"{{ slots.track_title.text }}\"."
player_already_playing_media: "Media player \"{{ slots.target_player.text }}\" is already playing media."
player_deck_control_pause: "Okay, Spotify paused the track."
player_deck_control_resume: "Okay, Spotify resumed play."
player_deck_control_seek_start: "Okay, Spotify restarted the track."
player_deck_control_skip_next: "Okay, Spotify skipped to next track."
player_deck_control_skip_previous: "Okay, Spotify skipped to previous track."
player_features_not_supported: "Media player \"{{ slots.name.text }}\" does not support required features for this request: \"{{ slots.error_features.text }}\"."
player_not_exposed_to_voice: "Media player \"{{ slots.target_player.text }}\" has not been exposed to Voice Assistant."
player_not_matched: "SpotifyPlus media player could not be resolved by \"{{ slots.target_player.text }}\"."
player_not_matched_area: "SpotifyPlus media player could not be resolved for the \"{{ slots.area.text }}\" area."
player_not_playing_media: "Media player \"{{ slots.target_player.text }}\" is currently not playing media."
player_not_spotifyplus: "Resolved media player \"{{ slots.target_player.text }}\" is not a SpotifyPlus media player."
player_volume_control_down: "Okay, Spotify volume level was decreased by {{ slots.player_volume_step_pct.text }} percent."
player_volume_control_mute: "Okay, Spotify volume level was muted."
player_volume_control_set_step_level: "Okay, Spotify volume step level is {{ slots.player_volume_step_pct.text }} percent."
player_volume_control_set_level: "Okay, Spotify volume level set to {{ slots.player_volume_level_pct.text }} percent."
player_volume_control_unmute: "Okay, Spotify volume level was restored."
player_volume_control_up: "Okay, Spotify volume level was increased by {{ slots.player_volume_step_pct.text }} percent."
playlist_created: "Okay, created Spotify playlist named \"{{ slots.playlist_title.text }}\".\n\n[more info at {{ slots.playlist_url.text }}]({{ slots.playlist_url.value }})"
# general spotify information related messages.
spotify_no_artist_info: "Artist information could not be found for \"{{ slots.artist_name.text }}\"."
spotify_search_no_items_album: "Album information could not be found for \"{{ slots.criteria_arg_1.text }}\". Search criteria: \"{{ slots.search_criteria.text }}\"."
spotify_search_no_items_audiobook: "Audiobook information could not be found for \"{{ slots.criteria_arg_1.text }}\". Search criteria: \"{{ slots.search_criteria.text }}\"."
spotify_search_no_items_playlist: "Playlist information could not be found for \"{{ slots.criteria_arg_1.text }}\". Search criteria: \"{{ slots.search_criteria.text }}\"."
spotify_search_no_items_podcast: "Podcast information could not be found for \"{{ slots.criteria_arg_1.text }}\". Search criteria: \"{{ slots.search_criteria.text }}\"."
spotify_search_no_items_podcast_episode: "Episode information could not be found for \"{{ slots.criteria_arg_1.text }}\". Search criteria: \"{{ slots.search_criteria.text }}\"."
spotify_search_no_items_track: "Track information could not be found for \"{{ slots.criteria_arg_1.text }}\". Search criteria: \"{{ slots.search_criteria.text }}\"."
spotify_premium_required: "Sorry, a Spotify premium account is required for the requested function using media player \"{{ slots.target_player.text }}\"."
# ============================================================================
# SpotifyPlus generic responses.
#
# Note that the HA conversation integration does not understand this concept,
# as this functionality is unique to OUR integration. With that said, you
# must reload the integration (or restart HA) in order for changes to take
# effect for these messages.
# ============================================================================
generic-response-1: "This is generic response message 1"
generic-response-2: "This is generic response message 2"
generic-response-3: "This is generic response message 3"
# ============================================================================
# Home Assistant error responses.
#
# The values here will override HA built-in error responses.
# They are purposefully designed to be as generic as possible, as they cover
# multiple domain / platform types.
# ============================================================================
errors:
# general errors.
no_intent: "Sorry, I couldn't understand that"
handle_error: "An unexpected error occurred"
# intent matching contraint errors used when target(s) cannot be resolved.
no_area: "Sorry, I am not aware of any area called \"{{ area }}\"."
no_floor: "Sorry, I am not aware of any floor called \"{{ floor }}\"."
no_domain: "Sorry, I am not aware of any \"{{ domain.replace('_', ' ') }}\"."
no_domain_in_area: "Sorry, I am not aware of any \"{{ domain.replace('_', ' ') }}\" in the \"{{ area }}\" area."
no_domain_in_floor: "Sorry, I am not aware of any \"{{ domain.replace('_', ' ') }}\" on the \"{{ floor }}\" floor."
no_device_class: "Sorry, I am not aware of any \"{{ device_class }}\"."
no_device_class_in_area: "Sorry, I am not aware of any \"{{ device_class }}\" in the \"{{ area }}\" area."
no_device_class_in_floor: "Sorry, I am not aware of any \"{{ device_class }}\" in the \"{{ floor }}\" floor."
no_entity: "Sorry, I am not aware of any device called \"{{ entity }}\"."
no_entity_in_area: "Sorry, I am not aware of any device called \"{{ entity }}\" in the \"{{ area }}\" area."
no_entity_in_floor: "Sorry, I am not aware of any device called \"{{ entity }}\" in the \"{{ floor }}\" floor."
entity_wrong_state: "Sorry, no device is {{ state | lower }}."
feature_not_supported: "Sorry, no device supports the required features."
# intent matching contraint errors used when target(s) can be resolved, but are not exposed to voice assistant.
no_entity_exposed: "Sorry, \"{{ entity }}\" is not exposed to Voice Assistant."
no_entity_in_area_exposed: "Sorry, \"{{ entity }}\" in the \"{{ area }}\" area is not exposed to Voice Assistant."
no_entity_in_floor_exposed: "Sorry, \"{{ entity }}\" in the \"{{ floor }}\" floor is not exposed to Voice Assistant."
no_domain_exposed: "Sorry, no \"{{ domain.replace('_', ' ') }}\" is exposed to Voice Assistant."
no_domain_in_area_exposed: "Sorry, no \"{{ domain.replace('_', ' ') }}\" in the \"{{ area }}\" area is exposed to Voice Assistant."
no_domain_in_floor_exposed: "Sorry, no \"{{ domain.replace('_', ' ') }}\" in the \"{{ floor }}\" floor is exposed to Voice Assistant."
no_device_class_exposed: "Sorry, no \"{{ device_class }}\" is exposed to Voice Assistant."
no_device_class_in_area_exposed: "Sorry, no \"{{ device_class }}\" in the \"{{ area }}\" area is exposed to Voice Assistant."
no_device_class_in_floor_exposed: "Sorry, no \"{{ device_class }}\" in the \"{{ floor }}\" floor is exposed to Voice Assistant."
# intent matching contraint errors used when multiple (exposed) devices have the same name.
duplicate_entities: "Sorry, there are multiple devices called \"{{ entity }}\"."
duplicate_entities_in_area: "Sorry, there are multiple devices called \"{{ entity }}\" in the \"{{ area }}\" area."
duplicate_entities_in_floor: "Sorry, there are multiple devices called \"{{ entity }}\" in the \"{{ floor }}\" floor."
# ============================================================================
# SpotifyPlus common lists
# ============================================================================
lists:
freeform:
wildcard: true # accept freeform text.
album_name:
wildcard: true # accept freeform text.
artist_name:
wildcard: true # accept freeform text.
device_name:
wildcard: true # accept freeform text.
playlist_name:
wildcard: true # accept freeform text.
track_name:
wildcard: true # accept freeform text.
favorite_operator:
# out values must be English value.
values:
- in: "add"
out: "add"
- in: "remove"
out: "remove"
latest_episode:
# out values must be English value.
values:
- in: "(latest|current) episode"
out: "on"
- in: ""
out: "off"
player_repeat_mode:
# out values must be English value.
values:
- in: "(on|[single|1|one] track|)"
out: "track"
- in: "(context|all|all tracks|list)"
out: "context"
- in: "(off|disable[d])"
out: "off"
player_shuffle_mode:
# out values must be English value.
values:
- in: "(on|true|enable[d])"
out: "on"
- in: "(off|false|disable[d])"
out: "off"
player_volume_level:
values:
- in: (max|maximum|highest)
out: 100
- in: (min|minimum|lowest)
out: 1
player_volume_level_pct:
range:
type: "percentage"
from: 0
to: 100
player_volume_step_pct:
range:
type: "percentage"
from: 1
to: 100
spotifyplus_media_type:
# out values must be English value.
values:
- in: "(album|lp)"
out: "album"
- in: "artist"
out: "artist"
- in: "(audiobook|audio book|book)"
out: "audiobook"
- in: "(playlist|play list)"
out: "playlist"
- in: "(podcast|pod cast|show) episode"
out: "episode"
- in: "(podcast|pod cast|show)"
out: "podcast"
- in: "(track|song)"
out: "track"
spotifyplus_player_deck_control:
# out values must be English value.
values:
- in: "(pause|stop) [[<the>] (play[er]|track|song)]"
out: "pause"
- in: "(resume|start) [[<the>] (play[er]|track|song)]"
out: "resume"
- in: "(restart [[<the>] (track|song)]|skip (to|2) [<the>] start of [<the>] (track|song))"
out: "seek_start"
- in: "([play] [<the>] next|skip|skip (to|2) [<the>] next) (track|song)"
out: "skip_next"
- in: "([play] [<the>] previous|skip|skip (to|2) [<the>] previous) (track|song)"
out: "skip_previous"
spotifyplus_player_volume_control:
# out values must be English value.
values:
- in: "(mute|[player] volume [level] (mute|off))"
out: "mute"
- in: "(unmute|[player] volume [level] (unmute|un mute|restore|on))"
out: "unmute"
- in: "[player] volume [level] (decrease[d]|down|lower)"
out: "step_down"
- in: "[player] volume [level] (increase[d]|up|higher|raise)"
out: "step_up"
- in: "[player] volume step [level] [to|2] {player_volume_step_pct} [percent|%]"
out: "set_step_level"
- in: "[player] volume [level] [to|2] {player_volume_level_pct} [percent|%]"
out: "set_level"
spotifyplus_search_play_control_multi:
# out values must be English value.
values:
- in: "episode"
out: "podcast_episode"
- in: "artist (album|LP)"
out: "artist_album"
- in: "artist (track|song)"
out: "artist_track"
spotifyplus_search_play_control_single:
# out values must be English value.
values:
- in: "(album|LP) [{spotifyplus_album_names:criteria_arg_1}]"
out: "album"
- in: "(audiobook|audio book|book) [{spotifyplus_audiobook_names:criteria_arg_1}]"
out: "audiobook"
- in: "(playlist|play list) [{spotifyplus_playlist_names:criteria_arg_1}]"
out: "playlist"
- in: "(podcast|pod cast|show) [{spotifyplus_podcast_names:criteria_arg_1}] [{latest_episode}]"
out: "podcast"
- in: "(track favorites|favorite tracks)"
out: "favorite_tracks"
- in: "(track favorites|favorite tracks) (by|for) artist {spotifyplus_artist_names:criteria_arg_1}"
out: "favorite_tracks_artist"
- in: "(track|song) [{spotifyplus_track_names:criteria_arg_1}]"
out: "track"
# --------------------------------------------------------------------------------------
# SpotifyPlus voice-friendly album identifiers.
#
# This list is used primarily to identify Spotify Albums that either get misinterpreted
# when a spoken phrase is used, or if you want a specific album of multiple album
# renditions. For example, do you want Journey's original 1981 version of the
# "Escape" album tour, or the 2022 remastered version?
#
# in: Voice friendly identifier.
# out: Spotify album uri value.
# --------------------------------------------------------------------------------------
spotifyplus_album_names:
values:
- in: "Test List Entry"
out: "spotify:album:4guAwaniEAEQSW0NCpo4gm" # Journey, 2022 Remaster
- in: "Escape"
out: "spotify:album:4guAwaniEAEQSW0NCpo4gm" # Journey, 2022 Remaster
- in: "Escape 1981"
out: "spotify:album:0gHmMKZ9s3ztqeMfAzwxRL" # Journey, 1981 Live, Escape Tour
# --------------------------------------------------------------------------------------
# SpotifyPlus voice-friendly artist identifiers.
#
# This list is used primarily to identify Spotify Artists that either get misinterpreted
# when a spoken phrase is used, or if you want a specific artist of multiple artist
# renditions.
#
# in: Voice friendly identifier.
# out: Spotify artist uri value.
# --------------------------------------------------------------------------------------
spotifyplus_artist_names:
values:
- in: "Test List Entry"
out: "spotify:artist:6kFLnclYFc3gzpNt13wim5" # Seventh Day Slumber
# --------------------------------------------------------------------------------------
# SpotifyPlus voice-friendly audiobook identifiers.
#
# This list is used primarily to identify Spotify Audiobooks that either get misinterpreted
# when a spoken phrase is used, or if you want a specific audiobook of multiple audiobook
# renditions.
#
# in: Voice friendly identifier.
# out: Spotify audiobook uri value.
# --------------------------------------------------------------------------------------
spotifyplus_audiobook_names:
values:
- in: "Test List Entry"
out: "spotify:show:74aydHJKgYz3AIq3jjBSv1" # The Elfstones of Shannara
# --------------------------------------------------------------------------------------
# SpotifyPlus voice-friendly device name identifiers.
#
# This list is used to identify Spotify Connect device names.
# These should align with what's in the `source_list` attribute of the media player.
#
# in: Voice friendly identifier.
# out: SpotifyPlus media_player source_list entry.
# --------------------------------------------------------------------------------------
spotifyplus_device_names:
values:
- in: "Office"
out: "Office Speaker"
# --------------------------------------------------------------------------------------
# SpotifyPlus voice-friendly playlist identifiers.
#
# This list is used primarily to identify Spotify Algorithmic Playlists, which
# cannot be returned by the Spotify Web API as of 2024/11/27.
# More info: https://developer.spotify.com/blog/2024-11-27-changes-to-the-web-api
#
# in: Voice friendly identifier.
# out: Spotify playlist uri value.
# --------------------------------------------------------------------------------------
spotifyplus_playlist_names:
values:
- in: "Test List Entry"
out: "spotify:playlist:37i9dQZEVXcTh0pBxo9pZe" # Discover Weekly
- in: "Daily Mix (1|One)"
out: "spotify:playlist:37i9dQZF1E39vTG3GurFPW"
- in: "Daily Mix (2|Two)"
out: "spotify:playlist:37i9dQZF1E39DIjrju3A9t"
- in: "Daily Mix (3|Three)"
out: "spotify:playlist:37i9dQZF1E36yv9pXdC1Mb"
- in: "Daily Mix (4|Four)"
out: "spotify:playlist:37i9dQZF1E35Ejqg6yJW0p"
- in: "Daily Mix (5|Five)"
out: "spotify:playlist:37i9dQZF1E35nVVgp8iMex"
- in: "Discover Weekly"
out: "spotify:playlist:37i9dQZEVXcTh0pBxo9pZe"
- in: "(DJ|deejay|dee jay)"
out: "spotify:playlist:37i9dQZF1EYkqdzj48dyYq"
# --------------------------------------------------------------------------------------
# SpotifyPlus voice-friendly podcast identifiers.
#
# This list is used primarily to identify Spotify Podcasts that either get misinterpreted
# when a spoken phrase is used, or if you want a specific podcast of multiple podcast
# renditions. For example, do you want "The Joe Rogan Experience", or "The Joe Rogan AI
# Experience"?
#
# in: Voice friendly identifier.
# out: Spotify podcast uri value.
# --------------------------------------------------------------------------------------
spotifyplus_podcast_names:
values:
- in: "Test List Entry"
out: "spotify:show:6kAsbP8pxwaU2kPibKTuHE" # Armchair Expert with Dax Shepard
# --------------------------------------------------------------------------------------
# SpotifyPlus voice-friendly track identifiers.
#
# This list is used primarily to identify Spotify Tracks that either get misinterpreted
# when a spoken phrase is used, or if you want a specific track of multiple track
# renditions. For example, do you want Journey's original 1981 version of the
# "Don't Stop Believin" track, or the 2022 remastered version?
#
# in: Voice friendly identifier.
# out: Spotify track uri value.
# --------------------------------------------------------------------------------------
spotifyplus_track_names:
values:
- in: "Test List Entry"
out: "spotify:track:5ehcf6UL1TkwozB386cRAp" # Journey, 2024 Remaster, Don't Stop believin'
- in: "Don't Stop Believing"
out: "spotify:track:5ehcf6UL1TkwozB386cRAp" # Journey, 2024 Remaster
- in: "Don't Stop Believing 1981"
out: "spotify:track:3Ab9C0oz70wDyigunvnG5N" # Journey, 1981 Live, Escape Tour
# ============================================================================
# SpotifyPlus common expansion rules
# ============================================================================
expansion_rules:
in_spotifyplus_player_area: "(in|inn) [<the>] ({area}|{area} area|area {area})" # e.g. "in the Office", "in the Office area", "in area Office"
on_spotifyplus_player_name: "(on|for) [<the>] ({name} player|player {name})" # e.g. "on the Spotify Premium player", "on player Spotify Premium"
# ============================================================================
# SpotifyPlus common skip words
# ============================================================================
skip_words:
- "please"
- "can you"
- "could you"
- "would you"
- "for me"
- "i'd like"
- "i'd like to"
- "i want"
- "i want to"