Also ich steuere meine Player entweder über Logiken oder mit der App "squeezer", in die Visu habe ich es nicht integriert.
Ankündigung
Einklappen
Keine Ankündigung bisher.
- √ - Neues Plugin: Logitech Squeezebox - Anregungen?
Einklappen
X
-
Ich ziehe meine unten stehende Frage zurück
- die Antwort ist hier: https://knx-user-forum.de/forum/suppo...432#post561432
Frage:
Ist jemandem eine Möglichkeit bekannt die aktuelle url der Playlist auszulesen?
Ich würde gern Ansagen laufen lassen und dazu Status und aktuelle Playlist auslesen, die Ansage starten und danach wieder die alte Playlist laden. I.d.R läuft eh nur Internetradio, aber ich will den Sender nicht fest in die Logik einfrickeln.
Per Telnet hat ein "00:04:20:2d:d6:ab playlist url ?" leider keinen Erfolg - obwohl es so in der Doku steht.Zuletzt geändert von JuMi2006; 11.05.2015, 20:39.Umgezogen? Ja! ... Fertig? Nein!
Baustelle 2.0 !
Kommentar
-
Hi zusammen!
Manche Radiosender schicken offenbar die Info zum Programm so, dass das Plugin die Info auf die Titelzahl oder Dauer oder sowas legen möchte.. Siehe hier:
Hat das Problem schon jemand gelöst?Code:2016-07-22 13:04:45 WARNING Main Item Squeezebox_KG.Duration: value MODERATION does not match type num. Via LMS 10.0.0.100:9090
Wäre cool. Danke!
Kommentar
-
Die Info die zum aktuell gespielten Song kommt wird halt in alle "Tags" geschrieben, weshalb dann Titel und Interpret auch nicht stimmen.
Gibt Schlimmeres, kein Thema
Code:2016-07-25 11:06:22 DEBUG Main Item Squeezebox_Wohnen.Current_Title = Adele - Set Fire To The Rain via LMS 10.0.0.100:9090 None 2016-07-25 11:06:22 DEBUG Main Item Squeezebox_Wohnen.Genre = Adele - Set Fire To The Rain via LMS 10.0.0.100:9090 None 2016-07-25 11:06:22 DEBUG Main Item Squeezebox_Wohnen.Artist = Adele - Set Fire To The Rain via LMS 10.0.0.100:9090 None 2016-07-25 11:06:22 DEBUG Main Item Squeezebox_Wohnen.Album = Adele - Set Fire To The Rain via LMS 10.0.0.100:9090 None 2016-07-25 11:06:22 WARNING Main Item Squeezebox_Wohnen.Duration: value Adele - Set Fire To The Rain does not match type num. Via LMS 10.0.0.100:9090
Kommentar
-
Das wäre ziemlich cool.. While you're at it.. Siehst du eine Chance, das Auslesen der PlayerID noch zu optimieren?
Bei mir ist es so, dass wenn ich ein Item hab wie dieses:
alles bestens funktioniert. Aber sobald ich ein Item eine Hierarchieebene tiefer habe, kann man nicht mehr auf playerid zugreifen:Code:[Squeezebox_Wohnen] squeezebox_playerid = b8:27:eb:29:ea:2d type = foo [[Power]] type = bool visu_acl = rw knx_dpt=1 squeezebox_send = <playerid> power {}
Fehlermeldung:Code:[Squeezebox_Wohnen] [[Playlist_Andy]] type = bool [[[[multiclick]]]] type = bool enforce_updates = true visu_acl = rw knx_dpt = 1 squeezebox_send = b8:27:eb:29:ea:2d playlist index -1
Mir ist klar, dass sich das Prob recht leicht in den Item-Angaben lösen lässt - optimal wäre aber, der Code würde das abfangen..Code:2016-07-25 16:38:31 WARNING Main squeezebox: could not resolve playerid for Squeezebox_Wohnen.Playlist_Andy.Load.multiclick from parent item Squeezebox_Wohnen.Playlist_Andy.Load
Thx!!
Kommentar
-
Mir ist gerade noch eine kleine Eigenheit vom Squeezebox Server aufgefallen - wenn man das im Plugin abfangen könnte, wäre das natürlich perfekt. Ist auch nicht sonderlich kompliziert behaupt ich mal
Folgende Situation:
Aktuell läuft keine Musik, Stop-Modus. Man lädt nun eine neue Playliste und lässt diese sofort abspielen (Klick auf den Playbutton neben der Playliste im Web-Interface, zB). Dann bleibt Play leider auf False und Pause auf True.
Ich fange das Problem nun ab, indem ich ein Query Item erstelle, das bei jeder Änderung des Titels aufgerufen wird. Nicht gerade nobel, aber funzt..
Des weiteren wird am Ende einer Playliste folgender Befehl von Squeezebox empfangen: playlist_id playlist stopCode:[[Querymode]] type = bool visu_acl = rw enforce_updates = true squeezebox_send = <playerid> mode ? squeezebox_recv = <playerid> mode squeezebox_init = <playerid> mode
Obwohl ich versucht habe, das Stop-Item entsprechend anzupassen (nämlich eben playlist eingefügt), habe ich hier keine richtiges Update erhalten.
Problem kann durch Einfügen/Ändern des Codes ab Zeile 208 im Plugin gelöst werden:
Am besten das gleiche Spiel noch mit "playlist" "play" - denn wenn ich zb einen Radiosender auswähle und abspiele wird genau dieser Befehl ausgeführt. ein normales "playerid play" gibt's da leider nicht...Code:elif (data[1] == 'playlist'): if (data[2] == 'jump') and (len(data) == 4): self._update_items_with_data( [data[0], 'playlist index', data[3]]) elif (data[2] == 'stop'): self._update_items_with_data([data[0], 'play', '0']) self._update_items_with_data([data[0], 'stop', '1']) self._update_items_with_data([data[0], 'pause', '0'])Zuletzt geändert von Onkelandy; 31.07.2016, 10:17.
Kommentar
-
Vielleicht mal Radiosender (am besten mit URL) benennen! Bei mir funzt das alles...Zitat von Onkelandy Beitrag anzeigenManche Radiosender schicken offenbar die Info zum Programm so, dass das Plugin die Info auf die Titelzahl oder Dauer oder sowas legen möchte.. Siehe hier:
Code:2016-07-22 13:04:45 WARNING Main Item Squeezebox_KG.Duration: value MODERATION does not match type num. Via LMS 10.0.0.100:9090
alles bestens funktioniert. Aber sobald ich ein Item eine Hierarchieebene tiefer habe, kann man nicht mehr auf playerid zugreifen:Zitat von Onkelandy Beitrag anzeigenDas wäre ziemlich cool.. While you're at it.. Siehst du eine Chance, das Auslesen der PlayerID noch zu optimieren?
Bei mir ist es so, dass wenn ich ein Item hab wie dieses:
[...]
Das ist so vorgesehen. Ich wandere nur den Baum hoch, nicht runter, da ich dort verzweigen müsste. Klar, kann man machen, aber mir ist der Sinn nicht klar. Ich habe im Item-Baum eine "lokale Wurzel" für EINE BESTIMMTE Squeezebox. Alle DEREN Funktionen befinden sich in der weiteren Ästen. Warum also nicht die ID in den Knoten "[Squeezebox_Wohnen]"?Code:[Squeezebox_Wohnen] [[Playlist_Andy]] type = bool [[[[multiclick]]]] type = bool enforce_updates = true visu_acl = rw knx_dpt = 1 squeezebox_send = b8:27:eb:29:ea:2d playlist index -1
Das Problem verstehe ich glaub ich noch, aber was das "Query Item" daran jetzt repariert verstehe ich nicht!?Zitat von Onkelandy Beitrag anzeigenMir ist gerade noch eine kleine Eigenheit vom Squeezebox Server aufgefallen - wenn man das im Plugin abfangen könnte, wäre das natürlich perfekt. Ist auch nicht sonderlich kompliziert behaupt ich mal
Folgende Situation:
Aktuell läuft keine Musik, Stop-Modus. Man lädt nun eine neue Playliste und lässt diese sofort abspielen (Klick auf den Playbutton neben der Playliste im Web-Interface, zB). Dann bleibt Play leider auf False und Pause auf True.
Ich fange das Problem nun ab, indem ich ein Query Item erstelle, das bei jeder Änderung des Titels aufgerufen wird. Nicht gerade nobel, aber funzt..
Code:[[Querymode]] type = bool visu_acl = rw enforce_updates = true squeezebox_send = <playerid> mode ? squeezebox_recv = <playerid> mode squeezebox_init = <playerid> mode
Ok, verstehe ich grob. Das Ende einer Playliste wird nicht auf "Stop" propagiert? Verstehe ich das richtig, dass die Squeezebox aufhört zu spielen (und am Gerät "gestoppt" ist), das sh.py-Item "Stop" aber weiter "false" ist weil der Befehl "playlist_id playlist stop" nicht korrekt interpretiert wird?Zitat von Onkelandy Beitrag anzeigenDes weiteren wird am Ende einer Playliste folgender Befehl von Squeezebox empfangen: playlist_id playlist stop
Obwohl ich versucht habe, das Stop-Item entsprechend anzupassen (nämlich eben playlist eingefügt), habe ich hier keine richtiges Update erhalten.
Problem kann durch Einfügen/Ändern des Codes ab Zeile 208 im Plugin gelöst werden:
Am besten das gleiche Spiel noch mit "playlist" "play" - denn wenn ich zb einen Radiosender auswähle und abspiele wird genau dieser Befehl ausgeführt. ein normales "playerid play" gibt's da leider nicht...Code:elif (data[1] == 'playlist'): if (data[2] == 'jump') and (len(data) == 4): self._update_items_with_data( [data[0], 'playlist index', data[3]]) elif (data[2] == 'stop'): self._update_items_with_data([data[0], 'play', '0']) self._update_items_with_data([data[0], 'stop', '1']) self._update_items_with_data([data[0], 'pause', '0'])
Grüße
RobertZuletzt geändert von bmx; 07.08.2016, 09:42.
Kommentar
-
Hoi Robert !
Beispielsweise hier wird immer alles in einer Wurst genommen und nicht sauber in Titel, Interpret, etc. aufgeteilt:Zitat von Robert Beitrag anzeigen
Vielleicht mal Radiosender (am besten mit URL) benennen! Bei mir funzt das alles...
http://opml.radiotime.com/Tune.ashx?...48a1cdef244da0
Ja, da spricht gar nichts dagegen, die ID in Squeezebox_Wohnen zu schreiben - das hab ich auch so. Ich mein auch gar nicht, in andere Äste schauen, sondern im gleichen Ast eine Ebene höher. Denn bei mir ist es so - vielleicht ist es aber auch ein anderes Problem?? - dass ich zwar von Playlist_Andy auf die playerid zurück greifen kann, aber nicht vom darunter liegenden multiclick. Also mir scheint nur eine Hierarchieebene zu funktionieren..?Zitat von Robert Beitrag anzeigenDas ist so vorgesehen. Ich wandere nur den Baum hoch, nicht runter, da ich dort verzweigen müsste. Klar, kann man machen, aber mir ist der Sinn nicht klar. Ich habe im Item-Baum eine "lokale Wurzel" für EINE BESTIMMTE Squeezebox. Alle DEREN Funktionen befinden sich in der weiteren Ästen. Warum also nicht die ID in den Knoten "[Squeezebox_Wohnen]"?Code:[Squeezebox_Wohnen] [[Playlist_Andy]] type = bool [[[Play]]] [[[[multiclick]]]] type = bool enforce_updates = true visu_acl = rw knx_dpt = 1 squeezebox_send = b8:27:eb:29:ea:2d playlist index -1
Das Query Item sorgt zumindest dafür, dass sobald sich der Titel ändert, der Modus des Players abgefragt wird. Und da bekommt das Plugin dann mit, dass squeezebox doch im Play-Modus ist. Könnte man natürlich genauso ins Plugin selbst einbauen ohne Item, aber ich hab das jetzt halt mal probehalber so gelöst.Zitat von Robert Beitrag anzeigenDas Problem verstehe ich glaub ich noch, aber was das "Query Item" daran jetzt repariert verstehe ich nicht!?
Das Problem ist also, dass das Plugins zwar mitbekommt, wenn ich auf Play drücke, aber nicht, wenn ich eine Playliste lade und abspiele (bzw. eine Radiostation). Ich nutze das Webinterface der Squeezebox, by the way.
Genau soZitat von Robert Beitrag anzeigenOk, verstehe ich grob. Das Ende einer Playliste wird nicht auf "Stop" propagiert? Verstehe ich das richtig, dass die Squeezebox aufhört zu spielen (und am Gerät "gestoppt" ist), das sh.py-Item "Stop" aber weiter "false" ist weil der Befehl "playlist_id playlist stop" nicht korrekt interpretiert wird?
Thanks!Zuletzt geändert von Onkelandy; 14.08.2016, 10:31.
Kommentar
-
Hi Robert
Konntest du dir die Sache schon mal ansehen? Wäre cool, wenn du das mit der Modusabfrage bzw. mit playlist play und playlist stop noch einbinden könntest. Alternativ kann ich das zusammen mit einem Umbau auf ein Smartplugin auch mal versuchen und dann als pull request hochladen.
Cool wäre aber va. wenn das Problem mit den Titeln bei einem Internetstream behoben werden könnte, da hab ich nicht wirklich einen Ansatz.
Danke!
Kommentar
-
Hi,
ich will das 2 Palyer Synronisiert werden.
Im Webfrontend vom LMS gibt es dazu bei der Playerauswahl den Meüpunkt Synchronize. Dann geht ein solcher Dialog auf wo man sagen kann mit was man Synchronisieren will.
VG
Jürgen
syncron.JPG
Kommentar
-
aus der Hilfe vom LMS:
<playerid> sync <playerindex|playerid|-|?>
The "sync" command specifies the player to synchronise with the given playerid. The command accepts only one playerindex or playerid. To unsync the player, use the "-" parameter.
Note that in both cases the first <playerid> is the player which is already a member of a sync group. When adding a player to a sync group, the second specified player will be added to the group which includes the first player, if necessary first removing the second player from its existing sync-group.
You may query which players are already synced with this player by passing in a "?" parameter. Multiple playerids are separated by a comma. If the player is not synced, "-" is returned.
Examples:Request: "04:20:00:12:23:45 sync 1<LF>"
Response: "04:20:00:12:23:45 sync 1<LF>"
Request: "04:20:00:12:23:45 sync ?<LF>"
Response: "04:20:00:12:23:45 sync 04:20:00:12:23:21<LF>"
Request: "04:20:00:12:23:45 sync -<LF>"
Response: "04:20:00:12:23:45 sync -<LF>"
syncgroups ?
The "syncgroups" query returns a comma separated list of sync groups members (IDs and names).
Examples:Request: "syncgroups ?<LF>"
Response: "syncgroups sync_members:04:20:00:12:23:45,04:20:00:12:34:56 sync_member_names:Living%20Room,Kitchen<LF>"
Kommentar


Kommentar