mirror of
https://github.com/joBr99/nspanel-lovelace-ui.git
synced 2026-02-23 13:02:14 +01:00
Updated NSPanel ‐ cardMedia ‐ Der Spotify‐Premium Player (markdown)
@@ -41,161 +41,97 @@ https://github.com/iobroker-community-adapters/ioBroker.spotify-premium/issues/1
|
|||||||
|
|
||||||
## Bedienungselemente / Anzeigen
|
## Bedienungselemente / Anzeigen
|
||||||
### 1. Seitentitel
|
### 1. Seitentitel
|
||||||
Der Seitentitel steht auf:
|
|
||||||
* der dem Parameter "heading" aus der Seitenvariable der cardMedia (z.B. Spotify-Premium), wenn keine Wiedergabe erfolgt. Wenn das Wiedergabegerät über die Spotify-Premium-Adapterinstanz (z.B. spotiy-premium.0.) im ALIAS `.CONTEXT_DESCRIPTION` auf:
|
Der dem Parameter "heading" aus der Seitenvariable der cardMedia (z.B. Spotify-Premium) wird visualisiert, wenn keine Wiedergabe erfolgt.
|
||||||
|
|
||||||
|
Wenn folgender Inhalt:
|
||||||
* Playlist: This Is
|
* Playlist: This Is
|
||||||
* Playlist:
|
* Playlist:
|
||||||
* Album:
|
* Album:
|
||||||
* Track:
|
* Track:
|
||||||
* Artist:
|
* Artist:
|
||||||
steht, wird dieser Content-Typ visualisiert
|
enthalten ist, wird dieser Content-Typ bereinigt visualisiert
|
||||||
|
|
||||||
### 2. Navigation zur nächsten Seite
|
### 2. Navigation zur nächsten Seite
|
||||||
* siehe [Navigation](ioBroker-Navigation)
|
* siehe [Navigation](ioBroker-Navigation)
|
||||||
|
|
||||||
### 3. Track (Elapsed|Duration)
|
### 3. Track (Elapsed|Duration)
|
||||||
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
|
||||||
* Titel --> sonos.0.root.<DEVICE_IP>.current_title
|
* Verstrichene Zeit (Minuten/Sekunden) des aktuell abgespielten Titels
|
||||||
* 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
|
||||||
* 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 Spotify-Premium Adapterinstanz und steht per Default auf 10 Sekunden.
|
||||||
> Die Aktualisierung in Sekunden steht in Abhängigkeit zur Sonos Adapterinstanz `Aktualisierung des Lied-Timers` und steht per Default auf 2000ms.
|
Das führt zu unschönen Ergebnissen in Verbindung mit einem bekannten Fehler des Adapters. Die Zeit sollte demnach auf 1 Sekunde reduziert werden.
|
||||||
> 
|
|
||||||
### 4. Interpret | Album
|
### 4. Interpret | Album
|
||||||
Folgende Datenpunkte der Sonos Adapterinstanz werden berücksichtigt:
|
Folgende Datenpunkte der Spotfiy-Premium Adapterinstanz werden berücksichtigt:
|
||||||
* Interpret --> `sonos.0.root.<DEVICE_IP>.current_artist` (beim Abspielen von Radiosendern abweichende Informationen zum Sender)
|
* Interpret
|
||||||
* Album --> `sonos.0.root.<DEVICE_IP>.current_album` (beim Abspielen von Radiosendern abweichende Informationen zum Sender)
|
* Album
|
||||||
|
|
||||||
### 5. Player An/Aus (Stop)
|
### 5. Player An/Aus (Stop)
|
||||||
* Stop (Icon blau) --> `sonos.0.root.<DEVICE_IP>.stop` (beim Abspielen weiß)
|
* Stopp (Icon blau)
|
||||||
|
|
||||||
### 6. Volume lauter
|
### 6. Volume lauter
|
||||||
* Die Feinjustierung der aktuellen Lautstärke in Einerschritten (+1) --> Datenpunkt: `sonos.0.root.<DEVICE_IP>.volume`
|
* Die Feinjustierung der aktuellen Lautstärke in Einerschritten (+1)
|
||||||
|
|
||||||
### 7. Volume zwischen 0% und 100%
|
### 7. Volume zwischen 0% und 100%
|
||||||
* Die Feinjustierung der aktuellen Lautstärke erfolgt stufenlos zwischen 0% und 100% --> Datenpunkt: `sonos.0.root.<DEVICE_IP>.volume`
|
* Die Feinjustierung der aktuellen Lautstärke erfolgt stufenlos zwischen 0% und 100%
|
||||||
> [!NOTE]
|
> [!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.
|
|
||||||
> 
|
|
||||||
> 
|
|
||||||
|
|
||||||
### 8. Repeat-Funktion
|
### 8. Repeat-Funktion
|
||||||
* Es sind keine weiteren Einstellungen zu berücksichtigen. Der Datenpunkt `sonos.0.root.<DEVICE_IP>.repeat` wird genutzt und inkrementiert die Werte `none(0)`, `all(1)` und `one(2)`
|
* Es sind keine weiteren Einstellungen zu berücksichtigen.
|
||||||
|
|
||||||
### 9. SONOS Favoriten (Alternativ Equalizer)
|
### 9. Equalizer
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> Dieses Steuerelement kann unterschiedliche Eigenschaften annehmen
|
> Dieses Steuerelement wird nicht über die Spotify-Premium Instanz gesteuert
|
||||||
#### Steuerelement als SONOS Favoriten:
|
|
||||||

|
|
||||||
|
|
||||||
Das PageItem enthält keinen equalizerString --> Die Favoriten werden automatisch aus dem Datenpunkt: `sonos.0.root.<DEVICE_IP>.favorites_list_array` extrahiert:
|
|
||||||
> [!CAUTION]
|
|
||||||
> ```typescript
|
|
||||||
>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
|
|
||||||
> }]
|
|
||||||
>};
|
|
||||||
> ```
|
|
||||||
#### Steuerelement als Equalizer:
|
#### Steuerelement als Equalizer:
|
||||||

|

|
||||||
|
|
||||||
* Innerhalb des `PageItem` wird der `Equalizer` und in diesem Beispiel ebenfalls der Parameter `crossfade` definiert:
|
|
||||||
> [!CAUTION]
|
|
||||||
> ```typescript
|
|
||||||
> 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]
|
> [!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.
|
> Die Spotify-Premium Adapterinstanz verfügt nicht über Klangsteuerungs-Datenpunkte. Es kann jedoch bei SONOS die HTTP API https://github.com/jishi/node-sonos-http-api#usage genutzt werden oder alternativ bei z.B. Alexa die 3-Punkt Klangsteuerung.
|
||||||
>
|
>
|
||||||
> 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
|
> Für den Fall, dass der Equalizer aktiv genutzt werden soll, 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](#favoriten-liste)
|
|
||||||
|
|
||||||
### 10. Track Liste
|
### 10. Track Liste
|
||||||
* Sofern der Datenpunkt `sonos.0.root.<DEVICE_IP>.queue` Daten enthält und die abspielbaren Medien eine Trackliste enthalten, so wird diese automatisch geladen.
|
* Sofern eine Playlist abgespielt wird die eine Trackliste enthält, so wird diese automatisch geladen.
|
||||||

|
|
||||||
> [!NOTE]
|
|
||||||
> Sollten weitere Tracks vorhanden sein, so können diese über den rechtsangeordneten Pfeil erreicht werden
|
> Sollten weitere Tracks vorhanden sein, so können diese über den rechtsangeordneten Pfeil erreicht werden
|
||||||
|
|
||||||
### 11. SONOS Playlist
|
### 11. Spotify-Premium Playlist
|
||||||
* Das Array playList im PageItem wird genutzt. Die Playlists sind dort manuell einzutragen
|
* Das Array playList im PageItem wird genutzt.
|
||||||

|
|
||||||
|
|
||||||
> [!NOTE]
|
Wenn das Array leer ist [], dann werden die Playlisten automatisch aus dem Adapter geladen.
|
||||||
> siehe auch [Erstellung einer Sonos Playlist](#individuelle-wiedergabe-liste-array-playlist)
|
|
||||||
|
|
||||||
### 12. SONOS Speaker Liste
|
Andernfalls können die bevorzugten Playlists dort manuell eingetragen werden
|
||||||
|
|
||||||
|
### 12. Spotify-Premium Speaker Liste
|
||||||
|
2 Varianten
|
||||||
|
* Ist das Array leer [], dann werden die Wiedergabegeräte automatisch importiert
|
||||||
* Das Array speakerList im PageItem wird genutzt. Die Wiedergabegeräte sind dort manuell einzutragen
|
* Das Array speakerList im PageItem wird genutzt. Die Wiedergabegeräte sind dort manuell einzutragen
|
||||||

|
|
||||||
> [!NOTE]
|
|
||||||
> siehe auch [Erstellung einer speakerList](#speaker-liste-array-speakerlist)
|
|
||||||
|
|
||||||
### 13. Nächster Track
|
### 13. Nächster Track
|
||||||
* Sofern ein weiterer Titel in der Track Liste verfügbar ist, so wird dieser ausgewählt --> `sonos.0.root.<DEVICE_IP>.next`
|
* Sofern ein weiterer Titel in der Track Liste verfügbar ist, so wird dieser ausgewählt
|
||||||
|
|
||||||
### 14. Play / Pause
|
### 14. Play / Pause
|
||||||
* Umschaltung zwischen den Datenpunkten `sonos.0.root.<DEVICE_IP>.play` und `sonos.0.root.<DEVICE_IP>.pause`
|
* Umschaltung zwischen Play und Pause
|
||||||
|
|
||||||
### 15. Volume leiser
|
### 15. Volume leiser
|
||||||
* Die Feinjustierung der aktuellen Lautstärke in Einerschritten (-1) --> Datenpunkt: `sonos.0.root.<DEVICE_IP>.volume`
|
* Die Feinjustierung der aktuellen Lautstärke in Einerschritten (-1)
|
||||||
|
|
||||||
### 16. Shuffle
|
### 16. Shuffle
|
||||||
* Umschaltung zwischen den Datenpunkten `sonos.0.root.<DEVICE_IP>.shuffle` als wahr/falsch (true/false)
|
* Umschaltung zwischen Shule an/aus, soffern das Wiedergabemedium dieses unterstützt
|
||||||
> [!NOTE]
|
|
||||||
> Diese Funktion ist nicht steuerbar, wenn Radiosender abgespielt werden
|
|
||||||
|
|
||||||
### 17. Vorheriger Track
|
### 17. Vorheriger Track
|
||||||
* 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`
|
* Sofern ein weiterer Track vor dem aktuell abgespielten Titel in der Track Liste verfügbar ist, so wird dieser ausgewählt
|
||||||
|
|
||||||
### 18. Player Logo / Seek Funktion (Alternativ Crossfade)
|
### 18. Player Logo / Seek Funktion
|
||||||
Per Standard ist der Seek-Modus aktiv. Dieser wird mit Klick auf das Logo des Players aufgerufen:
|
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).
|
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
|
|
||||||

|
|
||||||
|
|
||||||
### 19. Navigation zur vorherigen Seite
|
### 19. Navigation zur vorherigen Seite
|
||||||
* siehe [Navigation](ioBroker-Navigation)
|
* siehe [Navigation](ioBroker-Navigation)
|
||||||
|
|
||||||
@@ -203,56 +139,6 @@ Jetzt ist es möglich eine Position des Tracks (Titels) in 10% Schritten zu erre
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Variablen Beispiele:
|
|
||||||
### Standard Beispielvorlage für AlwaysOnDisplay
|
|
||||||
In diesem Beispiel wird der Screensaver nach eingestellter nicht aufgeschaltet. Der Player bleibt geöffnet bis zu einer Seite ohne alwaysOnDisplay navigiert wird.
|
|
||||||
```typescript
|
|
||||||
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
|
|
||||||
}]
|
|
||||||
};
|
|
||||||
```
|
|
||||||
|
|
||||||
### Standard Beispielvorlage ohne AlwaysOnDisplay
|
|
||||||
In diesem Beispiel wird der Screensaver nach eingestellter Zeit aufgerufen. Der Player wird geschlossen.
|
|
||||||
```typescript
|
|
||||||
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]
|
> [!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.
|
> 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.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user