Squeezebox mit Tablet UI

Begonnen von TWART016, 14 März 2016, 01:08:25

Vorheriges Thema - Nächstes Thema

TWART016

Hallo,

ich bin gerade dabei mein Multiroomaudio mit Squeezebox aufzubauen.

Auf einem Raspberry Pi läuft FHEM, sowie der Logitech Media Server (LMS). Die Squeezeplayer laufen zum Testen auf 3 Windows Clients mit Squeezeplay. Irgendwann sollen Linux Systeme im Einsatz kommen, ggf. Raspberry Pi mit Lautsprechern dahinter.

Als Beispiel habe ich den Threat genommen:
https://forum.fhem.de/index.php/topic,45188.msg374883.html#msg374883

Im Endeffekt hätte ich es gerne so
- Widget in Tablet UI zur Übersicht und Steuerung
- Titel, Interpret, Cover, ... sollen angezeigt werden
- Musiksteuerung: nächster Song, Lautstärke, ... soll möglich sein
- Titelwahl soll einfach möglich sein. Musikquelle vom LMS sind interne mp3's
- Für jeden Slave-Player soll ein Button für sync / unsync zur Verfügung stehen

Anbei mein Szenario:
- Raspberry Pi mit FHEM und LMS
- SB_PLAYER_PCT (Master)
- SB_PLAYER_VM (Slave)
- SB_PLAYER_Surface (edit)

Hier schonmal meine Codes, Bilder füge ich am Ende an:

FHEM:
#Logitech  Media Server (Squeeze)
define LMS SB_SERVER 192.168.178.25
attr LMS alivetimer 120
attr LMS doalivecheck true
attr LMS httpport 9000
attr LMS maxcmdstack 200
attr LMS maxfavorites 30
attr LMS room tests

#Squeeze Player VM
define SB_PLAYER_VM SB_PLAYER 00:0c:29:81:3e:59
attr SB_PLAYER_VM IODev LMS
attr SB_PLAYER_VM amplifier play
attr SB_PLAYER_VM coverartheight 50
attr SB_PLAYER_VM coverartwidth 50
attr SB_PLAYER_VM donotnotify true
attr SB_PLAYER_VM fadeinsecs 10
attr SB_PLAYER_VM idismac true
attr SB_PLAYER_VM room SB_PLAYER
attr SB_PLAYER_VM serverautoon true
attr SB_PLAYER_VM syncedNamesSource FHEM
attr SB_PLAYER_VM ttslanguage de
attr SB_PLAYER_VM ttslink http://translate.google.com/translate_tts?ie=UTF-8&tl=<LANG>&q=<TEXT>&client=tw-ob
attr SB_PLAYER_VM volumeLimit 100
attr SB_PLAYER_VM volumeStep 10
define FileLog_SB_PLAYER_VM FileLog ./log/SB_PLAYER_VM-%Y.log SB_PLAYER_VM
attr FileLog_SB_PLAYER_VM logtype text
attr FileLog_SB_PLAYER_VM room SB_PLAYER

#Squeeze Player PCT
define SB_PLAYER_PCT SB_PLAYER 00:50:56:c0:00:08
attr SB_PLAYER_PCT IODev LMS
attr SB_PLAYER_PCT amplifier play
attr SB_PLAYER_PCT coverartheight 50
attr SB_PLAYER_PCT coverartwidth 50
attr SB_PLAYER_PCT donotnotify true
attr SB_PLAYER_PCT fadeinsecs 0
attr SB_PLAYER_PCT idismac true
attr SB_PLAYER_PCT room SB_PLAYER,tests
attr SB_PLAYER_PCT serverautoon true
attr SB_PLAYER_PCT syncedNamesSource FHEM
attr SB_PLAYER_PCT ttslanguage de
attr SB_PLAYER_PCT ttslink http://translate.google.com/translate_tts?ie=UTF-8&tl=<LANG>&q=<TEXT>&client=tw-ob
attr SB_PLAYER_PCT userReadings SB_PLAYER_VM:synced {if(index(ReadingsVal($name,'synced',''),'SB_PLAYER_VM')!=-1){return 'synced'} else {return('not synced')}},\
SB_PLAYER_Surface:synced {if(index(ReadingsVal($name,'synced',''),'SB_PLAYER_Surface')!=-1){return 'synced'} else {return('not synced')}},
attr SB_PLAYER_PCT volumeLimit 100
attr SB_PLAYER_PCT volumeStep 10
attr SB_PLAYER_PCT webCmd on:off:volume:play:pause:mute
define FileLog_SB_PLAYER_PCT FileLog ./log/SB_PLAYER_PCT-%Y.log SB_PLAYER_PCT
attr FileLog_SB_PLAYER_PCT logtype text
attr FileLog_SB_PLAYER_PCT room SB_PLAYER

define SB_PLAYER_Surface SB_PLAYER c0:33:5e:08:ec:d5
attr SB_PLAYER_Surface IODev LMS
attr SB_PLAYER_Surface amplifier play
attr SB_PLAYER_Surface coverartheight 50
attr SB_PLAYER_Surface coverartwidth 50
attr SB_PLAYER_Surface donotnotify true
attr SB_PLAYER_Surface fadeinsecs 10
attr SB_PLAYER_Surface idismac true
attr SB_PLAYER_Surface room SB_PLAYER
attr SB_PLAYER_Surface serverautoon true
attr SB_PLAYER_Surface syncedNamesSource FHEM
attr SB_PLAYER_Surface ttslanguage de
attr SB_PLAYER_Surface ttslink http://translate.google.com/translate_tts?ie=UTF-8&tl=<LANG>&q=<TEXT>&client=tw-ob
attr SB_PLAYER_Surface volumeLimit 100
attr SB_PLAYER_Surface volumeStep 10
define FileLog_SB_PLAYER_Surface FileLog ./log/SB_PLAYER_Surface-%Y.log SB_PLAYER_Surface
attr FileLog_SB_PLAYER_Surface logtype text
attr FileLog_SB_PLAYER_Surface room SB_PLAYER


Tablet UI:
<div class="cell">
       

</div>
<div class="container top-space">
        <div class="label top-space">Synchronisieren mit:</div>
<div class="inline">
        <div data-type="multistatebutton"
        data-device="SB_PLAYER_PCT"
        data-get="synced"
        data-get-on="none"
        data-icon="fa-link"
        data-set="unsync"
        data-background-icon=""
        data-on-colors="#aa6900"
        class="cell small narrow top-space"></div>
        <div data-type="label" >PCT</div>
</div>
<div class="inline">
        <div data-type="multistatebutton"
        data-device="SB_PLAYER_VM"
        data-get="synced"
        data-get-on='["(.*?PCT.*?)","none"]'
        data-icons='["fa-link","fa-unlink"]'
        data-set='["unsync","sync SB_PLAYER_VM asSlave"]'

        data-on-colors='["#aa6900","#505050"]'
        class="cell small narrow"></div>
        <div data-type="label" >VM</div>
        </div>
        <div class="inline">
        <div data-type="multistatebutton"
        data-device="SB_PLAYER_PCT"
        data-get="synced"
        data-get-on='["(.*?Surface.*?)","none"]'
        data-icons='["fa-link","fa-unlink"]'
        data-set='["unsync","sync SB_PLAYER_Surface"]'
        data-background-icon=""
        data-on-colors='["#aa6900","#505050"]'
        class="cell small narrow"></div>
        <div data-type="label">Surface</div>
        </div>
</div>

<br>
<br>

<div class="cell top-space">

<div data-type="push"
data-device="SB_PLAYER_PCT"
data-icon="fa-step-backward"
data-background-icon="-"
data-off-color="#505050"
data-set-on="prev"
class="inline">
</div>

        <div data-type="switch"
            data-device="SB_PLAYER_PCT"
            data-get="playStatus"
            data-get-on="playing"
            data-get-off="pause"
            data-icon="fa-play"
            data-background-icon="-"
            data-set-on="play"
            data-on-color="#aa6900"
            data-off-color="#505050"
class="inline">
        </div>
<div data-type="switch"
            data-device="SB_PLAYER_PCT"
            data-get="playStatus"
            data-get-on="paused"
            data-get-off="play"
            data-icon="fa-pause"
            data-background-icon="-"
            data-set-on="pause"
            data-on-color="#aa6900"
            data-off-color="#505050"
class="inline">
</div>
        <div data-type="switch"
            data-device="SB_PLAYER_PCT"
            data-get="playStatus"
            data-get-on="stopped"
            data-get-off="!on"
            data-icon="fa-stop"
            data-background-icon="-"
            data-set-on="stop"
            data-on-color="#aa6900"
            data-off-color="#505050"
class="inline">
</div>
<div data-type="push"
data-device="SB_PLAYER_PCT"
data-icon="fa-step-forward"
data-background-icon="-"
data-off-color="#505050"
data-set-on="next"
class="inline">
</div>

</div>


<div class="container cell top-space">
        <div data-type="itunes_artwork"
                data-device="SB_PLAYER_PCT"
                data-size="210"
                data-stripbrackets="true"
                data-notfoundimg="SB_PLAYER_PCT:COVERARTURL"
data-get='["currentArtist","currentTitle"]'></div>

<br>

<div data-type="itunes_artwork"
            data-device="MPD_WOPR"
            data-get='["now_artist","now_album","now_title"]'
            data-opacity="0.2"
            data-size=400
            style="position:absolute;top:20px;left:-10px;"></div>

        <div data-type="mpdnowplaying"
                data-device="SB_PLAYER_PCT"
                data-name="currentPlaylistName"
                data-title="currentTitle"
                data-artist="currentArtist"></div>
</div>



Nun zu den Problemen bzw. Fragen:
1) In der FHEM GUI kann ich mit dem Master und einen Slave (Surface) jeweils kein sync für den Slave VM auswählen. Im Dropdown wird das einfach nicht angezeigt.

2)
a) Was ist bei den "Mit Synchronisieren" in TUI korrekt? Macht PCT überhaupt Sinn, wenn es der Master ist? Wird sync asSlave empfohlen?
b) Wenn ich auf ein Symbol klicke wird immer nur unsync (PCT) und sync (Slaves) angezeigt, aber kein Switch.
c) Was bedeutet data-get-off="!on"?
d) Ich möchte, dass immer nur ein Icon farbig ist, das es immer nur einen Zustand geben kann. Erst nach dem Neuladen der Seite funktioniert es. (Longpoll steht auf 1)
e) Wenn mal ein unsync gemacht wird, wird dies bei einem falschen Player ausgeführt. Kann das beeinflusst werden?

3) Der Titel der Songs wird nicht angezeigt.

4) Das Cover wird nicht korrekt angezeigt, zumeist ein Cover von einem vorherigen Song.

5) Sind die userReadings für den Master korrekt gesetzt?


Gruß
TWART016

kvo1

ZitatIn der FHEM GUI kann ich mit dem Master und einen Slave (Surface) jeweils kein sync für den Slave VM auswählen. Im Dropdown wird das einfach nicht angezeigt.
Mit FHEM GUI  meinst Du das "normale" Fhem WEB ?? oder FTUI ??

Zitat- SB_PLAYER_PCT (Master)
- SB_PLAYER_VM (Slave)
- SB_PLAYER_PCT
Warum gibt es SB_PLAYER_PCT doppelt ??

Dir fehlen m.E.  userReadings , oder willst Du  nur von einem player (SB_PLAYER_PCT die anderen Player zusyncen ?

Das hatte doch aber Eberhard alles schon hier

https://forum.fhem.de/index.php/topic,45188.msg421518.html#msg421518

beschrieben !

RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

tomster

#2
Zitat
a) Was ist bei den "Mit Synchronisieren" in TUI korrekt? Macht PCT überhaupt Sinn, wenn es der Master ist? Wird sync asSlave empfohlen?
In meinen Augen macht es keinen Sinn. Die angezeigten Bedienelemente steuern ja ohnehin nur den PCT-Player. Ich würde lediglich 2 Sync-Widgets einbauen. Klickt man das erste Mal drauf, dann wird der entsprechende Player zu PCT hinzugesynct. Der 2. Klick würde den entsprechenden Player wieder aus der Gruppe ent-syncen. Selbiges beim 2. Sync-Widget.
Zitatb) Wenn ich auf ein Symbol klicke wird immer nur unsync (PCT) und sync (Slaves) angezeigt, aber kein Switch.
Sorry, aber ich verstehe nicht was Du meinst.
Zitat
c) Was bedeutet data-get-off="!on"?
Das "!" vor dem on ist ein in einigen Programmiersprachen verwendeter Operator für ein logisches "ist nicht"; so auch hier.
Zitat
d) Ich möchte, dass immer nur ein Icon farbig ist, das es immer nur einen Zustand geben kann. Erst nach dem Neuladen der Seite funktioniert es. (Longpoll steht auf 1)
Das liegt u.A. dran, dass Du in den Player-Attributen attr SB_PLAYER_VM donotnotify true gesetzt hast. -> Ist m.E. auch für das "laggende" Coverart-Bild verantwortlich.
Wegen der Farbe: Ich weiß nicht, ob das multistate-Widget noch mit dem aktuellen Stand von FTUI kompatibel ist....
Zitate) Wenn mal ein unsync gemacht wird, wird dies bei einem falschen Player ausgeführt. Kann das beeinflusst werden?
Klar kann man das beeinflussen. Schau Mal dieses Posting zum Modul an. Da ist die Sync-Logik recht gut erklärt. Ich weiß zwar nicht, ob sich daran zwischenzeitlich was geändert hat, vermute aber nicht:
https://forum.fhem.de/index.php/topic,17667.msg301116/topicseen.html#msg301116
Zitat
3) Der Titel der Songs wird nicht angezeigt.
Das liegt m.E. an Deinem Code (siehe auch nächste Frage). Du hast erst 2(!) Widgets mit Coverart und danach das mpdnowplaying. Wahrscheinlich reicht dein Gridster-Element nicht aus, um untereinander 2 Artworks und den Titel anzuzeigen. Vorschlag: Lösche den Eintrag von MPD_WOPR.
Zitat
4) Das Cover wird nicht korrekt angezeigt, zumeist ein Cover von einem vorherigen Song.
s.o. -> donotnotify...
BTW, warum hast Du 2 Artwork-Widgets definiert? Ich vermute das Device MPD_WOPR existiert doch gar nicht bei Dir, oder?

<div data-type="itunes_artwork"
                data-device="SB_PLAYER_PCT"
                data-size="210"
                data-stripbrackets="true"
                data-notfoundimg="SB_PLAYER_PCT:COVERARTURL"
data-get='["currentArtist","currentTitle"]'></div>

<br>

<div data-type="itunes_artwork"
            data-device="MPD_WOPR"
            data-get='["now_artist","now_album","now_title"]'
            data-opacity="0.2"
            data-size=400
            style="position:absolute;top:20px;left:-10px;"></div>


Zitat5) Sind die userReadings für den Master korrekt gesetzt?

Nagel mich nicht drauf fest, aber ich glaube man braucht die UserReadings gar nicht mehr. Das SB-Modul bringt seit einiger Zeit selbst ein sync-Reading mit. Du musst das nur mit dem FTUI auswerten.

FHEm2005

#3
Hallo TWART016,
ich lese Deinen Thread mit einer gewissen (Fast)Verzweiflung. Auch ich habe Zeitpunkte gehabt, zu denen ich nicht wusste, wie ich weitermachen kann. Deine Beschreibung ist etwas diffus, weil ich nicht weiß, was überhaupt funktioniert. Dir hilft nur eine schrittweise Vorgehensweise.  SERVER / PLAYER definieren und alle Funktionen über die Web-Schnittstelle testen. Wenn dann Fehler vorhanden sind können sie hier gemeinsam gelöst werden. Wenn die Synchronisierung auch klappt, wie Du es Dir vorstellst, kannst Du den nächsten Schritt in Richtung FTUI gehen. Da hilft dann nur sich selbst kleine Aufgaben zu stellen, die gelöst werden sollen. Klappt das nicht, helfen hier jede Menge nette Menschen ein konkretes Problem zu lösen.

Mir fehlt einfach der Pack-An für Deine Probleme. Bist Du sicher, dass Du alles verstanden hast was in Deiner Player-Definition steht?
Warum setzt Du das Attr syncedNamesSource auf FHEM wenn Du das gar nicht auswertest?

ZitatWas ist bei den "Mit Synchronisieren" in TUI korrekt? Macht PCT überhaupt Sinn, wenn es der Master ist? Wird sync asSlave empfohlen?
Wo steht "Mit Synchronisieren? Ob ein Master Sinn macht oder nicht musst DU entscheiden, ebenso, ob er als Slave synchronisiert werden soll oder nicht.
ZitatWenn ich auf ein Symbol klicke wird immer nur unsync (PCT) und sync (Slaves) angezeigt, aber kein Switch.
Das Synchronisieren funktioniert wie ein Schalter:  sync=ein  und unsync=aus. Was erwartest Du mehr?
Zitatc) Was bedeutet data-get-off="!on"?
Das Ausrufezeichen steht für eine Negation des Ausdruckes; hier also "wenn nicht ON".
Zitatd) Ich möchte, dass immer nur ein Icon farbig ist, das es immer nur einen Zustand geben kann. Erst nach dem Neuladen der Seite funktioniert es. (Longpoll steht auf 1)
Das verstehe ich nicht. Welches Icon, welcher Zustand?
ZitatWenn mal ein unsync gemacht wird, wird dies bei einem falschen Player ausgeführt. Kann das beeinflusst werden?
Was ist ein falscher Player? Ein uncync löscht die Synchronisierungen zu allen an dieser Synchrinisierung beteiligten Palyern. Das ist normal.
ZitatDer Titel der Songs wird nicht angezeigt.
Mal ehrlich wundert Dich das? Mich nicht! Das Modul mpdnowplaying benötigt auch eine Definition, die es mit Daten füttert. Das hast Du nicht, bzw nicht mitgeschickt. Versuch' es mal hiermit, dass setzt auf die Daten vom SB_PLAYER auf:
<!-- Title, Artist, Album ----->
<div style= "position:absolute;
top:75px;
left:116px;
text-align:left;
text-shadow: black 1px 1px 0px;
height:88px;
width:203px;
overflow:hidden;">

<!-- Title -->

<div data-type="label"
data-device="SB3.Buero"
data-get="currentTitle"
style=" font-size:17px;font-weight:bold;vertical-align:text-bottom; ">
</div>

<!-- Artist -->
<div data-type="label"
data-device="SB3.Buero"
data-get="currentArtist"
style ="font-size:12px;">
</div>

<!-- Album -->
<div data-type="joinedlabel"
data-device="SB3.Buero"
data-get='["SB3.Buero:currentAlbum"]'
data-mask="[$1]"
style ="font-size:12px;">
</div>
</div>

ZitatSind die userReadings für den Master korrekt gesetzt?
Ich sehe keine Fehler, aber sind die UserReadings auch vorhanden? Du müsstest zwei zusätzliche Readings (SB_PLAYER_VM und SB_PLAYER_Surface) mit den möglichen Inhalten synced oder not synced  finden.

Warum möchtest Du die Synchronisation mit einem Multistatebutton machen? Eine Synchronisation wird ausgehend von einem Player entweder als Master oder als Slave vorgenommen. Da der Master mehrere Player synchron steuern kann, macht das keinen Sinn hier einen Multistatebutton einzusetzen.

Jetzt habe ich Deine Fragen weitestgehend beantwortet, jetzt möchte ich keine pauschalen Fragen haben, sondern konkrete Probleme beschrieben haben. Wenn Du nicht weiterkommst, beschreibe was bis dahin gut geht, wo du als nächsten Schritt hin möchtest und wie wir Dir helfen können. Dein Ziel: Kurze Fragen - nicht über 15 Zeilen  ;) ;) ;). Ich habe z.B. das Thema Synchronisierung Button für Button in FTUI beschrieben und getest.

Hier: https://forum.fhem.de/index.php/topic,45188.msg375845.html#msg375845 habe ich meine Synchronisierungslösung ausführlich beschrieben.

Viele Grüße
Eberhard

Zwischendurch war tomster schneller als ich, aber ich poste trotzdem.

EDIT: @tomster
ZitatNagel mich nicht drauf fest, aber ich glaube man braucht die UserReadings gar nicht mehr. Das SB-Modul bringt seit einiger Zeit selbst ein sync-Reading mit. Du musst das nur mit dem FTUI auswerten.
Da du für die Synchronisation den Zustand zu allen anderen player überwachen/steuren mußt, das attr syncedNamesSource aber nur den eigenen Namen "umschalten" kannst, kommst Du um die userReadings nicht herum (ich jedenfalls nicht :) ). Vielleicht gibt es eine Lösung das neue Attr zu benutzen.
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN

TWART016

Hallo,

entschuldigung, wenn vielleicht nicht alles verständlich ist. Manchmal habe ich Vorstellungen wie etwas sein soll, hab aber zunächst keinen technischen Ansatz das umzusetzen.

Zitat von: kvo1 am 14 März 2016, 08:01:38
Mit FHEM GUI  meinst Du das "normale" Fhem WEB ?? oder FTUI ??
Mit FHEM GUI meine ich das FHEM WEB.

Zitat von: kvo1 am 14 März 2016, 08:01:38
Warum gibt es SB_PLAYER_PCT doppelt ??
Einmal soll es SB_PLAYER_Surface heißen, habe es auch im 1. Post verbessert

Zitat von: tomster am 14 März 2016, 09:23:18
In meinen Augen macht es keinen Sinn. Die angezeigten Bedienelemente steuern ja ohnehin nur den PCT-Player. Ich würde lediglich 2 Sync-Widgets einbauen. Klickt man das erste Mal drauf, dann wird der entsprechende Player zu PCT hinzugesynct. Der 2. Klick würde den entsprechenden Player wieder aus der Gruppe ent-syncen. Selbiges beim 2. Sync-Widget.
Genau das ist auch mein Plan. Ich möchte den Player PCT steuern und andere Player hinzugesynced. Den gleichen Aufbau könnte man dann für weitere Player erstellen, zunächst reicht aber PCT.


Zitat von: tomster am 14 März 2016, 09:23:18
Sorry, aber ich verstehe nicht was Du meinst.
Der Player PCT läuft, nun möchte ich den Player VM dazu syncen. Also klicke ich auf den Button von VM. Nun erscheint: "set SB_PLAYER_PCT sync SB_PLAYER_VM asSlave", egal wie oft ich darauf klicke. Sollte da nicht jedes 2. mal unsync erscheinen?

<div class="inline">
        <div data-type="multistatebutton"
        data-device="SB_PLAYER_VM"
        data-get="synced"
        data-get-on='["(.*?PCT.*?)","none"]'
        data-icons='["fa-link","fa-unlink"]'
        data-set='["unsync","sync SB_PLAYER_VM asSlave"]'
        data-on-colors='["#aa6900","#505050"]'
        class="cell small narrow"></div>
        <div data-type="label" >VM</div>
        </div>



Zitat von: tomster am 14 März 2016, 09:23:18
Wegen der Farbe: Ich weiß nicht, ob das multistate-Widget noch mit dem aktuellen Stand von FTUI kompatibel ist....
Multistate ist nicht im Einsatz, sondern beides sind switch. Liegt es an der Aktualisierung von data-on-color und data-off-color? Screenshot ist unten, 2 data-on.JPG


Zitat von: tomster am 14 März 2016, 09:23:18
BTW, warum hast Du 2 Artwork-Widgets definiert? Ich vermute das Device MPD_WOPR existiert doch gar nicht bei Dir, oder?
MPD_WOPR habe ich nun entfernt. Das Cover wird jetzt angezeigt, der Titel und Artist jedoch nicht immer. Vor allem nach dem Neuladen der Seite braucht es ewig, bis der Text und zum Teil auch das Cover erscheint. Manchmal nach einiger Zeit, manchmal nach dem automatischen Abspielen des nächsten Titels. Eingrenzen kann ich das leider nicht.

<div class="container cell top-space">
        <div data-type="itunes_artwork"
                data-device="SB_PLAYER_PCT"
                data-size="110"
                data-stripbrackets="true"
                data-notfoundimg="SB_PLAYER_PCT:COVERARTURL"
data-get='["currentArtist","currentTitle"]'></div>
<br>
        <div data-type="mpdnowplaying"
                data-device="SB_PLAYER_PCT"
                data-name="currentPlaylistName"
                data-title="currentTitle"
                data-artist="currentArtist"></div>
</div>


Derzeit funktioniert es nicht, den VM Player zum PCT zu syncen. Im FHEM Web wurde im Dropdown nicht der VM Player angezeigt. Es scheint, also ob die Konnektivität von VM zum Server nicht vorhanden ist.


Zitat von: FHEm2005 am 14 März 2016, 09:32:43
Mir fehlt einfach der Pack-An für Deine Probleme. Bist Du sicher, dass Du alles verstanden hast was in Deiner Player-Definition steht?
Warum setzt Du das Attr syncedNamesSource auf FHEM wenn Du das gar nicht auswertest?
Ich dachte in dem Threat ist beschrieben, dass es sb_name ersetzt.
https://forum.fhem.de/index.php/topic,45188.msg421518.html#msg421518


Zitat von: FHEm2005 am 14 März 2016, 09:32:43
Du müsstest zwei zusätzliche Readings (SB_PLAYER_VM und SB_PLAYER_Surface) mit den möglichen Inhalten synced oder not synced  finden.

Genügt das nicht?
attr SB_PLAYER_PCT userReadings SB_PLAYER_VM:synced {if(index(ReadingsVal($name,'synced',''),'SB_PLAYER_VM')!=-1){return 'synced'} else {return('not synced')}},\
SB_PLAYER_Surface:synced {if(index(ReadingsVal($name,'synced',''),'SB_PLAYER_Surface')!=-1){return 'synced'} else {return('not synced')}},


Zitat von: FHEm2005 am 14 März 2016, 09:32:43



Gruß
TWART016

FHEm2005

Hallo TWART016,
ZitatIch dachte in dem Threat ist beschrieben, dass es sb_name ersetzt.
https://forum.fhem.de/index.php/topic,45188.msg421518.html#msg421518
Das ist zwar richtig, Du benutzt aber weder die eine noch die andere Variable.
ZitatGenügt das nicht?
Nein, es genügt nicht ein UserReadings zu definieren, es muss auch zu sehen sein, damit es ausgewertet werden kann. Deshalb meine Fragen: a) sind die UserReadings wie definiert zusehen und b) steht ein Wert darin?
Gruß Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN

Doublefant

Hallo Experten,

ich klinke mich hier mal ein, weil ich nach dem gleichen Vorgehen und Anleitungen vorgegangen bin wie TWART016 und sehr ähnliche Probleme habe.
Hast du deine Probleme eingrenzen können und läuft es nun so wie gewünscht?

1.) Aktualisierungen, Titel+Künster dauern manchmal einige Zeit, obwohl es in der Fhem Web sofort verfügbar ist.
2.) ist es normal, dass der Master beim dazuschalten/syncen eines Slaves kurz aussetzt?
3.) bei beiden Playern wird beim abspielen von Radiostreams das Eventlog zugespammt, alle paar Sekunden:
SB_PLAYER Fhem_Pi_Player currentTrackPosition: 77
SB_PLAYER Fhem_Pi_Player currentTrackPosition: 82
SB_PLAYER Fhem_Pi_Player currentTrackPosition: 90
...

Diese Angaben werden wohl zum synchonisieren benötigt?

4.) ich habe in der FTUI eine Page mit aktuell beiden Playern erstellt, kann das ein Problem sein, dass sich da irgendwas in die Quere kommt bzw. überlastet wird?
5.) gibt es eine Möglichkeit start/stop über Harware-Taster direkt am Pi auszulösen, also direkt auf squeezelite zugreifen, oder muss ich immer den "Umweg" über ein Device (Fernbedienung, Wandtaster...) und dann in Fhem nehmen?

6.) @FHEm2005 ich habe deine Vorlage vom Tablet UI benutzt, danke für das Bereitstellen deiner Arbeit, wird bei dir der Status des Powerbutton richtig angezeigt, bei mir scheint er nicht richtig mit Fhem Web verknüpft zu sein, obwohl eigentlich ja nur der Default:STATE Wert ausgelesen wird. Evtl. liegt es aber auch nur an meiner trägen Aktualisierungen?

Grüße

TWART016

Hallo Doublefant,

leider bin ich gerade mitten in Renvorierungsarbeiten, deshalb bin ich nicht weiter zum testen gekommen. Wenn alles fertig ist, werde ich ein neues Produktivsystem erstellen, dann kann ich evtl. mehr dazu sagen.


Gruß
TWART016