Ankündigung

Einklappen
Keine Ankündigung bisher.

Sonos Anbindung

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

    Schnelle Variante: 4 Visu Buttons, die jeweils eine Logik triggern, in der das play_tunein Kommando steht.

    Schöne Variante: Ein Station Selector, wie ihn zum Beispiel Msinn
    gebaut hat. Mehr Infos findest Du hier:
    https://knx-user-forum.de/forum/supp...e22#post677152
    Zuletzt geändert von aschwith; 16.04.2020, 21:19.

    Kommentar


      Vielen Danke für die Antworten... ich habe es mittlerweile so gelöst:

      hier die Visu am Beispiel vom Badezimmer:

      Code:
      <div class="block">
      
      <div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">
      
      <div data-role="collapsible" data-collapsed="false">
      
      <h3>Badezimmer</h3>
      
      {% import "widget_sonos.html" as sonos %}
      {{ sonos.player('sonos_Bad', 'Sonos.Badezimmer') }}
      {{ basic.select('BadSonos', 'Vorgabe.Radiosender.Badezimmer', '', ['WDR1','WDR2','Antenne Niederrhein','WDR4','Antenne Bayern','1live diggi','Sunshine Live'], '', ['1 LIVE','WDR2','Antenne Niederrhein','WDR 4','Antenne Bayern','1 Live Diggi','Sunshine Live']) }}
      </div>
      </div>
      </div>

      und die passende Logik sieht dann so aus:

      Code:
      sh.Sonos.Badezimmer.play_tunein(sh.Vorgabe.Radiosender. Badezimmer())
      sh.Sonos.Badezimmer.volume(10)           # startet die Sonos in Lautstärke 10
      sh.Sonos.Badezimmer.play(1)

      und zuletzt noch das passende Item:

      Code:
      Vorgabe:
      
          Radiosender:
      
              Badezimmer:
                  name: Auswahl Radio Bad
                  type: str
                  visu_acl: rw
                  enforce_updates: 'true'
                  cache: 'true'
                  visu: 'yes
      Viele Grüße

      Kommentar


        Hallo zusammen,

        ist es möglich mit dem Item

        Code:
        
        sh.Sonos.Kitchen.play_tunein('SRF3')
        ebfalls auf ein knx_listen zugreifen?
        Gruss Oliver

        Projektleiter Technische Gebäudeausrüstung

        Kommentar


          Also bei mir klappt das nicht.

          Habe ein weiteres Problem, bekomme alle 2 Minuten folgende Meldung im logfile:

          Code:
          2020-04-19 12:32:51 WARNING plugins.sonos.soco.events_base Event contains illegal metadatafor 'av_transport_uri_meta_data'.
          Error message: 'Unknown UPnP class: object.item.audioItem.linein'
          The result will be a SoCoFault.
          Ich bekomme die Meldung einfach nicht weg. Hat jemand eine Idee?

          Vielen Dank und viele Grüße

          Kommentar


            Ziemlich altes Thema. Das wird durch die unterschiedlichen DIDL-subclasses hervorgerufen, die vom SoCo controller nicht richtig kategorisiert werden. Habe den Fehler auch schon seit Monaten, aber nun scheint es auf Github seit einigen Tagen einen SoCo - Branch zu geben der das Problem löst:
            https://github.com/KennethNielsen/So...L-Lite-classes . Bin noch eher skeptisch da ich den neuen SoCo - Branch erst seit heute morgen einsetze, aber bis jetzt keine Fehlermeldungen mehr....

            Kommentar


              Update: Ich hab den oben genannten SoCo - Branch 'autogenerate-wild-DIDL-Lite-classes' jetzt ein paar Stunden laufen.

              Der Fehler

              Code:
              2020-04-19 12:32:51 WARNING plugins.sonos.soco.events_base Event contains illegal metadatafor 'av_transport_uri_meta_data'.
              Error message: 'Unknown UPnP class: object.item.audioItem.linein'
              The result will be a SoCoFault.
              ist zwar weg, dafür kommt jetzt aber eine andere Fehlermeldung alle 20 Minuten:

              Code:
              2020-04-26 09:36:13 WARNING plugins.sonos Sonos: : speaker is not initialized.
              2020-04-26 09:36:13 WARNING plugins.sonos Sonos: : speaker is not initialized.
              2020-04-26 09:36:13 WARNING plugins.sonos Sonos: : speaker is not initialized.
              2020-04-26 09:36:13 WARNING plugins.sonos Sonos: : speaker is not initialized.
              2020-04-26 09:36:13 ERROR plugins.sonos ''
              2020-04-26 09:56:12 WARNING plugins.sonos Sonos: : speaker is not initialized.
              2020-04-26 09:56:12 WARNING plugins.sonos Sonos: : speaker is not initialized.
              2020-04-26 09:56:12 WARNING plugins.sonos Sonos: : speaker is not initialized.
              2020-04-26 09:56:12 WARNING plugins.sonos Sonos: : speaker is not initialized.
              2020-04-26 09:56:12 ERROR plugins.sonos ''
              Funktionieren tun meine 4 Sonos aber nach wie vor.

              Kommentar


                EDIT: das UPnP Error701 Problem war wohl ein seltsamer Fehler. Hatte die UIDs vertauscht... Bleibt also noch Frage 1... Wie verbinde ich Taster mit dem Plugin?

                Hallo zusammen,

                ich wollte mir gerade mal die Zeit nehmen und das Sonos Plugin testen.
                Der Finale Stand sollte eigtl sowas sein (habe noch 2 Taster frei in der Küche):
                Taste 1 kurz: Spiele das was gerade im Wohnzimmer (Playbar) läuft auch in der Küche (2 Play 1) mit Lautstärke A
                Taste 1 lang: Wohnzimmer + Küche Stopp
                Taste 2 kurz: Spiele Playlist 1 in Küche und Wohnzimmer auf Lautstärke X
                Taste 2 lang: Spiele Playlist 2 in Küche und Wohnzimmer auf Lautstärke Y

                Ich hab kA wie ich das umsetzen soll? Ich schätze ich leg jeweils eine Gruppenadresse für die 4 Funktionen an und verbinde die 2 Taster (jeweils kurz lang mit jeweils einer dieser GA). Aber wie bekomm icht jetzt das Sonos Plugin dazu dann die jeweiligen Befehle an die Sonos Lautsprecher zu senden? Brauch ich dafür eine Art Middleware / Logik?

                Aber jetzt mal zum wesentlichen, es scheitert leider schon viel früher... ich hab erfolgreich die UID von den Sonos Lautsprechern ausgelesen (rincon_5caa...).
                Ich habe mal testweise nur die UID von der Küche in die sample yaml eingetragen. SmarthomeNG neu gestartet, Sonos Plugin startet, ich sehe die Items in der Items Konfiguration. TOP, dachte ich! Falsch gedacht. Hab mal manuell die Items getestet: Play stop pause next usw... bei allen Items sehe ich danach im log folgende Fehlermeldung: Item MySonos.Kueche.stop: problem running <bound method Sonos.update_item of <plugins.sonos.Sonos object at 0x67974990>>: UPnP Error 701 received: Transition not available from 192.168.XXX.XXX (in den X steht die IP vom Sonos Lautsprecher).

                Googlen hat mich dorthin gebracht: https://github.com/SoCo/SoCo/issues/454 die sagen das hätte was mit Pause zu tun, aber das kann nicht sein weil es passiert auch bei Stop und Play...

                Ein kurzer Tipp, der mich in die richtige Richtung bringt, wäre super.

                Viele Grüße
                Zuletzt geändert von Misanthrop; 26.04.2020, 17:36.

                Kommentar


                  UPDATE: Habe alles gelöst (logiken funktionieren diesbzgl. dann doch super straight forward.

                  Kommentar


                    Gibt es auch eine Lösung zum dem Speicher Problem?

                    Speicher.JPG

                    Vielen Dank

                    Kommentar


                      Zitat von Misanthrop Beitrag anzeigen
                      UPDATE: Habe alles gelöst (logiken funktionieren diesbzgl. dann doch super straight forward.
                      Lässt Du uns dran teilhaben?

                      Kommentar


                        Gatzman : Ja, das Speicherproblem im Sonos plugin existiert noch. Die Kollegen aus der Soco Community haben auf mein Betreiben netterweise im Soco projekt auf dem das Plugin basiert nach einem Speicherleck gesucht, konnten das Verhalten aber nie reproduzieren. Ich gehe davon aus, dass das Problem aus dem smarthomNG sonos plugin direkt kommt. Ich kenne aber kein Tool, um in Python nach einem Speicherleck zu suchen. Außerdem hat der plugin Auto damals diverse Sonos threads und services aufgesetzt. Ich konnte das Problem auch nie weiter eingrenzen.

                        Kommentar


                          Zitat von Sisamiwe Beitrag anzeigen
                          Lässt Du uns dran teilhaben?
                          Ich glaub nicht, dass das jemandem eine große Hilfe sein wird (sonst hätte ich es direkt gepostet), aber bitte:

                          habe mir folgendes item in die sonos yaml gebaut:
                          Code:
                          function:
                             type: num
                             knx_init: 0/6/0
                             knx_send: 0/6/0
                             knx_dpt: 5
                             enforce_updates: true
                          die taster senden die werte 0-3 an die GA 0/6/0


                          und so sieht meine Logik aus, die auf dieses Item zugreift:

                          Code:
                          if sh.MySonos.Kueche.function() == 0:
                             sh.MySonos.Kueche.volume(8)
                             sh.MySonos.Kueche.join("rincon_ANONYM") #ANONYM mit dem korrekten wert ersetzt
                          
                          if sh.MySonos.Kueche.function() == 1:
                             sh.MySonos.Kueche.unjoin(1)
                             sh.MySonos.Kueche.play(0)
                          
                          if sh.MySonos.Kueche.function() == 2:
                             sh.MySonos.Kueche.unjoin(1)
                             sh.MySonos.Kueche.play(0) #habe festgestellt, dass das alles wesentlich besser funktioniert, wenn man erst auf pause geht
                             sh.MySonos.Kueche.load_sonos_playlist.clear_queue(1) #habe festgestellt, dass das alles wesentlich besser funktioniert, wenn man die queue aufräumt
                             sh.MySonos.Kueche.volume(8)
                             sh.MySonos.Kueche.load_sonos_playlist("MeineListe1")
                             sh.MySonos.Kueche.play_mode("SHUFFLE")
                             sh.MySonos.Kueche.play(1)
                          
                          
                          if sh.MySonos.Kueche.function() == 3:
                             sh.MySonos.Kueche.unjoin(1)
                             sh.MySonos.Kueche.play(0)
                             sh.MySonos.Kueche.volume(8)
                             sh.MySonos.Kueche.load_sonos_playlist.clear_queue( 1)
                             sh.MySonos.Kueche.play_tunein("RadioStation1") #wenn ich RadioStation2 hören möchte, funktioniert das seltsamerweise nur, wenn ich vorher eine andere Station starte... das macht den Start allerdings auch recht langsam, aber anders funktioniert es seltsamerweise nicht...
                             sh.MySonos.Kueche.play_tunein("RadioStation2")
                          PS: ich mag python nicht

                          Kommentar


                            Zitat von aschwith Beitrag anzeigen
                            Ja, das Speicherproblem im Sonos plugin existiert noch. Die Kollegen aus der Soco Community haben auf mein Betreiben netterweise im Soco projekt auf dem das Plugin basiert nach einem Speicherleck gesucht, konnten das Verhalten aber nie reproduzieren. Ich gehe davon aus, dass das Problem aus dem smarthomNG sonos plugin direkt kommt. Ich kenne aber kein Tool, um in Python nach einem Speicherleck zu suchen. Außerdem hat der plugin Auto damals diverse Sonos threads und services aufgesetzt. Ich konnte das Problem auch nie weiter eingrenzen.
                            Gibt es einen Grund bzw wie ist er, warum bei dem Plugin das SoCo noch wie PIP installiert wird und dann importiert, um die Methoden und Funktionen zu nutzen?

                            Kommentar


                              Sisamiwe : Der Pluginautor pfischi ist leider nicht mehr aktiv. Sein Sonos plugin baut auf den Funktionen des SoCo auf. Per PIP wird meines Wissens nichts installiert oder importiert. Die SoCo Sources werden einfach in das plugin mit eingebunden.
                              Grüße

                              Kommentar


                                Hallo,

                                kann mir jemand sagen wie ich das mit der "Türklingel" lösen kann damit alle Gruppen nach Klingeln wieder ihren alten Wert bekommen? Sprich Gruppen sind wie vohrer, Radiosender sind wie vorher und Play oder Stop wie vorher. Hier meine bisherige Logic.

                                Code:
                                if trigger['value'] == 1:
                                
                                #Join alle Lautsprecher zu einer Gruppe
                                    sh.mysonos.kueche2.join('rincon_000e58f752a801400')
                                    sh.mysonos.bad.join( 'rincon_000e58f752a801400')
                                    sh.mysonos.terasse.join( 'rincon_000e58f752a801400')
                                #Klingeln lassen
                                    sh.mysonos.kueche1.play_snippet.group_command(1)
                                    sh.mysonos.kueche1.play_snippet.snippet_volume(50)
                                    sh.mysonos.kueche1.play_snippet('oldtimer2.mp3')
                                 #Zustand vor dem Klingel wiederherstellen aber wie?
                                Danke und Gruß,

                                Danny

                                Kommentar

                                Lädt...
                                X