-
-
Notifications
You must be signed in to change notification settings - Fork 193
NSPanel ‐ cardMedia ‐ Der Spotify‐Premium Player
!!! Diese Seite befindet sich aktuell im Aufbau !!!
Inhalt:
- Aufbau des Spotify-Premium Players
- Erstellung der Seitenvariable für die cardMedia
- Erstellung der Spotify-Premium Listen
- Der Auto-Alias
- cardMedia Spotify-Premium FAQ
(vollständig ab NSPanelTs.ts - Version 4.3.3.42)
Der Player benötigt eine korrekt eingerichtete Instanz des ioBroker Spotify-Premium Community Adapters: https://github.com/iobroker-community-adapters/ioBroker.spotify-premium
Damit die Elapsed/Duration Anzeige nicht permanent auf 0:00 zurückspringt, ist es die Instanz-Empfehlungen zu ignorieren und olgende Einstellungen zu verwenden:
Weiter Infos zu diesem Fehler: https://github.com/iobroker-community-adapters/ioBroker.spotify-premium/issues/167
und mit den beiden alternativen Einstellungen für:
- den Equalizer und
- die Crossfade-Funktion
Der Seitentitel steht auf:
- der dem Parameter "heading" aus der Seitenvariable der cardMedia (z.B. Sonos Player), wenn keine Wiedergabe erfolgt oder wenn das Wiedergabegerät über die Sonos-Adapterinstanz (z.B. sonos.0.) im Datenpunkt
sonos.0.root.<DEVICE_IP>.current_type
auf track(0) steht -
sonos.0.root.<DEVICE_IP>.current_station
wenn ein Radiosender gewählt wurde
- siehe Navigation
Zeigt die folgenden Datenpunkte der aktiven Sonos Adapterinstanz wenn der Wert des Datenpunktes sonos.0.root.<DEVICE_IP>.current_type
auf track(0) steht:
- Titel --> sonos.0.root.<DEVICE_IP>.current_title
- Verstrichene Zeit (Minuten/Sekunden) des aktuell abgespielten Titels (nicht bei Radio) -->
sonos.0.root.<DEVICE_IP>.current_elapsed_s
- Gesamtlänge (Minuten/Sekunden) des aktuell abgespielten Titels (nicht bei Radio) -->
sonos.0.root.<DEVICE_IP>.current_duration_s
Important
Die Aktualisierung in Sekunden steht in Abhängigkeit zur Sonos Adapterinstanz Aktualisierung des Lied-Timers
und steht per Default auf 2000ms.
Folgende Datenpunkte der Sonos Adapterinstanz werden berücksichtigt:
- Interpret -->
sonos.0.root.<DEVICE_IP>.current_artist
(beim Abspielen von Radiosendern abweichende Informationen zum Sender) - Album -->
sonos.0.root.<DEVICE_IP>.current_album
(beim Abspielen von Radiosendern abweichende Informationen zum Sender)
- Stop (Icon blau) -->
sonos.0.root.<DEVICE_IP>.stop
(beim Abspielen weiß)
- Die Feinjustierung der aktuellen Lautstärke in Einerschritten (+1) --> Datenpunkt:
sonos.0.root.<DEVICE_IP>.volume
- Die Feinjustierung der aktuellen Lautstärke erfolgt stufenlos zwischen 0% und 100% --> Datenpunkt:
sonos.0.root.<DEVICE_IP>.volume
Note
Volume zieht das Volumen einer Gruppe beim Einsatz einer Sonos-Box mit. Wenn das Group-Volume (sonos.0.root.<DEVICE_IP>.group_volume
) benötigt wird, so ist der Datenpunkt nach Erstellung des Auto-Alias entsprechend zu ändern.
- Es sind keine weiteren Einstellungen zu berücksichtigen. Der Datenpunkt
sonos.0.root.<DEVICE_IP>.repeat
wird genutzt und inkrementiert die Wertenone(0)
,all(1)
undone(2)
Note
Dieses Steuerelement kann unterschiedliche Eigenschaften annehmen
Das PageItem enthält keinen equalizerString --> Die Favoriten werden automatisch aus dem Datenpunkt: sonos.0.root.<DEVICE_IP>.favorites_list_array
extrahiert:
Caution
let SpotifyPremium: PageType =
{
'type': 'cardMedia',
'heading': 'Spotify-Premium',
'items': [{
id: AliasPath + 'Media.PlayerSpotifyPremium',
adapterPlayerInstance: "spotify-premium.0.",
speakerList: [],
playList: [],
equalizerList: ['Bassboost','Klassik','Dance', 'Deep', 'Electronic', 'Flat', 'Hip-Hop', 'Rock',
'Metal', 'Jazz', 'Latin', 'Tonstärke', 'Lounge', 'Piano'],
colorMediaIcon: colorSpotify,
colorMediaArtist: Yellow,
colorMediaTitle: Yellow,
alwaysOnDisplay: true,
autoCreateALias: true
}]
};
- Innerhalb des
PageItem
wird derEqualizer
und in diesem Beispiel ebenfalls der Parametercrossfade
definiert:
Caution
let Sonos: PageType =
{
'type': 'cardMedia',
'heading': 'Sonos',
'useColor': true,
'items': [{
id: AliasPath + 'Media.PlayerSonos',
adapterPlayerInstance: 'sonos.0.',
mediaDevice: '192_168_1_212',
speakerList: ['Terrasse'],
playList: ['Hartmann','Armilars Playlist'],
equalizerList: ['Bassboost','Klassik','Dance', 'Deep', 'Electronic', 'Flat', 'Hip-Hop', 'Rock',
'Metal', 'Jazz', 'Latin', 'Tonstärke', 'Lounge', 'Piano'],
colorMediaIcon: colorSonos,
colorMediaArtist: Yellow,
colorMediaTitle: Yellow,
crossfade: true,
alwaysOnDisplay: true,
autoCreateALias: true
}]
};
Important
Die Sonos Adapterinstanz verfügt nicht über Klangsteuerungs-Datenpunkte. Es kann jedoch die SONOS HTTP API https://github.com/jishi/node-sonos-http-api#usage genutzt werden.
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
Note
siehe auch Erstellung der Sonos Favoriten
- Sofern der Datenpunkt
sonos.0.root.<DEVICE_IP>.queue
Daten enthält und die abspielbaren Medien eine Trackliste enthalten, so wird diese automatisch geladen.
Note
Sollten weitere Tracks vorhanden sein, so können diese über den rechtsangeordneten Pfeil erreicht werden
- Das Array playList im PageItem wird genutzt. Die Playlists sind dort manuell einzutragen
Note
siehe auch Erstellung einer Sonos Playlist
- Das Array speakerList im PageItem wird genutzt. Die Wiedergabegeräte sind dort manuell einzutragen
Note
siehe auch Erstellung einer speakerList
- Sofern ein weiterer Titel in der Track Liste verfügbar ist, so wird dieser ausgewählt -->
sonos.0.root.<DEVICE_IP>.next
- Umschaltung zwischen den Datenpunkten
sonos.0.root.<DEVICE_IP>.play
undsonos.0.root.<DEVICE_IP>.pause
- Die Feinjustierung der aktuellen Lautstärke in Einerschritten (-1) --> Datenpunkt:
sonos.0.root.<DEVICE_IP>.volume
- Umschaltung zwischen den Datenpunkten
sonos.0.root.<DEVICE_IP>.shuffle
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 -->
sonos.0.root.<DEVICE_IP>.prev
Per Standard ist der Seek-Modus aktiv. Dieser wird mit Klick auf das Logo des Players aufgerufen:
Jetzt ist es möglich eine Position des Tracks (Titels) in 10% Schritten zu erreichen (vor- und zurückspulen).
Note
Wird im PageItem der Parameter
crossfade: true
verwendet, dann wird statt der Seek-Funktion Crossfade zur Auswahl aktiv
- siehe Navigation
In diesem Beispiel wird der Screensaver nach eingestellter nicht aufgeschaltet. Der Player bleibt geöffnet bis zu einer Seite ohne alwaysOnDisplay navigiert wird.
let Sonos: PageType =
{
'type': 'cardMedia',
'heading': 'Sonos Player',
'useColor': true,
'items': [{
id: AliasPath + 'Media.PlayerSonos',
adapterPlayerInstance: 'sonos.0.',
mediaDevice: '192_168_1_212',
speakerList: ['Wohnzimmer', 'Küche', Büro],
playList: ['Hartmann','Armilars Playlist'],
colorMediaIcon: colorSonos,
colorMediaArtist: Yellow,
colorMediaTitle: Yellow,
alwaysOnDisplay: true,
autoCreateALias: true
}]
};
In diesem Beispiel wird der Screensaver nach eingestellter Zeit aufgerufen. Der Player wird geschlossen.
let Sonos: PageType =
{
'type': 'cardMedia',
'heading': 'Sonos Player',
'useColor': true,
'items': [{
id: AliasPath + 'Media.PlayerSonos',
adapterPlayerInstance: 'sonos.0.',
mediaDevice: '192_168_1_212',
speakerList: ['Wohnzimmer', 'Küche', Büro],
playList: ['Hartmann','Armilars Playlist'],
colorMediaIcon: colorSonos,
colorMediaArtist: Yellow,
colorMediaTitle: Yellow,
autoCreateALias: true
}]
};
mediaDevice ist hierbei die mit '_' getrennte IP des primären Wiedergabegerätes und muss angepasst werden. Der Inhalt ist analog des Datenpunktes sonos.0.root.<DEVICE_IP>.coordinator
Caution
Nicht zu empfehlen!!!: Der Parameter autoCreateALias kann ebenfalls entfernt werden, jedoch muss ein korrekter Media-Alias mit dem Channel "media" und den vom NSPanelTs.ts - Skript erwarteten Datenpunkten dann "per Hand" erstellt werden. Da es nahezu unmöglich ist unter ioBroker einen korrekten und vollständigen Media-Alias zu erstellen, übernimmt das Skript mit diesem Parameter diese Aufgabe.