-
-
Notifications
You must be signed in to change notification settings - Fork 194
NSPanel ‐ cardMedia ‐ Der Amazon Alexa Player
-
Der Alexa-Player baut auf den Alexa2-Adapter auf und benötigt im ioBroker eine alexa.X. Instanz.
-
Durch die Struktur der bereitgestellten Datenpunkte des Adapters ist er wie folgt eingeschränkt:
- Keine Bereitstellung von Bibliotheken oder Playlists, d.h. es kann ausschließlich vorab definierter Content abgespielt werden. Ein dynamisches Laden von Playlists kann somit gegenwärtig nicht realisiert werden.
- Keine Bereitstellung von Tracklists, d.h. Inhalte von Alben oder Playlists können nicht realisiert werden
- Keine Funktionen wie z.B. Seek oder Crossfade, etc.
-
Alleinstellungsmerkmal:
- Der Alexa-Player kann auf die Equalizer-Funktionen des Device (bass, midrange, treble) zugreifen.
- Der Player kann die Musik von einem Bereich zum anderen (Einzelne Devices oder Device-Gruppen) übertragen (schieben)
Inhalt:
(vollständig ab NSPanelTs.ts - Version 4.7.1)
Der Seitentitel steht auf:
- der dem Parameter "heading" aus der Seitenvariable der cardMedia (z.B. Alexa Player), wenn keine Wiedergabe erfolgt oder wenn das Wiedergabegerät über die Alexa2-Adapterinstanz (z.B. alexa2.0.) im Datenpunkt currentAlbum keine Inhalte anzeigt.
- siehe Navigation
Zeigt die folgenden Datenpunkte der aktiven Alexa-Adapterinstanz:
- Titel --> alexa2.0.Echo-Devices.<DEVICE_SERIAL>.Player.currentTitle
- Verstrichene Zeit (Minuten/Sekunden) des aktuell abgespielten Titels (bei Radio Laufzeit des Senders) -->
alexa2.0.Echo-Devices.<DEVICE_SERIAL>.Player.mediaProgressStr
- Gesamtlänge (Minuten/Sekunden) des aktuell abgespielten Titels (nicht bei Radio) -->
alexa2.0.Echo-Devices.<DEVICE_SERIAL>.Player.mediaLength
Important
Die Aktualisierung in Sekunden steht in Abhängigkeit zur Alexa-Adapterinstanz und steht per Default auf 2000ms (nicht änderbar).
Folgende Datenpunkte der Alexa-Adapterinstanz werden berücksichtigt:
- Interpret -->
alexa2.0.Echo-Devices.<DEVICE_SERIAL>.Player.currentArtist
(beim Abspielen von Radiosendern abweichende Informationen zum Sender) - Album -->
alexa2.0.Echo-Devices.<DEVICE_SERIAL>.Player.currentAlbum
(beim Abspielen von Radiosendern abweichende Informationen zum Sender)
- Stop (Icon blau) -->
alexa2.0.Echo-Devices.<DEVICE_SERIAL>.Commands.deviceStop
(beim Abspielen weiß)
- Die Feinjustierung der aktuellen Lautstärke in Einerschritten (+1) --> Datenpunkt:
alexa2.0.Echo-Devices.<DEVICE_SERIAL>.Player.volume
- Die Feinjustierung der aktuellen Lautstärke erfolgt stufenlos zwischen 0% und 100% --> Datenpunkt:
alexa2.0.Echo-Devices.<DEVICE_SERIAL>.Player.volume
Note
Volume zieht das Volumen einer Gruppe beim Einsatz eines Alexa-Echo mit.
- Es sind keine weiteren Einstellungen zu berücksichtigen. Der Datenpunkt
alexa2.0.Echo-Devices.<DEVICE_SERIAL>.Player.controlRepeat
wird genutzt und hat die beiden boolschen Zustände true/false`
Important
Die Alexa-Adapterinstanz verfügt über Klangsteuerungs-Datenpunkte. Diese werden jedoch über ein separates Script gesteuert.
Für den Fall, dass der Equalizer zum Einsatz kommt, bitte weiteren Link befolgen: https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker---FAQ-&-Anleitungen#12-equalizer-f%C3%BCr-cardmedia
- Das Array playList im PageItem wird genutzt. Die Playlists sind dort manuell einzutragen
- Das Array speakerList im PageItem wird genutzt. Die Wiedergabegeräte sind dort manuell einzutragen. Falls das Array leer ist, werden alle verfügbaren Devices eingeblendet.
- Sofern ein weiterer Titel in der Track Liste verfügbar ist, so wird dieser ausgewählt -->
alexa2.0.Echo-Devices.<DEVICE_SERIAL>.Player.controlNext
- Umschaltung zwischen den Datenpunkten
alexa2.0.Echo-Devices.<DEVICE_SERIAL>.Player.controlPlay
undalexa2.0.Echo-Devices.<DEVICE_SERIAL>.Player.controlPause
- Die Feinjustierung der aktuellen Lautstärke in Einerschritten (-1) --> Datenpunkt:
alexa2.0.Echo-Devices.<DEVICE_SERIAL>.Player.volume
- Umschaltung zwischen den Datenpunkten
alexa2.0.Echo-Devices.<DEVICE_SERIAL>.Player.controlShuffle
als wahr/falsch (true/false)
Note
Diese Funktion ist nicht steuerbar, wenn Radiosender abgespielt werden
- Sofern ein weiterer Track vor dem aktuell abgespielten Titel in der Track Liste verfügbar ist, so wird dieser ausgewählt -->
alexa2.0.Echo-Devices.<DEVICE_SERIAL>.Player.controlPrevious
- siehe Navigation
let Alexa: PageType =
{
type: 'cardMedia',
heading: 'Alexa',
items: [
{
id: AliasPath + 'Media.PlayerAlexa',
adapterPlayerInstance: 'alexa2.0.',
mediaDevice: 'G070RR10752XXXXX', // Die Seriennummer des Primär-Devices; Es ist auch eine Gruppe möglich
speakerList: [
// Angabe von Echo-Devices über den Namen zur Steuerung durch das NSPanel, Falls leer, werden alle verfügbaren Devices geladen.
'Überall','Gartenhaus','Esszimmer','Echo Dot Küche','Echo Spot Buero'
],
//analog alexa2.0. Music-Provider. Der Aufruf erfolgt über einen String bestehend aus "Musikprovider.Bibliothek"
playList: [
// 'Amazon-Music.XXX',
// 'Amazon-Music-Playlist.XXX',
// 'Audible.XXX',
// 'Meine-Bibliothek.XXX',
// 'Meine-Bibliothek-Playlist.XXX',
// 'Spotify.XXX',
// 'Spotify-Playlist.XXX',
// 'TuneIn.XXX',
// 'TuneIn-Playlist.XXX',
'Amazon-Music-Playlist.Mein Discovery Mix', //Beispiele
'Amazon-Music-Playlist.Songs 2025',
'Amazon-Music-Playlist.Songs 2021',
'Amazon-Music-Playlist.Songs 2020',
'TuneIn.Radio Bob National',
'TuneIn.NDR2',
'TuneIn.FFN',
'Spotify-Playlist.Rock Party',
'Spotify-Playlist.This Is Nightwish',
'Spotify-Playlist.PartyPlaylist'
],
equalizerList: [
// die equalizerList ist optional und erfordert ein weiteres Script (siehe Beispiele)
'Bassboost','Klassik','Dance', 'Deep', 'Electronic', 'Flat', 'Hip-Hop', 'Rock',
'Metal', 'Jazz', 'Latin', 'Tonstärke', 'Lounge', 'Piano'
],
playerMediaIcon: 'logo-alexa', // Blendet das Picture-Logo ein - Alternativ kann ein Icon angeben werden
colorMediaIcon: colorAlexa, // Wird genutzt, wenn Icon angegeben ist
colorMediaTitle: Yellow, // Die Farbe der Textzeile des Titels
colorMediaArtist: Yellow, // Die Farbe der Textzeile des Artist
alwaysOnDisplay: true, // AOD (Always On Display), d.h. der Player bleibt geöffnet
autoCreateALias: true // Erstellt den erforderlichen Media-Alias-Channel automatisch unter alias.0.
}
]
};
Minimale Variablen-Definition
let Alexa: PageType =
{
type: 'cardMedia',
heading: 'Alexa',
items: [
{
id: AliasPath + 'Media.PlayerAlexa',
adapterPlayerInstance: 'alexa2.0.',
mediaDevice: 'G070RR10752XXXXX', // Die Seriennummer des Primär-Devices; Es ist auch eine Gruppe möglich
speakerList: [],
playList: [],
colorMediaIcon: colorAlexa, // Wird genutzt, wenn Icon angegeben ist
colorMediaTitle: Yellow, // Die Farbe der Textzeile des Titels
colorMediaArtist: Yellow, // Die Farbe der Textzeile des Artist
autoCreateALias: true // Erstellt den erforderlichen Media-Alias-Channel automatisch unter alias.0.
}
]
};
Important
Der Parameter autoCreateALias sollte nicht entfernt werden, da es nahezu unmöglich ist, diesen Alias-Media-Channel für die cardMedia manuell und korrekt zu erstellen, so dass die Funktionalität des Players nicht beeinträchtigt wird.