Squeezebox Modul - erste Version

Begonnen von bugster_de, 17 Dezember 2013, 22:12:10

Vorheriges Thema - Nächstes Thema

ChrisD

Hallo,

@Torsten: Ich habe die Artisten mit in die Liste der Alben eingebaut. Kannst du die Module aktualisieren und das Attribut ftuiSupport beim Player auf 'albumsWithArtist' setzen (außer es wäre bereits auf 'all') und schauen ob es passt ?

@Eisix: Kannst du ein 'list' des Servers machen und den Inhalt der betroffenen Gruppe posten ?

Grüße,

ChrisD

Eisix

Hallo,

habe nochmal alle Gruppen gelöscht und neu angefangen.

list SB_PLAYER.*

SB_PLAYER_324424e46481
SB_PLAYER_4e42837b44e4
SB_PLAYER_4ea27cc0b1ff
SB_PLAYER_b827eb044e64
SB_PLAYER_b827eb96964e



set SqueezeBoxServer syncGroup addp SB_PLAYER_324424e46481,SB_PLAYER_4e42837b44e4,SB_PLAYER_4ea27cc0b1ff,SB_PLAYER_b827eb044e64,SB_PLAYER_b827eb96964e ALLE


list SqueezeBoxServer

     players:
       SBPlayer_Lenovo:
         fhemname   SB_PLAYER_4ea27cc0b1ff
         lmsname    SBPlayer_Lenovo
         mac        4e:a2:7c:c0:b1:ff
         type       LMS
       SB_PLAYER_4ea27cc0b1ff:
         fhemname   SB_PLAYER_4ea27cc0b1ff
         lmsname    SBPlayer_Lenovo
         mac        4e:a2:7c:c0:b1:ff
         type       FHEM
       SB_PLAYER_b827eb044e64:
         fhemname   SB_PLAYER_b827eb044e64
         lmsname    max2play
         mac        b8:27:eb:04:4e:64
         type       FHEM
       SB_PLAYER_b827eb96964e:
         fhemname   SB_PLAYER_b827eb96964e
         lmsname    max2play-Bose
         mac        b8:27:eb:96:96:4e
         type       FHEM
       max2play:
         fhemname   SB_PLAYER_b827eb044e64
         lmsname    max2play
         mac        b8:27:eb:04:4e:64
         type       LMS
       max2play-Bose:
         fhemname   SB_PLAYER_b827eb96964e
         lmsname    max2play-Bose
         mac        b8:27:eb:96:96:4e
         type       LMS
     syncGroups:
       ALLE:
         0:
           c          4
           fhemname   SB_PLAYER_4ea27cc0b1ff
           lmsname    SBPlayer_Lenovo
           mac        4e:a2:7c:c0:b1:ff
         1:
           fhemname   SB_PLAYER_4ea27cc0b1ff
           lmsname    SBPlayer_Lenovo
           mac        4e:a2:7c:c0:b1:ff
         2:
           fhemname   SB_PLAYER_b827eb044e64
           lmsname    max2play
           mac        b8:27:eb:04:4e:64
         3:
           fhemname   SB_PLAYER_b827eb96964e
           lmsname    max2play-Bose
           mac        b8:27:eb:96:96:4e


Diesmal hat er einen der SB_Player mit dazu genommen. Allerdings auch nicht mehr als 3 insgesamt. Was mir aufgefallen ist, der type wird bei max2play als LMS und bei SB_Player als FHEM angegeben und der SB_Player ist doppelt in der Gruppe.

Gruß
Eisix



Eisix

Habs gefunden. In einem alten post habe ich gesehen das man nach deleteall einen Neustart von fhem machen soll. Dann hat es funktioniert.

Danke und Gruß
Eisix

trixer

[quote author=ChrisD link=topic=17667.msg922569#msg922569

@Mark: Was passiert mit den Umlauten ? Du kannst versuchen das Attribut ttsOptions auf den Wert doubleescape zu setzen oder ihn hinzuzufügen. Je nach LMS- resp. Perl-Version und Betriebssystem kann dies helfen.

Grüße,

ChrisD
[/quote]

Hi Chris,
diese ttsOption kann ich leider weder per Checkbox auswählen noch per set setzten. Den LMS betreibe ich in einer Ubuntu-VM 16.04 lts.
Hier einige Beispiele
Ausgabe bei Küche: K C Hei (K C buchstabiert)
Ausgabe Fußball: Fuball
Mädchen: M D C H E N (buchstabiert)
wäre: were
Können: kahnen
Köche: K C Heu
Viele Grüße
Mark

ChrisD

#1954
Hallo,

Du kannst die Option über attr setzen:

attr meinPlayer ttsOptions doubleescape

In der neuen Version der Module habe ich die Option auch im UI freigeschaltet.

Grüße,

ChrisD

pinguin

Hallo ChrisD,

habe es gerade getestet. Geht perfekt :-) Du bist der Beste. Riesen Dank für Deine Unterstützung und Deine tolle Arbeit.

Viele Grüße und einen schönen Tag

Torsten

trixer

Zitat von: ChrisD am 26 März 2019, 08:14:38
Hallo,

Die kannst die Option über attr setzen:

attr meinPlayer ttsOptions doubleescape

In der neuen Version der Module habe ich die Option auch im UI freigeschaltet.

Grüße,

ChrisD

Hi ChrisD,

das hat geholfen. Vielen DAnk!
Wie schon viele andere möchte ich an dieser Stelle noch ein großes Lob loswerden.
Tolle Arbeit. Vielen Dank dafür!

Schönen Gruß
Mark

tpunkt

Liebe Leute,

ich komme beim Anlegen eines kombinierten play/pause bzw. synced/not synced -Knopfes in der tablet ui nicht weiter. Die ui merkt sich die states einfach nicht. Das Ganze sieht so aus:


                     <div data-type="switch"
                         data-device="Kueche_Player"
                         data-get="synced"
                         data-set=""
                         data-states='["none","HiFi,Kueche"]'
                         data-set-states='["unsync","sync HiFi_Player"]'
                         data-colors='["white","white"]'
                         data-icons='["fa-random","fa-play"]'
                         class="col-1-5">
                     </div>

Habe alles 1000mal kontrolliert, also die Namen der states und readings. Stimmt alles. Auf der DeviceOverview Seite wird auch alles entsprechend aktualisiert. Komischerweise funktioniert alles wie es soll beim on/ off state des Players, d.h. hier merkt sich die UI den Status wunderbar:


                     <div data-type="switch"
                         data-device="Kueche_Player"
                         data-get="state"
                         data-set=""
                         data-states='["off","on"]'
                         data-set-states='["on","off"]'
                         data-colors='["white","white"]'
                         data-icons='["fa-power-off","fa-power-off"]'
                         class="col-1-5">

Hat jemand eine Idee, was hier schief läuft?

Danke,
Tomislav

ChrisD

Hallo,

Wie bildest du das Reading 'synced' ? Welchen Wert hat es wenn die Player verbunden sind ?

Ich denke dass 'data-states' nicht zu 'data-set-states' passt, wenn 'synced' auf 'none' steht wird der Befehl 'unsync' ausgeführt. Richtig müsste
data-set-states='["sync HiFi_Player","unsync"]'
sein.

Grüße,

ChrisD

tpunkt

Hallo Chris,

danke dafür, das icon für den neuen Zustand wird jetzt korrekt erkannt, allerdings erst nach einem refresh. Es gibt ja zwei icons für die beiden unterschiedlichen Zustände, aber wenn ich das icon klicke und sich der Zustand wie gewünscht ändert, wird es zwar orange, verändert sich aber nicht wie gewünscht. Das passiert erst, wenn man die Seite neu lädt. Hast Du noch eine Idee woran das liegen könnte?

Danke,
Tomislav

tpunkt

#1960
Ich glaube mittlerweile, dass das beschriebene Problem etwas damit zu tun hat, dass meine Tablet-UI nicht richtig aktualisiert wird. Das currentTrackPosition reading wird im device zwar in Echtzeit aktualisiert, nicht aber auf der Tablet UI - da stehen Fortschrittsbalken und timecode beim Abspielen still und werden nur beim Seitenrefresh aktualisiert. Longpoll ist auf auf 1 gesetzt (im WEB device und im index.html), trackPositionQueryInterval ebenfalls auf 1 und im code habe ich ein data-refresh="1" untergebracht. Sieht dann im code so aus:


<div data-type="label"
data-device="Kueche_Player"
data-get="currentTrackPosition"
data-substitution="toMinFromSec()"
data-refresh="1"
class="inline middle">
</div>
<div data-type="slider"
data-device="Kueche_Player"
data-get="currentTrackPosition"
data-max="duration"
data-min="0"
data-width="150" 
data-refresh="1"
class="inline horizontal middle">
</div>
<div data-type="label"
data-device="Kueche_Player"
data-get="duration"
data-substitution="toMinFromSec()"
data-refresh="1"
class="inline middle">
</div>


Wie gesagt, bin für jeden hilfreichen Kommentar sehr dankbar.

Tomislav

TWART016

Zitat von: tpunkt am 02 April 2019, 22:58:47
Ich glaube mittlerweile, dass das beschriebene Problem etwas damit zu tun hat, dass meine Tablet-UI nicht richtig aktualisiert wird. Das currentTrackPosition reading wird im device zwar in Echtzeit aktualisiert, nicht aber auf der Tablet UI - da stehen Fortschrittsbalken und timecode beim Abspielen still und werden nur beim Seitenrefresh aktualisiert. Longpoll ist auf auf 1 gesetzt (im WEB device und im index.html), trackPositionQueryInterval ebenfalls auf 1 und im code habe ich ein data-refresh="1" untergebracht. Sieht dann im code so aus:


<div data-type="label"
data-device="Kueche_Player"
data-get="currentTrackPosition"
data-substitution="toMinFromSec()"
data-refresh="1"
class="inline middle">
</div>
<div data-type="slider"
data-device="Kueche_Player"
data-get="currentTrackPosition"
data-max="duration"
data-min="0"
data-width="150" 
data-refresh="1"
class="inline horizontal middle">
</div>
<div data-type="label"
data-device="Kueche_Player"
data-get="duration"
data-substitution="toMinFromSec()"
data-refresh="1"
class="inline middle">
</div>


Wie gesagt, bin für jeden hilfreichen Kommentar sehr dankbar.

Tomislav

Ich habe das gleiche Problem und bisher noch nicht lösen können. Hatte vor einiger Zeit im dem Thread schon mal nachgefragt.

Eisix

Hallo,

seit Anfang des Jahres haben viele Probleme mit der Aktualisierung vor allem ältere Tablets die noch Webview nutzen. Als erstes solltet ihr klären ob ein generelles Problem besteht. Bei mir als hilfreich hat sich erwiesen ein Label in FTUI mit der Uhrzeit anzuzeigen. Dann sieht man wann das letzte mal aktualisiert wurde.

Habe ein AT das in ein dummy "REFRESH" schreibt


Internals:
   COMMAND    set REFRESH  {(localtime (time) =~ /(\d\d:\d\d)/;;$1)}
   DEF        +*00:01 set REFRESH  {(localtime (time) =~ /(\d\d:\d\d)/;;$1)}
   FUUID      5c8bab07-f23f-8e5f-52ce-2bfce683413f4773
   FVERSION   90_at.pm:0.175610/2018-10-18
   NAME       AT_REFRESH
   NR         505
   NTM        11:10:00
   PERIODIC   yes
   RELATIVE   yes
   REP        -1
   STATE      Next: 11:10:00
   TIMESPEC   00:01
   TRIGGERTIME 1554282600
   TRIGGERTIME_FMT 2019-04-03 11:10:00
   TYPE       at
   READINGS:
     2019-04-03 11:09:00   state           Next: 11:10:00
Attributes:
   alignTime  00:00

Das lasse ich mir dann mit der FTUI Version in meiner Menüleiste anzeigen


                <div class="">
                        <div class="tiny left top inline">FTUI :</div>
                        <div class="tiny left top inline" data-bind="ftui.version"></div>
                        <div class="tiny left top" data-type="label" data-device="REFRESH"></div>
                </div>


Gruß
Eisix

tpunkt

Danke für den Hinweis, werde ich mir in den nächsten Tagen mal in Ruhe anschauen.

holle75

Zitat von: ChrisD am 02 September 2018, 21:44:21
Hallo,

Ich habe die Module erweitert so dass Genres, Alben und Artisten in FTUI dargestellt werden können. Über das Attribut ftuiSupport wird festgelegt welche zusätzliche Readings angelegt werden.

Achtung: Wenn das Attribut auf 1 steht werden die neuen Readings aus Kompatibilitätsgründen NICHT automatisch mit angelegt.

Es gibt aber einen neuen Wert 'all' für das Attribut ftuiSupport mit dem alle Readings angelegt werden, dies gilt auch für eventuell weitere zukünftige Readings.

Im Moment kann sowohl das select- als auch das medialist-Widget verwendet werden. Getestet wurde der Code mit FTUI 2.7.1.

- select-Widget für Genres:
               <div data-type="select"
                  data-device="meinPlayer"
                  data-list="ftuiGenresList"
                  data-alias="ftuiGenresAlias"
                  data-set="ftuicmd genre"
                  data-delimiter=":"
                  class="">
                </div>

- select-Widget für Alben:
               <div data-type="select"
                  data-device="meinPlayer"
                  data-list="ftuiAlbumsList"
                  data-alias="ftuiAlbumsAlias"
                  data-set="ftuicmd album"
                  data-delimiter=":"
                  class="">
                </div>

- select-Widget für Artisten:
               <div data-type="select"
                  data-device="meinPlayer"
                  data-list="ftuiArtistsList"
                  data-alias="ftuiArtistsAlias"
                  data-set="ftuicmd artist"
                  data-delimiter=":"
                  class="">
                </div>

- medialist-Widget für Genres:
        <div data-type="medialist"
            data-device="meinPlayer"
            data-set="ftuicmd genre"
            data-set-value="file"
            data-get="ftuiGenresMedialist">
        </div>

- medialist-Widget für Alben:
        <div data-type="medialist"
            data-device="meinPlayer"
            data-set="ftuicmd album"
            data-set-value="file"
            data-get="ftuiAlbumsMedialist">
        </div>

- medialist-Widget für Artisten:
        <div data-type="medialist"
            data-device="meinPlayer"
            data-set="ftuicmd artist"
            data-set-value="file"
            data-get="ftuiArtistsMedialist">
        </div>


Grüße,

ChrisD

Edit: Funktion von Attribut ftuiSupport geändert

Habe ich gerade mal für Artisten probiert und funktioniert auf Anhieb. Allerdings ist bei mir in LMS die Mucke nach "Komponisten" -> entspricht "Artist" und "Album-Interpreten" sortiert. Bedeutet, ich darf mir jetzt merken, wer den Song geschrieben hat und nicht, wer der zugehörige Künstler/Band ist ;)

Könntest du Album-Interpreten mit einbinden?