Sonos: Cover des MasterPlayers im TabletUI anzeigen

Begonnen von Chr42, 09 Januar 2017, 20:40:25

Vorheriges Thema - Nächstes Thema

Chr42

Hallo zusammen,

mit Hilfe eurer Beispiele habe ich es hinbekommen, im TabletUI eine Seite zur Steuerung meines Sonos-Systems zu basteln. Eine kleine Sache stört noch:

Wenn mehrere Lautsprecher gruppiert sind, zeigt nur der MasterPlayer das korrekte Cover an, denn das Reading currentAlbumURL des zweiten Lautsprechers hat den Wert /fhem/sonos/cover/empty.jpg. Ich habe nun versucht, in diesem Fall das Cover des MasterPlayers anzeigen zu lassen, aber bekomme es nicht hin.  :-\   

Kann man das über ein Dummy lösen, indem man dort die currentAlbumArtURL des MasterPlayers hineinschreibt? Und wenn ja: wie? :-[

Bisher mache ich die Cover-Anzeige im TabletUI mit

<div data-type="image" data-device="Sonos_Schlafzimmer" data-get="currentAlbumArtURL" data-size="60%" class="top-space"></div>

Danke für eure Hilfe!
Christoph

heig

Hi, sorry ich hab zwar keine Lösung aber ne Frage :) wie hast du den "Link" Button gebaut? :)

Danke dir

Chr42

Hi,

da bei mir nur 3 verschiedene Varianten für Gruppen auftreten, habe die Link-Button wie folgt implementiert:

Der Button ganz links erzeugt drei ungruppierte Player:

      <div data-type="push" data-device="Sonos"
           data-set-on="Groups [Sonos_Wohnzimmer], [Sonos_Kueche], [Sonos_Schlafzimmer]"   
           data-icon="fa-chain-broken"></div>


Der Button in der Mitte gruppiert Wohnzimmer und Küche:

      <div data-type="push" data-device="Sonos"
           data-set-on="Groups [Sonos_Wohnzimmer, Sonos_Kueche], [Sonos_Schlafzimmer]"   
           data-icon="fa-chain"></div>


Der Button rechts gruppiert alle drei Player:

      <div data-type="push" data-device="Sonos"
           data-set-on="Groups [Sonos_Wohnzimmer, Sonos_Kueche, Sonos_Schlafzimmer]"   
           data-icon="fa-chain"></div>


Viele Grüße
Christoph

Chr42

Ich habe eine Lösung gefunden, die zu funktionieren scheint:

Man erzeugt ein userReading, in welchem das Cover des MasterPlayers gespeichert wird:

MasterPlayerCoverURL { ReadingsVal(ReadingsVal("Sonos_Kueche", "MasterPlayer", "Sonos_Kueche"), "currentAlbumArtURL", 0) }

Ist der Player nicht gruppiert, so ist er sein eigener MasterPlayer, sodass dieses Reading MasterPlayerCoverURL generell zur Anzeige des Covers benutzt werden kann.

Das Problem, dass sich das userReading auch aktualisieren muss, wenn sich am MasterPlayer das Cover verändert, habe ich über ein notify gelöst.