From 8766279cba7b5895fc8d3eed46d8750e87d6e41f Mon Sep 17 00:00:00 2001 From: Armilar <102996011+Armilar@users.noreply.github.com> Date: Sat, 10 Feb 2024 19:11:15 +0100 Subject: [PATCH] =?UTF-8?q?Updated=20NSPanel=20=E2=80=90=20cardMedia=20?= =?UTF-8?q?=E2=80=90=20Der=20Spotify=E2=80=90Premium=20Player=20(markdown)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...-cardMedia-‐-Der-Spotify‐Premium-Player.md | 221 ++++++++++++++++++ 1 file changed, 221 insertions(+) diff --git a/NSPanel-‐-cardMedia-‐-Der-Spotify‐Premium-Player.md b/NSPanel-‐-cardMedia-‐-Der-Spotify‐Premium-Player.md index a520dbc..6b4c6ea 100644 --- a/NSPanel-‐-cardMedia-‐-Der-Spotify‐Premium-Player.md +++ b/NSPanel-‐-cardMedia-‐-Der-Spotify‐Premium-Player.md @@ -33,4 +33,225 @@ Damit die Elapsed/Duration Anzeige nicht permanent auf 0:00 zurückspringt, ist Weiter Infos zu diesem Fehler: https://github.com/iobroker-community-adapters/ioBroker.spotify-premium/issues/167 +## Player im Live-Betrieb: + +![Nextion_Editor_OU5vhqrVgr](https://github.com/joBr99/nspanel-lovelace-ui/assets/102996011/6d051f61-bcfb-40ac-84fd-abfcb34f62fe) + +und mit **den beiden alternativen Einstellungen** für: +* den Equalizer und +* die Crossfade-Funktion + +![Nextion_Editor_UYuOfvSHCY](https://github.com/joBr99/nspanel-lovelace-ui/assets/102996011/08fb83b9-f4d3-45de-9f53-8bdd616711df) + +## Bedienungselemente / Anzeigen +### 1. Seitentitel +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..current_type` auf track(0) steht +* `sonos.0.root..current_station` wenn ein Radiosender gewählt wurde + +### 2. Navigation zur nächsten Seite +* siehe [Navigation](ioBroker-Navigation) + +### 3. Track (Elapsed|Duration) +Zeigt die folgenden Datenpunkte der aktiven Sonos Adapterinstanz wenn der Wert des Datenpunktes `sonos.0.root..current_type` auf track(0) steht: +* Titel --> sonos.0.root..current_title +* Verstrichene Zeit (Minuten/Sekunden) des aktuell abgespielten Titels (nicht bei Radio) --> `sonos.0.root..current_elapsed_s` +* Gesamtlänge (Minuten/Sekunden) des aktuell abgespielten Titels (nicht bei Radio) --> `sonos.0.root..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. +> ![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/102996011/6770fd4c-271f-499e-a935-7e2217631ea9) +### 4. Interpret | Album +Folgende Datenpunkte der Sonos Adapterinstanz werden berücksichtigt: +* Interpret --> `sonos.0.root..current_artist` (beim Abspielen von Radiosendern abweichende Informationen zum Sender) +* Album --> `sonos.0.root..current_album` (beim Abspielen von Radiosendern abweichende Informationen zum Sender) + +### 5. Player An/Aus (Stop) +* Stop (Icon blau) --> `sonos.0.root..stop` (beim Abspielen weiß) + +### 6. Volume lauter +* Die Feinjustierung der aktuellen Lautstärke in Einerschritten (+1) --> Datenpunkt: `sonos.0.root..volume` + +### 7. Volume zwischen 0% und 100% +* Die Feinjustierung der aktuellen Lautstärke erfolgt stufenlos zwischen 0% und 100% --> Datenpunkt: `sonos.0.root..volume` +> [!NOTE] +> Volume zieht das Volumen einer Gruppe beim Einsatz einer Sonos-Box mit. Wenn das Group-Volume (`sonos.0.root..group_volume`) benötigt wird, so ist der Datenpunkt nach Erstellung des Auto-Alias entsprechend zu ändern. +> ![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/102996011/27165f31-9d25-4921-98b9-1c3a7e46cf82) +> ![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/102996011/ca9c5cd2-1fa0-467e-ae01-5dc968b26e63) + +### 8. Repeat-Funktion +* Es sind keine weiteren Einstellungen zu berücksichtigen. Der Datenpunkt `sonos.0.root..repeat` wird genutzt und inkrementiert die Werte `none(0)`, `all(1)` und `one(2)` + +### 9. SONOS Favoriten (Alternativ Equalizer) +> [!NOTE] +> Dieses Steuerelement kann unterschiedliche Eigenschaften annehmen +#### Steuerelement als SONOS Favoriten: +![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/102996011/2cedade5-89ca-46bf-a8d8-5e4e4c2c3573) + +Das PageItem enthält keinen equalizerString --> Die Favoriten werden automatisch aus dem Datenpunkt: `sonos.0.root..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: +![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/102996011/66ef5685-e7de-43e5-a574-84e15779799f) + +* 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] +> 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](#favoriten-liste) + +### 10. Track Liste +* Sofern der Datenpunkt `sonos.0.root..queue` Daten enthält und die abspielbaren Medien eine Trackliste enthalten, so wird diese automatisch geladen. +![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/102996011/44c5b0b6-7bbd-4372-ad8e-244f5e9bb729) +> [!NOTE] +> Sollten weitere Tracks vorhanden sein, so können diese über den rechtsangeordneten Pfeil erreicht werden + +### 11. SONOS Playlist +* Das Array playList im PageItem wird genutzt. Die Playlists sind dort manuell einzutragen +![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/102996011/7a544d32-7fe1-45f8-b9fb-50ad5a259628) + +> [!NOTE] +> siehe auch [Erstellung einer Sonos Playlist](#individuelle-wiedergabe-liste-array-playlist) + +### 12. SONOS Speaker Liste +* Das Array speakerList im PageItem wird genutzt. Die Wiedergabegeräte sind dort manuell einzutragen +![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/102996011/da4e95e3-9091-43da-9712-744e85a30c0c) +> [!NOTE] +> siehe auch [Erstellung einer speakerList](#speaker-liste-array-speakerlist) + +### 13. Nächster Track +* Sofern ein weiterer Titel in der Track Liste verfügbar ist, so wird dieser ausgewählt --> `sonos.0.root..next` + +### 14. Play / Pause +* Umschaltung zwischen den Datenpunkten `sonos.0.root..play` und `sonos.0.root..pause` + +### 15. Volume leiser +* Die Feinjustierung der aktuellen Lautstärke in Einerschritten (-1) --> Datenpunkt: `sonos.0.root..volume` + +### 16. Shuffle +* Umschaltung zwischen den Datenpunkten `sonos.0.root..shuffle` als wahr/falsch (true/false) +> [!NOTE] +> Diese Funktion ist nicht steuerbar, wenn Radiosender abgespielt werden + +### 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..prev` + +### 18. Player Logo / Seek Funktion (Alternativ Crossfade) +Per Standard ist der Seek-Modus aktiv. Dieser wird mit Klick auf das Logo des Players aufgerufen: +![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/102996011/f78a8093-351f-4a5f-b58b-415f78bf4e2d) + +Jetzt ist es möglich eine Position des Tracks (Titels) in 10% Schritten zu erreichen (vor- und zurückspulen). +![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/102996011/ee9ce338-5c0e-465d-935c-df55adf8642c) + +> [!NOTE] +> Wird im PageItem der Parameter +> `crossfade: true` +> verwendet, dann wird statt der Seek-Funktion Crossfade zur Auswahl aktiv +![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/102996011/7d2387fa-b943-4540-ae7e-efbb2c98b763) + +### 19. Navigation zur vorherigen Seite +* siehe [Navigation](ioBroker-Navigation) + +# Erstellung der Seitenvariable für die cardMedia + +![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/102996011/e87fd566-af21-475e-80dd-81e6225e52e9) + +## 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..coordinator` +![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/102996011/6de74a6c-0aed-480e-9a07-196148d01a25) + +> [!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. +