Ankündigung

Einklappen
Keine Ankündigung bisher.

Sonos Anbindung

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

    Abend,

    weiter gehts mit den Betas. Die Grundfunktionalitäten sind damit alle drin. Diesmal hab ich die Radio-Stream-Verarbeitung (hoffentlich) rund gemacht.

    -->Hier<--

    Integriert sind
    • radio_station
    • radio_show
    • stream_content
    • Bugfix: Apple Music Metadata


    Gruss,

    Stefan
    Sonos

    Kommentar


      Abend zusammen,

      das Release nimmt langsam die entgültigen Züge an. Ich habe wieder ein paar Sachen hinzugefügt:
      • play_tunein (Abspielen eines Radiosenders)
      • play_url


      Ich habe das ganze jetzt schon auf meinen Fork von SmarthomeNG gepusht. Wer es testen möchte, zieht sich einfach den Sonos-Plugin-Ordner und richtet das Plugin wie gewohnt ein. Allen anderen sei schonmal die Doku ans Herz gelegt. Dort habe ich versucht, wirklich alles mit "bestem Schulenglisch" ausführlich zu beschreiben.
      Ich würde gerne diesen Stand in ein bis max. zwei Wochen ins SmarthomeNG bringen, damit der Broker endlich in den Ruhestand gehen kann. Die PlayTTS-Funktionalität kommt dann hinterher rein.

      -->Link zu Github<--

      Gruss,

      Stefan
      Sonos

      Kommentar


        Hallo Stefam,

        ich musste bei mir Zeile 34 in der init.py erweitern:

        von

        Code:
        from soco.music_services import MusicService
        auf
        Code:
        from plugins.sonos.soco.music_services import MusicService
        Sonst findet er das Modul soco nicht.

        VG
        Alex

        Kommentar


          Außerdem tauchen bei mir noch Probleme mit play_tunin auf:

          Code:
          2017-04-06  13:24:14 ERROR    enocean_switch_kitchen Item Sonos.XYZ.play_tunein: problem running <bound method Sonos.update_item of <plugins.sonos.Sonos object at 0x7228a710>>: list indices must be integers or slices, not str
          Traceback (most recent call last):
            File "/usr/local/smarthome/lib/item.py", line 712, in __update
              method(self, caller, source, dest)
            File "/usr/local/smarthome/plugins/sonos/__init__.py", line 2114, in update_item
              sonos_speaker[uid].play_tunein(item(), start)
            File "/usr/local/smarthome/plugins/sonos/__init__.py", line 1869, in play_tunein
              item = result['mediaMetadata'][0]
            File "/usr/local/smarthome/plugins/sonos/soco/data_structures.py", line 1053, in __getitem__
              return super(ListOfMusicInfoItems, self).__getitem__(key)
          TypeError: list indices must be integers or slices, not str
          sowie diese:
          Code:
          2017-04-06  13:24:54 WARNING  Thread-65    Item Sonos.XYZ.radio_station: value <built-in method title of str object at 0x76b68860> does not match type str. Via Sonos None
          VG
          Alex

          Kommentar


            Ok, schaue ich mir an. Wahrscheinlich ist bei mir soco noch global eingebunden. Danke fürs Feedback.

            Der Fehler kommt wahrscheinlich auch davon, da ich eventuell auf eine alte Version gecoded habe.
            Sonos

            Kommentar


              aschwith

              Die Fehler sind behoben. Danke fürs Testen.

              -->Link zu Github<--


              Gruss,

              Stefan
              Zuletzt geändert von pfischi; 06.04.2017, 19:18.
              Sonos

              Kommentar


                Hallo zusammen,

                Plugin ist nun mit den folgenden (letzten) Updates fertig, ich mach gerade noch das SmartVISU-Plugin fertig:
                • join
                • unjoin
                • sonos_playlists
                • load_sonos_playlist


                Die einzelnen Items habe ich im Gegensatz zum Broker noch etwas erweitert und noch flexibler gemacht. (siehe Doku)


                -->Link zu Github<--

                Grüsse,

                Stefan
                Sonos

                Kommentar


                  Hallo Stefan,

                  mit dir macht Testen Spaß! Habe noch ein paar kleine Rückmeldungen:

                  1) Der Plugin Logger steht noch auf "sonos_new". Ist das Absicht?

                  2) Könnten wir wieder eine getter Funktion für uid() einführen? Das wurde das raussuchen der uids für das join Kommando vereinfachen, z.B.
                  Code:
                  sh.Sonos.Device1.join(sh.Sonos.Device2.uid())
                  3) Beim Start bekomme ich häufig noch einen Fehler:
                  2017-04-11 19:00:26 ERROR Thread-87 expected string or bytes-like object
                  2017-04-11 19:00:27 ERROR Thread-94 expected string or bytes-like object

                  4) Gibt es mit den bestehenden Funktionen schon die Möglichkeit, snippets abzuspielen?

                  5) Mit der vorherigen Sonos Version habe ich es geschafft, die schöne Funktion "Musik mitnehmen" zu realisieren. Das heißt, die Quelle (egal ob Radio, Playlist etc.) die gerade in Raum 1 gespielt wird, per Kommando in einen anderen Raum 2 "mitzunehmen". Dazu reichte bisher folgende einfache Abfolge aus:
                  Code:
                  sh.Sonos.Raum2.join(sh.Sonos.Raum1.uid())
                  sh.Sonos.Raum1.unjoin(sh.Sonos.Raum2.uid())
                  Das funktioniert jetzt nicht mehr. Das unjoin (auch neuerdings ohne Aufrufargument) funktoniert bei direkter Aufeinanderfolge auf ein join (siehe 5) ) nicht. Hast Du eine Idee für einen andere Lösung?

                  Viele Grüße
                  Alex
                  Zuletzt geändert von aschwith; 12.04.2017, 06:35.

                  Kommentar


                    Morgen,

                    @aschwith

                    Danke fürs Testen. Zu den einzelnen Punkten:

                    1. altes Überbleibsel, wird gefixt.
                    2. hab ich tatsächlich vergessen, kommt rein
                    3. Kannst du mir da nochmal Logs zukommen lassen? 4. für die snippet- und GoogleTTS-Version brauch ich noch ein wenig, die möchte Bug-frei bekommen (Stichwort Endless-Loop)
                    5. was bedeutet in deinem Fall hintereinander? Hier bräuchte ich auch nochmal die Logs.

                    Grüsse,

                    Stefan
                    Zuletzt geändert von pfischi; 12.04.2017, 06:33.
                    Sonos

                    Kommentar


                      aschwith

                      Punkt 1. (Logger), 2. (uid-Property), 3. (error) sind gefixt. Punkt 5. (unjoin, join) sollte durch die uid-Property für deine Logik wieder funktionieren. Für das fehlerhafte Unjoin brauch ich die Logs von dir.

                      -->Link zu Github<--


                      Gruss,

                      Stefan
                      Sonos

                      Kommentar


                        Hallo Stefan,
                        kurze verspätete Rückmeldung. Punkte 1,2,3, und 5) funktionieren wieder bestens! Unjoin funktioniert auch, man muss es nur halt richtig mit

                        Code:
                        unjoin(True)
                        aufrufen. In der alten Brokerversion ging das meine ich noch mit Standardargument, sprich nur unjoin().

                        Besten Dank und viele Grüße
                        Alex

                        Kommentar


                          Abend zusammen,

                          ich habe die Integration des Widgets abgeschlossen und kann jetzt automatisch per visu_smartvisu Plugin in SmartVISU integriert werden. Es müssen keine händischen Anpassungen mehr vorgenommen werden. Die Doku ist entsprechend erweitert. Zusätzlich sind noch ein paar wichtige Bugfixes beim Event-Handling eingepflegt.

                          Das ist jetzt, wenn nicht noch derbe Fehler auftreten, die Release-Version. Ich würde mich freuen, wenn noch jemand diese Version vor dem Commit in SmarthomeNG testet.

                          -->Link zu Github<--

                          Gruss,

                          Stefan
                          Sonos

                          Kommentar


                            pfischi ,

                            funktioniert astrein! In der Doku zur sonos.yaml könntest Du noch das fehlende "visu_acl: rw" mit aufnehmen:

                            load_sonos_playlist:
                            ...
                            visu_acl: rw

                            Danke für die tolle Arbeit!
                            VG
                            Alex

                            Kommentar


                              Abend zusammen,

                              die bisherige Betaversion ist nun in den dev-Zweig von SmarthomeNG 1.3 eingepflegt. An dieser Stelle sei nocheinmal erwähnt, das kein Broker mehr notwendig ist, die komplette Funktionalität ist nun im Plugin. Ich habe versucht, die Dokumentation des Plugins so detailiert wie möglich zu gestalten, sollte ich was vergessen haben, könnt ihr hier gerne eine Anmerkung hinterlassen. Das Sonos-Widget für die SmartVISU 2.8 ist nun mit dabei und kann in Vernindung mit dem Plugin visu_smartvisu automatisch integriert werden. Im Moment fehlt noch die GoogleTTS und play-snippet Funktionalität, da bin ich aber dran.


                              --> Link Sonos-Plugin <--

                              Gruss,

                              Stefan
                              Zuletzt geändert von pfischi; 01.05.2017, 18:18.
                              Sonos

                              Kommentar


                                Mit SmarthomeNG 1.2 geht das Plugin nicht?

                                Kommentar

                                Lädt...
                                X