Skip to content

NSPanel ‐ cardMedia ‐ Der Amazon Alexa Player

Armilar edited this page Apr 14, 2025 · 19 revisions

image

  • 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:

Aufbau des Alexa Players

(vollständig ab NSPanelTs.ts - Version 4.7.1)

image

Player im Live-Betrieb:

TabTip_gVrfrvydjm

Bedienungselemente / Anzeigen

1. Seitentitel

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.

2. Navigation zur nächsten Seite

3. Track (Elapsed|Duration)

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).

4. Interpret | Album

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)

5. Player An/Aus (Stop)

  • Stop (Icon blau) --> alexa2.0.Echo-Devices.<DEVICE_SERIAL>.Commands.deviceStop (beim Abspielen weiß)

6. Volume lauter

  • Die Feinjustierung der aktuellen Lautstärke in Einerschritten (+1) --> Datenpunkt: alexa2.0.Echo-Devices.<DEVICE_SERIAL>.Player.volume

7. Volume zwischen 0% und 100%

  • 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.

8. Repeat-Funktion

  • 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`

9. Equalizer)

Steuerelement als Equalizer:

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

10. Alexa-Playlist

  • Das Array playList im PageItem wird genutzt. Die Playlists sind dort manuell einzutragen

11. Alexa Speaker Liste

  • 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.

12. Nächster Track

  • Sofern ein weiterer Titel in der Track Liste verfügbar ist, so wird dieser ausgewählt --> alexa2.0.Echo-Devices.<DEVICE_SERIAL>.Player.controlNext

13. Play / Pause

  • Umschaltung zwischen den Datenpunkten alexa2.0.Echo-Devices.<DEVICE_SERIAL>.Player.controlPlay und alexa2.0.Echo-Devices.<DEVICE_SERIAL>.Player.controlPause

14. Volume leiser

  • Die Feinjustierung der aktuellen Lautstärke in Einerschritten (-1) --> Datenpunkt: alexa2.0.Echo-Devices.<DEVICE_SERIAL>.Player.volume

15. Shuffle

  • 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

16. Vorheriger Track

  • 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

17. Navigation zur vorherigen Seite

Der Auto-Alias

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.

Clone this wiki locally