Squeezebox Modul - erste Version

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

Vorheriges Thema - Nächstes Thema

Elektrolurch

Zitat:
Dazu eine konkrete Frage:
Im UPnP-Plug-In muss für das eingebundene Gerät eine Art cfg-Datei geschrieben werden. Hat jemand hier im Forum SONOS-Boxen funktionierend eingebunden und kann die Konfiguration der UPnP/DLNA-Bridge auf einem Raspi 2+ hier als JPG-Datei  .o.ä posten?
Ich habe es bislang auch noch nicht hinbekommen. Eine genauere Anleitung würde mich auch interessieren.
Bitte eine config-Datei nicht als Bild posten, sondern als Text anhängen.
Leider kann ich mit Bilder nichts anfange, da ich auf einen Screenreader angewiesen bin.

Elektrolurch
configDB und Windows befreite Zone!

C0mmanda

Zitat von: Paul.baumann am 12 Dezember 2016, 19:48:46
Hier ein möglicher Ansatz über cliraw_Commands. Schau dir mal das lastunknowncmd-Reading nach folgendem Befehl an:

set PlayerName cliraw playlists id

Dort findest du für die Playlisten eindeutige IDs. Mit solch einer ID dann den nächsten Befehl ausführen und wiederum lastunknowncmd beobachten.

set PlayerName cliraw playlists tracks 0 20 playlist_id:id_der_Playliste

Das Ganze müsste dann über z.B. notify, UserReading entsprechend automatisch geparst werden


Paul

Danke für deine Rückmeldung / Hilfe.
An und für sich funktioniert das auch, hat leider nur einen großen Haken:

Die Abfrage funktioniert nur wenn die aktuelle Wiedergabe auch aus einer gespeicherten Playlist kommt.
Zumindest sieht es für mich so aus.

Wenn ich aber z.B. Favoriten abspiele oder eine Dynamische Playlist etc. dann funktioniert es schon wieder nicht.

Ich stelle mir langsam auch die Frage ob durch das Plugin überhaupt alle CLI-Kommandos unterstützt oder zurückgegeben werden.
Wenn ich die CLI richtig verstehe sollte ich mit dem Kommando:
playlist index ?
ans Ziel kommen, dies liefert mir aber nichts zurück. (Weder im Internal LASTANSWER noch im Reading "lastunknowncmd".)

Ich nutze auf meinen Kodi-Clients das Plugin XSqueeze, dort werden der aktuelle und die nächsten 10 Tracks angezeigt und im Script sieht es so aus als ob es eben mit playlist index und darauf basierenden, weiteren Abfragen realisiert wird.

ratlose Grüße
CmdA

ChrisD

Hallo,

ZitatIch stelle mir langsam auch die Frage ob durch das Plugin überhaupt alle CLI-Kommandos unterstützt oder zurückgegeben werden.

Mit cliraw kannst du alle Kommandos an den Server schicken, wenn das Modul aber die Antwort selbst interpretieren kann wird lastunknowncmd nicht aktualisiert. So wird die Rückmeldung zu
playlist index ?ausgewertet um den aktuellen Track zu bestimmen und im Reading playlistCurrentTrack abzulegen. Wie du mit dem Kommando den Inhalt der Playlist auslesen möchtest ist mir nicht klar.

Im Internal LASTANSWER befinden sich die zuletzt empfangenen Daten. Da es sich aber nicht um ein Reading handelt wird es im Browser nicht automatisch aktualisiert und man kann auch kein notify darauf setzen.

Im Moment ist es kaum möglich die von dir gewünschten Daten sauber auszulesen.

Ich habe mir FTUI angesehen und versucht die Daten im Modul passend für das medialist-Widget aufzubereiten. Dabei bin ich aber auf 2 Probleme gestoßen:
- das medialist-Widget kennt keinen Offset mit dem z.B. der aktuelle und die 10 folgenden Tracks dargestellt und ausgewählt werden könnten
- FTUI erwartet die Daten in einem Reading als JSON. Da das Reading sehr umfangreich werden kann (mangels Offset) wird die Detailseite im FHEM-UI sehr unübersichtlich. Es gibt zwar die Möglichkeit Readings mit einem '.' zu verstecken, allerdings scheint FTUI nicht darauf zugreifen zu können.

Ich habe auch verschiedene Tests mit dem select-Widget für die Anzeige von Artisten und Alben gemacht, bin aber auch dabei auf diverse Probleme gestoßen.

Bei Interesse kann ich dir meine Testversion zuschicken.

Grüße,

ChrisD

C0mmanda

Zitat von: ChrisD am 13 Dezember 2016, 21:46:27
Hallo,

Mit cliraw kannst du alle Kommandos an den Server schicken, wenn das Modul aber die Antwort selbst interpretieren kann wird lastunknowncmd nicht aktualisiert. So wird die Rückmeldung zu
playlist index ?ausgewertet um den aktuellen Track zu bestimmen und im Reading playlistCurrentTrack abzulegen. Wie du mit dem Kommando den Inhalt der Playlist auslesen möchtest ist mir nicht klar.

Wenn ich die CLI-Beschreibung richtig verstanden habe kann ich mit "playlist index ?" abfragen welcher Titel (fortlaufende Nummer) der aktuellen Playlist gerade abgespielt wird.
Das funktioniert, in dem reading playlistCurrentTrack wird die Nummer richtig abgelegt.
Sagen wir aktuell wird Nr. 4 abgespielt.

Nun sollte ich darauf aufbauend mit "playlist title 5 ?" den Titel des nächsten Songs abfragen können.
Zumindest wenn ich die Beschreibung der CLI richtig verstehe. (Auch sollte playlist album 5 ?, artist 5 ? etc. möglich sein).

Zitat
Im Internal LASTANSWER befinden sich die zuletzt empfangenen Daten. Da es sich aber nicht um ein Reading handelt wird es im Browser nicht automatisch aktualisiert und man kann auch kein notify darauf setzen.

Im Moment ist es kaum möglich die von dir gewünschten Daten sauber auszulesen.

Ich habe mir FTUI angesehen und versucht die Daten im Modul passend für das medialist-Widget aufzubereiten. Dabei bin ich aber auf 2 Probleme gestoßen:
- das medialist-Widget kennt keinen Offset mit dem z.B. der aktuelle und die 10 folgenden Tracks dargestellt und ausgewählt werden könnten
- FTUI erwartet die Daten in einem Reading als JSON. Da das Reading sehr umfangreich werden kann (mangels Offset) wird die Detailseite im FHEM-UI sehr unübersichtlich. Es gibt zwar die Möglichkeit Readings mit einem '.' zu verstecken, allerdings scheint FTUI nicht darauf zugreifen zu können.

Ich habe auch verschiedene Tests mit dem select-Widget für die Anzeige von Artisten und Alben gemacht, bin aber auch dabei auf diverse Probleme gestoßen.

Bei Interesse kann ich dir meine Testversion zuschicken.

Grüße,

ChrisD

Hört sich nicht so gut an.. :(
Soweit war ich überhaupt noch nicht da ich erstmal versucht habe einen Ansatz für die Playlist zu finden...
Im Medialist-widget dachte ich "data-pos" kann den Offset abbilden, und über JSON habe ich mir ehrlich gesagt noch gar keine Gedanken gemacht.

Ich gestehe bei der ganzen Sache auch etwas im trüben zu fischen, programmiertechnisch bin ich nicht sonderlich auf der Höhe, meist läuft es bei mir auf Try&Error hinaus. :(

Hatte auch nicht erwartet das die Sache sich als so schwierig herausstellen würde.. :(
Aufgrund der Tatsache dass das Kodi-Plugin genau die Infos anzeigt die ich gern hätte habe ich nicht erwartet dass dies mit FHEM so kompliziert sein würde...

Ich bedanke mich auf jeden Fall für die ausführliche Antwort.
Die Testversion würde ich mir gern mal ansehen. Kann ich nur von lernen :)

Danke nochmal!

grtz
CmdA

ChrisD

Hallo,

Ich habe das Player-Modul aktualisiert, Änderungen:

- Befehl 'track',
track <tracknumber|+tracks|-tracks>
Aktiviert den angegebenen Titel der aktuellen Abspielliste. Ein explizit positiver oder negativer Wert kann verwendet werden um relativ zum aktuellen Titel zu springen. 
- Attribute sortFavorites und sortPlaylists, sortieren Favoriten resp. Abspiellisten alphabetisch

Zusätzlich gibt es 2 experimentelle Funktionen:
- Attribut volumeOffset, der Wert wird zur Lautstärke hinzugefügt, z.B. volumeOffset=20, set playerX volume 50 -> es wird 70 an den LMS geschickt
- Attribut ftuiSupport und Befehle updateFTUImedialist und clearFTUIcache

Wenn das Attribut ftuiSupport auf 1 gesetzt wird wird bei jeder Änderung der Playlist automatisch das Reading ftuiMedialist aktualisiert. Dieses kann für das medialist-Widget von FTUI verwendet werden, z.B.:
<div data-type="medialist"
     data-device="playerX"
     data-set="track"
     data-get="ftuiMedialist"
     data-pos="playlistCurrentTrack"
     class="autoscroll index1">
</div>

Mit dem Befehl updateFTUImedialist kann die Aktualisierung von ftuiMedialist manuell ausgelöst werden. Die Daten werden im Moment im Modul gecached, sollte es zu Fehlern bei der Aktualisierung kommen kann der Befehl clearFTUIcache helfen. Im Moment werden die Cover nur für lokale Dateien angezeigt.

Zum Aktualisieren der Module kann
update force https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/sb/controls_squeezebox.txtverwendet werden.

Grüße,

ChrisD

C0mmanda

WOW!!
Mir fehlen gerade ehrlich gesagt etwas die Worte.

MEGA!
1000 Dank dafür!

Habs direkt eingebunden und werde jetzt testen.

grtz
CmdA

mrbreil

Habe neuerdings immer diesen Fehler:

readingsUpdate(piCore_Kueche,talkStatus,idle) missed to call readingsBeginUpdate first.

Werde daraus aber nicht schlau.

Gruß MrBreil

TWART016

Gibt es die Möglichkeit das duration Reading zusätzlich in ganzen Zahlen anzuzeigen, also ohne Komma/Punkt? Im Tablet UI könnte man so beim slider data-max konfigurieren.

Oder wie müsste das im UserReading aussehen?

ChrisD

Hallo,

@TWART016:
Du kannst dazu ein User-Reading verwenden, z.B.:
attr playerX userReadings ftuiDuration:duration.* {int(ReadingsVal($name,'duration',0))}

@MrBreil:
Dabei handelt es sich um einen Fehler im Modul, welche Version verwendest du im Moment ? Kannst du den Fehler reproduzieren ?

Grüße,

ChrisD

mrbreil

Hallo ChrisD. Module wurden heute früh geupdatet. Ich glaube es hat etwas damit zutun, wenn in zu kurzer Zeit zu viele Befehle an zu viele Player rausgehen. Könnte das sein?


Gesendet von iPad mit Tapatalk

TWART016

Ich habe derzeit folgendes Verhalten:

Wechsele ich die Songs funktioniert die autoamtische Aktualisierung der Readings (currentTitle, currentArtist, currentAlbum). Wechsele ich innerhalb von 3-5 Sekunden erneut, werden die Readings in 90% der Fälle nicht automatisch akualisiert (außer currentTrackPosition!!). Aktualisiere ich die FHEM Seite mit F5 wird sofort der korrekte Wert angezeigt.

Ist das ggf. ein Fehler im Modul?

attr SB_Player_PCT donotnotify false
attr SB_Player_PCT event-on-change-reading .*
attr SB_Player_PCT event-on-update-reading .*

habe ich gesetzt.

ChrisD

Hallo,

@mrbreil: Ich habe das Player-Modul geändert, kannst du testen ob der Fehler damit weiterhin auftritt ?

@TWART016: Wie wechselst du die Songs ? Was steht im Event-Monitor ?

Der von dir beschriebene Effekt tritt u.a. dann auf wenn der Browser zu langsam ist und nach einem Befehl longpoll noch nicht wieder läuft. Alle Ereignisse zwischen Befehl und longpoll-Start gehen verloren. Dies ist aber ein generelles Problem und kann von den Modulen nicht so leicht umgangen werden. Hier findest du eine Diskussion zu dem Thema.

Grüße,

ChrisD

TWART016

Wechseln tue ich die Songs per iPeng oder Befehl "next" in Tablet UI.

Bei dem nicht aktualisieren erscheint das Event im Event Monitor auch nicht.

Andere Fragen: Gibt es die Möglichkeit die LMS GUI als iframe einzubinden? Nicht nur die Seite, sondern genau die Playeransicht zu einem bestimmten Player. Die URL vom Player soll mitgegeben werden, im LMS oben rechts per Dropdown möglich). Öffne ich nur die LMS Seite, wird der letzte Player angezeigt.

Uli

Ich bin mir nicht sicher, ob ich das hier posten soll oder einen neuen Thread eröffnen soll?

Folgendes habe ich vor:
Ich möchte bestimmte Playlisten aus dem Spotify Plugin des LMS starten.

Hintergrund:
Im TabletUI möchte ich für meine Tochter Übersichtsseiten programmieren, wo sie auf die Cover klicken kann und dann die Playlist über ihre Squeezebox wiedergegeben wird.

Ich kann Spotify Playlisten ja nicht direkt in der Squeezebox ablegen. Und ich habe auch keine Ahnung, ob ich über das Squeezebox Modul in FHEM überhaupt Plugins wie das für Spotify auf dem LMS steuern kann?
Gruß

Uli

seit 01/2023 kein FHEM mehr. Bin nur noch aus historischen Gründen hier

Uli

Zitat von: Uli am 21 Dezember 2016, 01:02:58
Ich bin mir nicht sicher, ob ich das hier posten soll oder einen neuen Thread eröffnen soll?

Folgendes habe ich vor:
Ich möchte bestimmte Playlisten aus dem Spotify Plugin des LMS starten.

Hintergrund:
Im TabletUI möchte ich für meine Tochter Übersichtsseiten programmieren, wo sie auf die Cover klicken kann und dann die Playlist über ihre Squeezebox wiedergegeben wird.

Ich kann Spotify Playlisten ja nicht direkt in der Squeezebox ablegen. Und ich habe auch keine Ahnung, ob ich über das Squeezebox Modul in FHEM überhaupt Plugins wie das für Spotify auf dem LMS steuern kann?

Ich habe keine Ruhe gefunden und viel probiert. Ich habe einen Weg gefunden.

Über
set <Name_der_Squeezebox> cliraw playlist play spotify:user:XXXXXX:playlist:YYYYYY
funktioniert das.
XXXXXX ist der Spotify User
YYYYYY ist die ID der Spotify Playlist

Den kompletten String hinter play kann man sich ganz einfach kopieren. Zu finden ist der auf der Remote Control Seite des LMS. Wenn man da bei dem Player auf Plugins und dann Spotify geht, kann man alle Playlisten sehen. Bei der gewünschten Playlist geht man rechts auf die Schaltfläche mit dem "M". Dann werden Informationen zur Playlist angezeigt. Unter anderem auch die URL. und das ist das, was man haben will.
Gruß

Uli

seit 01/2023 kein FHEM mehr. Bin nur noch aus historischen Gründen hier