Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Neues Plugin: Logitech Squeezebox - Anregungen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Also ich steuere meine Player entweder über Logiken oder mit der App "squeezer", in die Visu habe ich es nicht integriert.

    Kommentar


      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:
        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
        Hat das Problem schon jemand gelöst?
        Wäre cool. Danke!

        Kommentar


          und wo ist das Problem ausser der Warnung?

          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


              Ich kann mal schauen ob ich das Problem nach meinem Urlaub nachstellen und fixen kann.

              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:

                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 {}
                alles bestens funktioniert. Aber sobald ich ein Item eine Hierarchieebene tiefer habe, kann man nicht mehr auf playerid zugreifen:
                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
                Fehlermeldung:
                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
                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..
                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..
                  Code:
                    [[Querymode]]
                      type = bool
                      visu_acl = rw
                      enforce_updates = true
                      squeezebox_send = <playerid> mode ?
                      squeezebox_recv = <playerid> mode
                      squeezebox_init = <playerid> mode
                  Des 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:
                  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'])
                  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...
                  Zuletzt geändert von Onkelandy; 31.07.2016, 10:17.

                  Kommentar


                    Zitat von Onkelandy Beitrag anzeigen
                    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:
                    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
                    Vielleicht mal Radiosender (am besten mit URL) benennen! Bei mir funzt das alles...

                    Zitat von Onkelandy Beitrag anzeigen
                    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]
                    [[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 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]"?

                    Zitat von Onkelandy Beitrag anzeigen
                    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..
                    Code:
                    [[Querymode]]
                    type = bool
                    visu_acl = rw
                    enforce_updates = true
                    squeezebox_send = <playerid> mode ?
                    squeezebox_recv = <playerid> mode
                    squeezebox_init = <playerid> mode
                    Das Problem verstehe ich glaub ich noch, aber was das "Query Item" daran jetzt repariert verstehe ich nicht!?

                    Zitat von Onkelandy Beitrag anzeigen
                    Des 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:
                    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'])
                    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...
                    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?

                    Grüße
                    Robert
                    Zuletzt geändert von bmx; 07.08.2016, 09:42.

                    Kommentar


                      Hoi Robert !

                      Zitat von Robert Beitrag anzeigen

                      Vielleicht mal Radiosender (am besten mit URL) benennen! Bei mir funzt das alles...
                      Beispielsweise hier wird immer alles in einer Wurst genommen und nicht sauber in Titel, Interpret, etc. aufgeteilt:
                      http://opml.radiotime.com/Tune.ashx?...48a1cdef244da0

                      Zitat von Robert Beitrag anzeigen
                      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 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]"?
                      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 anzeigen
                      Das Problem verstehe ich glaub ich noch, aber was das "Query Item" daran jetzt repariert verstehe ich nicht!?
                      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.
                      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.

                      Zitat von Robert Beitrag anzeigen
                      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?
                      Genau so

                      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,

                          weiss jemand wie das Zonenhandling funktioniert? erst mal rein von den Kommandos die zum LMS geschickt werden müssen.

                          Viele Grüsse
                          Jürgen

                          Kommentar


                            Was genau meinst du damit? Ansteuern verschiedener Player in versch. Räumen funzt über die vorangestellte MAC Adresse.

                            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

                                Lädt...
                                X