CoverArts von Squeezebox Player bei Titelwechsel aktualisieren in TabletUI

Begonnen von bart0190, 02 Dezember 2018, 12:33:05

Vorheriges Thema - Nächstes Thema

bart0190

Hallo,
Ich habe einen Logitech LMS auf meinem PC (Server) laufen und einen Squeezebox Player (piCorePlayer) auf einem Raspberry Pi laufen. Einbindung und Abspielen läuft super. Jetzt habe ich bei meiner TabletUI Oberfläche auch die Anzeige von Artist, Titel und Cover implementiert. Jetzt ist es aber so, dass bei Titelwechsel diese Dinger nicht aktualisiert werden. Erst wenn ich die Seite refreshe kommt (logischerweise) das aktuelle Cover/Artist/Titel.
Da ich das Cover über image und den Titel über label eingebunden habe, bringt, soweit ich das verstehe, das WEB longpoll hier nichts.

Hat jemand eine Idee, wie ich die Aktualisierung automatisch hinbekommen könnte?

Hier der Code und Bild angehängt.

Nur der Auszug der Anzeige von Titel/Cover:
            <div class="row"> <!-- 2. Reihe Anfang -->

              <div class="cell">
                <div data-type="label"
                   data-device="Wohnzimmer_SB_Player"
                   data-get="currentArtist"
                   class="">
                </div>
              </div>

              <div class="cell">
                <div data-type="image"
                   data-device="Wohnzimmer_SB_Player"
                   data-get="coverarturl"
                   data-size="200px"
                   data-opacity = "1"
                   style="">
                 </div>
              </div>

              <div class="cell">
                <div data-type="label"
                   data-device="Wohnzimmer_SB_Player"
                   data-get="currentTitle"
                   class="">
                </div>
              </div>

            </div> <!-- 2. Reihe ende -->


der ganze Code vom Wohnzimmerbereich:

        <li data-row="1" data-col="2" data-sizex="3" data-sizey="4">
          <header>Wohnzimmer</header>

          <div class="sheet">
            <div class="row">
              <div class="cell">
                <div data-type="switch"
                  data-device="Wohnzimmer_SB_Player"
                  data-icon="fa-step-backward"
                  data-background-icon="-"
                  data-set-on="next"
                  data-set-off="next"
                  data-on-color="#58ACFA"
                  data-off-color="#aa6900"
                  class="inline">
                </div>
              </div>

              <div class="cell">

                <div data-type="switch"
                  data-device="Wohnzimmer_SB_Player"
                  data-get="playStatus"
                  data-set-on="play"
                  data-set-off="pause 1"
                  data-icon="fa-play"
                  data-get-on="playing"
                  data-get-off='["paused","stopped"]'
                  data-on-color="blue"
                  data-on-background-color="green"
                  class="inline">
                </div>


              </div>

              <div class="cell">
                <div data-type="switch"
                  data-device="Wohnzimmer_SB_Player"
                  data-icon="fa-step-forward"
                  data-background-icon="-"
                  data-set-on="next"
                  data-set-off="next"
                  data-on-color="#58ACFA"
                  data-off-color="#aa6900"
                  class="inline">
                </div>
              </div>
            </div> <!-- 1. Reihe ende -->

            <div class="row"> <!-- 2. Reihe Anfang -->

              <div class="cell">
                <div data-type="label"
                   data-device="Wohnzimmer_SB_Player"
                   data-get="currentArtist"
                   class="">
                </div>
              </div>

              <div class="cell">
                <div data-type="image"
                   data-device="Wohnzimmer_SB_Player"
                   data-get="coverarturl"
                   data-size="200px"
                   data-opacity = "1"
                   style="">
                 </div>
              </div>

              <div class="cell">
                <div data-type="label"
                   data-device="Wohnzimmer_SB_Player"
                   data-get="currentTitle"
                   class="">
                </div>
              </div>

            </div> <!-- 2. Reihe ende -->

            <div class="row"> <!-- 3. Reihe Anfang -->

              <div class="cell">
                <!-- Aktivität Musik ist "2" beim Harmony-Hub Ankleideraum -->
                <div data-type="switch"
                     data-device="Wohnzimmer_Hub"
                     data-icon="fa-power-off"
                     data-background-icon="fa-square-o"
                     data-get="activityStatus"
                     data-get-off="0"
                     data-get-on="2"
                     data-set-on="activity Musik; set Wohnzimmer_SB_Player play"
                     data-set-off="activity PowerOff; set Wohnzimmer_SB_Player pause 1"
                     data-on-color="#58ACFA"
                     data-on-background-color="#58ACFA"
                     data-off-color="grey"
                     data-off-background-color="grey">
                </div>

              </div>

              <div class="cell">
                <div data-type="select"
                 data-device="Wohnzimmer_SB_Player"
                 data-list="SERVERPLAYLISTS"
                 data-get="playlists"
                 data-set="playlists"
                 data-cmd="set"
                 class="inline w3x">
               </div>


              </div>

             <div class="cell">
             </div>


           </div> <!-- 3. Reihe ende -->

          </div>  <!-- Sheet ende -->


        </li>



lg
bart
Raspberry Pi 4 - FHEM, Homematic HM-CFG-LAN, ESP32 mit ePaper Display, Raspberry Pi 3 - BT Lokalisierung, PC - Squeezebox Server, Raspberry Pi 2 +HifiBerry - SB Player1, Raspberry Pi 2 +AVReceiver - SB Player2, nVidia Shield TV +AVReceiver - SB Player3, 2x Logitech Harmony Hub, echo dot Gen3

rvideobaer

Hallo,

ändert sich den die Url des Coverart nicht?

Das Image widget unterstützt eine Aktualisierung des Bildes

data-refresh Interval in Sekunden, nachdem das Bild aktualisiert werden soll data-refresh="30"

aber besser wäre es vielleicht über ein userreading bei Titeländerung die Coverart url an das userreading zu übergeben das hier ein event entsteht das das Bild neu lädt.
Raspberry Pi 2, HM-Uart,1x HM-LC-Sw1PBU-FM, 1x HM-RC-2-PBU-FM,1x HM-LC-SW4-DR,1x HM-LC-Sw1-Pl-DN-R1,1x HM-TC-IT-WM-W-EU, 5x HM-CC-RT-DN und noch mehr

bart0190

Hallo,
Super danke für die schnelle Rückmeldung.
Das mit dem Refresh ist schon ein guter Workaround. Mit dem event meinst du, dass ich für das Squeezebox-Player device das
event-on-change-reading
setze und dann z.B. auf das
currentTitle
schaue und entsprechend dann das image bzw. die Label nur eben dann refreshe?
Kann man das so machen?

lg
bart
Raspberry Pi 4 - FHEM, Homematic HM-CFG-LAN, ESP32 mit ePaper Display, Raspberry Pi 3 - BT Lokalisierung, PC - Squeezebox Server, Raspberry Pi 2 +HifiBerry - SB Player1, Raspberry Pi 2 +AVReceiver - SB Player2, nVidia Shield TV +AVReceiver - SB Player3, 2x Logitech Harmony Hub, echo dot Gen3

rvideobaer

Hallo,

ja sowas in der Art. Ich kenne den Squeezebox Player nicht und seine integration in FHEM, aber wie wird den der link fürs coverart bereitgestellt?
Ich nutze das Yamaha Modul für meinen Yamaha Receiver da wird das Coverart_url Reading aktualisiert wenn der Titel sich ändert.

Gruß Rolf
Raspberry Pi 2, HM-Uart,1x HM-LC-Sw1PBU-FM, 1x HM-RC-2-PBU-FM,1x HM-LC-SW4-DR,1x HM-LC-Sw1-Pl-DN-R1,1x HM-TC-IT-WM-W-EU, 5x HM-CC-RT-DN und noch mehr

bart0190

Hallo Rolf,
Es ist ein normales Device mit Internals und Readings und bekommt den URL auf das Reading coverarturl vom PC (Server) als .jpg. Wenn man den nächsten Titel wählt, holt der SB-Player den nächsten Titel vom Server und gekommt einen neuen URL (soweit ich das verstanden habe). Den neuen URL bekommt er auch richtig (bzw. auch die neuen Titel als Text), man sieht ihn auch, wenn man im TabletUI manuell die Seite nachlädt.

Hier die Internals:

Internals:
   AMPLIFIER  none
   ARTWORKURL ?
   CANPOWEROFF 1
   COVERARTLINK none
   COVERARTURL http://x.x.x.x:xxxx/music/current/cover_200x200.jpg?player=xxxxxxx&x=92873
   COVERID    f50a43be
   DEF        xxxxxx
   DISPLAYTYPE none
   FAVREF
   FAVSELECT  -
   FAVSET     favorites
   FAVSTR     Pop,toad,SM26
   FHEMUID    xxxxxxxx
   IODev      SqueezeBoxServer
   ISREMOTESTREAM 0
   LASTALARM  1
   LASTANSWER mode stop
   LASTInputDev SqueezeBoxServer
   MODEL      squeezeplay
   MSGCNT     66435
   NAME       Wohnzimmer_SB_Player
   NOTIFYDEV  global
   NR         239
   NTFY_ORDER 50-Wohnzimmer_SB_Player
   PLAYERIP   x.x.x.x:57010
   PLAYERMAC  xxxxxx
   PLAYERNAME Wohnzimmer_SB_Player
   SBSERVER   x.x.x.x:xxxx
   SERVERPLAYLISTS
   STATE      on
   SYNCED     no
   SYNCGROUP  none
   SYNCGROUPPN none
   SYNCMASTER none
   SYNCMASTERPN none
   SYNCMASTERS
   SYNCVOLUME 0
   SqueezeBoxServer_MSGCNT 66435
   SqueezeBoxServer_TIME 2018-12-02 20:44:01
   TYPE       SB_PLAYER
   WILLSLEEPIN ?


Readings:
   Readings:
     2018-12-02 20:44:01   alarmsDefaultVolume 50
     2018-12-02 20:44:01   alarmsEnabled   on
     2018-12-02 20:44:01   alarmsFadeIn    on
     2018-12-02 20:44:01   alarmsFadeSeconds 1
     2018-12-02 20:44:01   alarmsSnooze    9
     2018-12-02 20:44:01   alarmsTimeout   60
     2018-12-02 20:44:01   connected       1
     2018-12-02 20:44:01   coverarturl     http://x.x.x.x:xxxx/music/current/cover_200x200.jpg?player=xxxxxx&x=92873
     2018-12-02 20:44:01   currentAlbum    WWW.iM1MUSIC.NET
     2018-12-02 20:44:01   currentArtist   Taio Cruz Ft. Flo-Rida
     2018-12-02 17:04:01   currentMedia    file:///D:/iTunes_Songs/Music/Taio%20Cruz/WWW.iM1MUSIC.NET/Hangover.mp3
     2018-12-02 20:44:01   currentPlaylistName Party Mix 2018
     2018-12-02 20:44:01   currentPlaylistUrl
     2018-12-02 20:44:01   currentTitle    Hangover
     2018-12-02 20:44:01   currentTrackPosition 0
     2018-12-02 20:44:01   duration        243.226
     2018-12-02 20:44:01   favorites       -
     2018-12-02 17:06:26   lastir          00020017
     2018-12-02 17:06:26   lastunknowncmd  menustatus ARRAY(0x99e2c24) add xxxxx
     2018-12-02 20:44:01   playStatus      stopped
     2018-12-02 20:44:01   playlistCurrentTrack 21
     2018-12-02 20:44:01   playlistTracks  42
     2018-12-02 20:44:01   playlists       Party_Mix_2018
     2018-12-02 20:44:01   power           on
     2018-12-02 20:44:01   presence        present
     2018-12-02 20:44:01   repeat          all
     2018-12-02 20:44:01   shuffle         song
     2018-12-02 20:44:01   signalstrength  wired
     2018-12-02 20:44:01   state           on
     2018-12-02 20:44:01   synced          none
     2017-09-07 00:16:05   talkStatus      idle
     2018-12-02 20:44:01   volume          61
     2018-12-02 20:44:01   volumeStraight  61


lg
bart
Raspberry Pi 4 - FHEM, Homematic HM-CFG-LAN, ESP32 mit ePaper Display, Raspberry Pi 3 - BT Lokalisierung, PC - Squeezebox Server, Raspberry Pi 2 +HifiBerry - SB Player1, Raspberry Pi 2 +AVReceiver - SB Player2, nVidia Shield TV +AVReceiver - SB Player3, 2x Logitech Harmony Hub, echo dot Gen3

ChrisD

Hallo,

Die Aktualisierung sollte automatisch erfolgen, du kannst versuchen beim image noch
class="nocache"
hinzuzufügen.

Falls dies nicht hilft kannst du den Event-Monitor von FTUI aktivieren um zu überprüfen ob das Event von FHEM überhaupt in FTUI ankommt, z.B.:
<div data-type="eventmonitor">EM</div>
Nach einem Klick auf EM siehst du die Events.

Grüße,

ChrisD

rvideobaer

Hallo,

eigentlich sieht das alles gut aus, wenn du das Device in FHEM anschaust wird die coverart_url bei einem neuen Titel aktualisiert(wird rot)?
Was dann auch bedeutet das ein event ausgelöst werden sollte.

Gruß Rolf
Raspberry Pi 2, HM-Uart,1x HM-LC-Sw1PBU-FM, 1x HM-RC-2-PBU-FM,1x HM-LC-SW4-DR,1x HM-LC-Sw1-Pl-DN-R1,1x HM-TC-IT-WM-W-EU, 5x HM-CC-RT-DN und noch mehr

bart0190

Hallo,
Danke für die vielen Antworten.
class="nocache"
Hab ich bei den data-devices hinzugefügt. Leider sehe ich weder im FTUI über den Eventmonitor die Events, noch sehe ich, dass im Device vom SB-Player die Zeilen rot werden.  :-\
D.h. im FHEM ändert sich der URL auch nur dann, wenn ich die Seite refreshe.

Fehlt mir da im SB-Player Device ein Setting?

lg
bart
Raspberry Pi 4 - FHEM, Homematic HM-CFG-LAN, ESP32 mit ePaper Display, Raspberry Pi 3 - BT Lokalisierung, PC - Squeezebox Server, Raspberry Pi 2 +HifiBerry - SB Player1, Raspberry Pi 2 +AVReceiver - SB Player2, nVidia Shield TV +AVReceiver - SB Player3, 2x Logitech Harmony Hub, echo dot Gen3

grossmaggul

Hallo,

hast Du beim Device in fhem das Attribut ftui_support gesetzt?

gm
FHEM auf Debian Buster Server, 2 x nanoCUL868, 1xnanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1

bart0190

Hallo,
Nein ftuisupport Attribut war nicht da. Ich habe es nun auf "1" und beim anderen Player auf "all" gesetzt, jedoch keine Veränderung. Hab auch verschiedene Browser probiert, naja, Offline Daten hatte ich vorher nicht gelöscht, sollte ja aber zumindest mit dem "nocache" kein Problem sein, oder?

Ich meine, dass ich erst vor kurzem das Squeeze Modul upgedatet hätte. Vielleicht ist da was schiefgelaufen. Gibt es da ein Reading wo ich das checken kann? Oder würde sonst der Rest sowieso auch nicht klappen?

lg
bart
Raspberry Pi 4 - FHEM, Homematic HM-CFG-LAN, ESP32 mit ePaper Display, Raspberry Pi 3 - BT Lokalisierung, PC - Squeezebox Server, Raspberry Pi 2 +HifiBerry - SB Player1, Raspberry Pi 2 +AVReceiver - SB Player2, nVidia Shield TV +AVReceiver - SB Player3, 2x Logitech Harmony Hub, echo dot Gen3

ChrisD

Hallo,

Da bereits in FHEM keine Events erzeugt werden kann in FTUI auch nichts passieren. Welchen Wert haben die Attribute

- donotnotify
- do_not_notify
- event-on-change-reading
- event-on-update-reading

?

Grüße,

ChrisD

bart0190

Hallo ChrisD,

event-on-change Attribut habe ich gar keines gesetzt.
donotnotify true
Müssen die geändert /aktiviert werden?

Das ftuiSupport hab ich nun zwischenzeitlich wieder weggegeben.

Alle Attributes:
Attributes:
   IODev      SqueezeBoxServer
   amplifier  play
   coverartheight 200
   coverartwidth 200
   donotnotify true
   fadeinsecs 10
   room       Wohnzimmer
   ttslanguage de
   ttslink    http://translate.google.com/translate_tts?ie=UTF-8&tl=<LANG>&q=<TEXT>&client=tw-ob
   volumeLimit 100
   volumeStep 10


lg
bart
Raspberry Pi 4 - FHEM, Homematic HM-CFG-LAN, ESP32 mit ePaper Display, Raspberry Pi 3 - BT Lokalisierung, PC - Squeezebox Server, Raspberry Pi 2 +HifiBerry - SB Player1, Raspberry Pi 2 +AVReceiver - SB Player2, nVidia Shield TV +AVReceiver - SB Player3, 2x Logitech Harmony Hub, echo dot Gen3

ChrisD

Hallo,

donotnotify muss auf false stehen damit Events erzeugt werden.

Grüße,

ChrisD

bart0190

Raspberry Pi 4 - FHEM, Homematic HM-CFG-LAN, ESP32 mit ePaper Display, Raspberry Pi 3 - BT Lokalisierung, PC - Squeezebox Server, Raspberry Pi 2 +HifiBerry - SB Player1, Raspberry Pi 2 +AVReceiver - SB Player2, nVidia Shield TV +AVReceiver - SB Player3, 2x Logitech Harmony Hub, echo dot Gen3

bart0190

Hallo,
Wie mache ich, dass man das Thema als "gelöst" erkennt? Einfache unten auf "Thema schließen" gehen?
lg
bart
Raspberry Pi 4 - FHEM, Homematic HM-CFG-LAN, ESP32 mit ePaper Display, Raspberry Pi 3 - BT Lokalisierung, PC - Squeezebox Server, Raspberry Pi 2 +HifiBerry - SB Player1, Raspberry Pi 2 +AVReceiver - SB Player2, nVidia Shield TV +AVReceiver - SB Player3, 2x Logitech Harmony Hub, echo dot Gen3