Ankündigung

Einklappen
Keine Ankündigung bisher.

Sonos Anbindung

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

    Play Status

    Hallo,

    kann mir Mal jemand verraten wie ich ganz simpel den play-Status eines Teilnehmers abfrage ?

    Code:
    sh.[Lautsprecher].play() liefert immer FALSE.
    
    sh.[Lautsprecher].status() liefert immer TRUE.
    Danke.
    sigpic
    Christian Huck
    Tel.: 089 / 122 80 995
    Email: mail@homeintelligence.de
    Web: www.homeintelligence.de

    Kommentar


      Neue Version Sonos Broker 0.5

      Abend zusammen,

      es gibt wieder ein relatives großes Update für den Broker und das Plugin.

      Update

      Man kann nun die aktuelle Playliste speichern und später wiederherstellen.
      Desweiteren habe ich eine interaktive Shell für den Broker implementiert (im Brokerverzeichnis und dann da "./sonos_cmd"). Für weitere Infos wie immer in die Doku auf Github schauen, da habe ich alles soweit aktualisiert. Alle implementierten Kommandos können damit schnell ausgeführt werden.

      Zusätzlich kann man sich nun einfach die Lautsprecher im Netzwerk mit dem Befehl "sonos_broker -l" anzeigen lassen (z.B. für die Einrichtung des Plugins).

      Das Plugin ist noch nicht in der dev-Branch von sh.py; der Pull-Request ist bereits abgesetzt

      Bei Fragen und Fehlern gibts wie immer in diesem Thread Support.

      Gruss,

      Stefan
      Sonos

      Kommentar


        Zitat von hoggle Beitrag anzeigen
        Hallo,

        kann mir Mal jemand verraten wie ich ganz simpel den play-Status eines Teilnehmers abfrage ?

        Code:
        sh.[Lautsprecher].play() liefert immer FALSE.
        
        sh.[Lautsprecher].status() liefert immer TRUE.
        Danke.
        Was gibt denn ein "la" Befehl im "cli"-Modus von sh.py aus (für deine oben genannten Items)? Stimmen da die Werte? "Status" auf "True" bedeutet, dass der Speaker online ist.
        Sonos

        Kommentar


          Hi Stefan,

          sorry für die verspätete Antwort.

          Im smarthome CLI sehe ich das gleiche Problem.

          Kueche.play = False

          obwohl auf dem Lautsprecher die Wiedergabe läuft.
          sigpic
          Christian Huck
          Tel.: 089 / 122 80 995
          Email: mail@homeintelligence.de
          Web: www.homeintelligence.de

          Kommentar


            Hi,

            das selbe Problem habe ich auch schon seit "Jahren" . Interessanterweise, jedesmal wenn ich alle LOGlevel auf Debug stelle, funktionierts - wahrscheinlich durch den Neustart des sonosServer und sh. Irgendwann werden die Stati dann nicht mehr propagiert....

            gruss Buffi

            Kommentar


              Hi Buffi,

              beruhigend dass ich damit nicht alleine bin...

              Ich habe auch schon festgestellt dass der Prozess sich anders verhält wenn er nicht als "detached" im Hintergrund als Daemon läuft, sondern im Vordergrund im debug Mode. Kann mich aber gerade nicht mehr daran erinnern was das war.

              Stefan, vielleicht kriegen wir das ja noch gelöst.
              So nette Sachen wie: "Guck Mal ob die Musik läuft wenn keiner mehr im Haus ist und schalte sie dann ggfs. ab" wären schon schön.

              Gruß
              Christian
              sigpic
              Christian Huck
              Tel.: 089 / 122 80 995
              Email: mail@homeintelligence.de
              Web: www.homeintelligence.de

              Kommentar


                Hallo,

                ich habe heute das Update auf Broker 0.5 gemacht.

                Nun bekomme ich beim Abspielen nur noch bei lokalem Zugriff den Interpret und das Cover.

                Wenn ich über Sonos Quellen von Spotify oder Internradio abspiele bekomme ich im Broker Fehler.

                Im Broker erscheint dann immer wieder die lokale Quelle, obwohl diese nicht mehr aktiv ist

                Code:
                2015-01-23 17:28:34,518 INFO     Thread-167   registered clients: 192.168.133.17:[9999] -- udp_broker.py:udp_send:43
                2015-01-23 17:28:34,523 INFO     Thread-167   sending sonos speaker data: {
                    "additional_zone_members": "",
                    "alarms": {
                        "1": {
                            "Duration": "02:00:00",
                            "Enabled": true,
                            "IncludedLinkZones": false,
                            "PlayMode": "SHUFFLE_NOREPEAT",
                            "Recurrence": "DAILY",
                            "StartTime": "07:00:00",
                            "Volume": 25
                        }
                    },
                    "bass": 0,
                    "hardware_version": "1.16.5.5-2",
                    "ip": "192.168.133.56",
                    "is_coordinator": true,
                    "led": 1,
                    "loudness": 0,
                    "mac_address": "00:0E:58:A4:A2:D0",
                    "max_volume": -1,
                    "model": "Sonos CONNECT",
                    "mute": 0,
                    "pause": 0,
                    "play": 0,
                    "playlist_position": 0,
                    "playmode": "shuffle_norepeat",
                    "radio_show": "",
                    "radio_station": "",
                    "serial_number": "00-0E-58-A4-A2-D0:A",
                    "software_version": "28.1-83040",
                    "status": true,
                    "stop": 1,
                    "streamtype": "music",
                    "track_album_art": "http://192.168.133.56:1400/getaa?u=x-file-cifs%3a%2f%2f192.168.133.19%2fmusik%2fDire%2520Straits%2fBrothers%2520In%2520Arms%2520(Remastered)%2f07%2520The%2520Man's%2520Too%2520Strong.m4a&v=10",
                    "track_artist": "Dire Straits",
                    "track_duration": "0:04:38",
                    "track_position": "0:00:00",
                    "track_title": "The Man's Too Strong",
                    "track_uri": "x-file-cifs://192.168.133.19/musik/Dire%20Straits/Brothers%20In%20Arms%20(Remastered)/07%20The%20Man's%20Too%20Strong.m4a",
                    "treble": 0,
                    "tts_local_mode": false,
                    "uid": "rincon_000e58a4a2d001400",
                    "volume": 100,
                    "zone_icon": "x-rincon-roomicon:living",
                    "zone_name": "AS43"
                } -- udp_broker.py:udp_send:44
                192.168.133.17 - - [23/Jan/2015 17:28:34] "POST / HTTP/1.1" 200 -
                2015-01-23 17:28:34,553 DEBUG    Thread-167   Server response -- status: True -- response:  -- sonos_broker:do_POST:63
                2015-01-23 17:29:16,721 DEBUG    Thread-2     active threads: 9 -- sonos_service.py:get_speakers_periodically:75
                2015-01-23 17:29:16,725 INFO     Thread-2     scan devices ... -- sonos_service.py:get_speakers_periodically:76
                2015-01-23 17:29:17,037 INFO     Thread-2     Sending GetZoneGroupState None to 192.168.133.56 -- services.py:send_command:330
                2015-01-23 17:29:17,051 DEBUG    Thread-2     Sending {'SOAPACTION': 'urn:schemas-upnp-org:service:ZoneGroupTopology:1#GetZoneGroupState', 'Content-Type': 'text/xml; charset="utf-8"'}, <?xml version="1.0" ?>
                <s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
                  <s:Body>
                    <u:GetZoneGroupState xmlns:u="urn:schemas-upnp-org:service:ZoneGroupTopology:1"/>
                  </s:Body>
                </s:Envelope>
                 -- services.py:send_command:331
                2015-01-23 17:29:17,091 INFO     Thread-2     Starting new HTTP connection (1): 192.168.133.56 -- connectionpool.py:_new_conn:188
                2015-01-23 17:29:17,113 DEBUG    Thread-2     "POST /ZoneGroupTopology/Control HTTP/1.1" 200 972 -- connectionpool.py:_make_request:362
                2015-01-23 17:29:17,127 DEBUG    Thread-2     Received {'CONTENT-LENGTH': '972', 'EXT': '', 'CONTENT-TYPE': 'text/xml; charset="utf-8"', 'Connection': 'close', 'Server': 'Linux UPnP/1.0 Sonos/28.1-83040 (ZP90)'}, <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetZoneGroupStateResponse xmlns:u="urn:schemas-upnp-org:service:ZoneGroupTopology:1"><ZoneGroupState>&lt;ZoneGroups&gt;&lt;ZoneGroup Coordinator=&quot;RINCON_000E58A4A2D001400&quot; ID=&quot;RINCON_000E58A4A2D001400:1&quot;&gt;&lt;ZoneGroupMember UUID=&quot;RINCON_000E58A4A2D001400&quot; Location=&quot;http://192.168.133.56:1400/xml/device_description.xml&quot; ZoneName=&quot;AS43&quot; Icon=&quot;x-rincon-roomicon:living&quot; Configuration=&quot;1&quot; SoftwareVersion=&quot;28.1-83040&quot; MinCompatibleVersion=&quot;27.0-00000&quot; LegacyCompatibleVersion=&quot;24.0-0000&quot; BootSeq=&quot;49&quot; WirelessMode=&quot;0&quot; ChannelFreq=&quot;2437&quot; BehindWifiExtender=&quot;0&quot; WifiEnabled=&quot;1&quot;/&gt;&lt;/ZoneGroup&gt;&lt;/ZoneGroups&gt;</ZoneGroupState></u:GetZoneGroupStateResponse></s:Body></s:Envelope> -- services.py:send_command:334
                2015-01-23 17:29:17,135 INFO     Thread-2     Received status 200 from 192.168.133.56 -- services.py:send_command:345
                2015-01-23 17:29:17,167 INFO     Thread-2     Starting new HTTP connection (1): 192.168.133.56 -- connectionpool.py:_new_conn:188
                2015-01-23 17:29:17,184 DEBUG    Thread-2     "GET /status/zp HTTP/1.1" 200 None -- connectionpool.py:_make_request:362
                2015-01-23 17:29:17,202 DEBUG    Thread-2     Cache hit -- services.py:send_command:326
                2015-01-23 17:29:17,207 DEBUG    Thread-2     Cache hit -- services.py:send_command:326
                2015-01-23 17:29:17,215 DEBUG    Thread-2     Cache hit -- services.py:send_command:326
                Gruß Hartwig

                Kommentar


                  @hartwigm

                  Kannst du mir bitte den Log mit dem Fehler schicken. Dann kann ich da nachschauen.

                  @hoggle, @buffi

                  Der Hinweis, das erst nach einer Weile die Aktualisierung der Stati nicht funktioniert, ist doch schon mal ein guter Hinweis. Ich vermute hier noch einen Bug im SoCo-Framework. Normalerweise registriert man sich für die Events bei dem jeweiligen Lautsprecher. Nach einer Weile muss man die Subscrption erneuern. Ich vermute, dass da der Fehler liegt. Ihr solltet dann aber bei keinem Wert eine Aktualisierung erhalten. Könnt Ihr das verifizieren?

                  Ich würde jetzt mal eine Version fertig machen mit einer Vielzahl an Debug-Ausgaben. Ihr würdet mir einen Gefallen tun, wenn Ihr diese dann einsetzten könntet und mir die Debug-Ausgaben schicken könntet. Ich denke, am Sonntag hätte ich die spezielle Version fertig.

                  Gruss,

                  Stefan
                  Sonos

                  Kommentar


                    Code:
                    Exception happened during processing of request from ('192.168.133.56', 2830)
                    Traceback (most recent call last):
                      File "/usr/lib/python3.2/socketserver.py", line 592, in process_request_thread
                        self.finish_request(request, client_address)
                      File "/usr/lib/python3.2/socketserver.py", line 334, in finish_request
                        self.RequestHandlerClass(request, client_address, self)
                      File "/usr/lib/python3.2/socketserver.py", line 648, in __init__
                        self.handle()
                      File "/usr/lib/python3.2/http/server.py", line 396, in handle
                        self.handle_one_request()
                      File "/usr/lib/python3.2/http/server.py", line 384, in handle_one_request
                        method()
                      File "/usr/local/lib/python3.2/dist-packages/soco/events.py", line 219, in do_NOTIFY
                        variables = parse_event_xml(content)
                      File "/usr/local/lib/python3.2/dist-packages/soco/events.py", line 135, in parse_event_xml
                        value = from_didl_string(value)[0]
                      File "/usr/local/lib/python3.2/dist-packages/soco/data_structures.py", line 79, in from_didl_string
                        items.append(cls.from_element(elt))
                      File "/usr/local/lib/python3.2/dist-packages/soco/data_structures.py", line 352, in from_element
                        " got '<{1}>'".format(cls.tag, element.tag))
                    soco.exceptions.DIDLMetadataError: Wrong element. Expected '<container>', got '<{urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/}item>'
                    ----------------------------------------

                    Ich habe zuerst 19:25 aus lokaler Bibliothek abgespielt
                    dann stop auf Spotify Quelle.
                    Dann wurde der erste Title mit Cover korrekt angezeigt, ein Skip au den nächsten und nun geht nichts mehr.

                    Ich hoffe Du kommst aus dem Log klar
                    Code:
                    2015-01-23 19:28:22,655 INFO     Thread-2     scan devices ... -- sonos_service.py:get_speakers_periodically:76
                    2015-01-23 19:28:23,134 INFO     Thread-2     Sending GetZoneGroupState None to 192.168.133.56 -- services.py:send_command:330
                    2015-01-23 19:28:23,149 DEBUG    Thread-2     Sending {'SOAPACTION': 'urn:schemas-upnp-org:service:ZoneGroupTopology:1#GetZoneGroupState', 'Content-Type': 'text/xml; charset="utf-8"'}, <?xml version="1.0" ?>
                    <s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
                      <s:Body>
                        <u:GetZoneGroupState xmlns:u="urn:schemas-upnp-org:service:ZoneGroupTopology:1"/>
                      </s:Body>
                    </s:Envelope>
                     -- services.py:send_command:331
                    2015-01-23 19:28:23,186 INFO     Thread-2     Starting new HTTP connection (1): 192.168.133.56 -- connectionpool.py:_new_conn:188
                    2015-01-23 19:28:23,209 DEBUG    Thread-2     "POST /ZoneGroupTopology/Control HTTP/1.1" 200 972 -- connectionpool.py:_make_request:362
                    2015-01-23 19:28:23,223 DEBUG    Thread-2     Received {'CONTENT-LENGTH': '972', 'EXT': '', 'CONTENT-TYPE': 'text/xml; charset="utf-8"', 'Connection': 'close', 'Server': 'Linux UPnP/1.0 Sonos/28.1-83040 (ZP90)'}, <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetZoneGroupStateResponse xmlns:u="urn:schemas-upnp-org:service:ZoneGroupTopology:1"><ZoneGroupState>&lt;ZoneGroups&gt;&lt;ZoneGroup Coordinator=&quot;RINCON_000E58A4A2D001400&quot; ID=&quot;RINCON_000E58A4A2D001400:1&quot;&gt;&lt;ZoneGroupMember UUID=&quot;RINCON_000E58A4A2D001400&quot; Location=&quot;http://192.168.133.56:1400/xml/device_description.xml&quot; ZoneName=&quot;AS43&quot; Icon=&quot;x-rincon-roomicon:living&quot; Configuration=&quot;1&quot; SoftwareVersion=&quot;28.1-83040&quot; MinCompatibleVersion=&quot;27.0-00000&quot; LegacyCompatibleVersion=&quot;24.0-0000&quot; BootSeq=&quot;49&quot; WirelessMode=&quot;0&quot; ChannelFreq=&quot;2437&quot; BehindWifiExtender=&quot;0&quot; WifiEnabled=&quot;1&quot;/&gt;&lt;/ZoneGroup&gt;&lt;/ZoneGroups&gt;</ZoneGroupState></u:GetZoneGroupStateResponse></s:Body></s:Envelope> -- services.py:send_command:334
                    2015-01-23 19:28:23,231 INFO     Thread-2     Received status 200 from 192.168.133.56 -- services.py:send_command:345
                    2015-01-23 19:28:23,262 INFO     Thread-2     Starting new HTTP connection (1): 192.168.133.56 -- connectionpool.py:_new_conn:188
                    2015-01-23 19:28:23,280 DEBUG    Thread-2     "GET /status/zp HTTP/1.1" 200 None -- connectionpool.py:_make_request:362
                    2015-01-23 19:28:23,297 DEBUG    Thread-2     Cache hit -- services.py:send_command:326
                    2015-01-23 19:28:23,303 DEBUG    Thread-2     Cache hit -- services.py:send_command:326
                    2015-01-23 19:28:23,308 DEBUG    Thread-2     Cache hit -- services.py:send_command:326
                    2015-01-23 19:28:35,302 DEBUG    Thread-22    COMMAND ClientSubscribe -- attributes: ip: 192.168.133.17, port: 9999 -- sonos_commands.py:run:66
                    2015-01-23 19:28:35,307 INFO     Thread-22    register client for udp messages: 192.168.133.17:9999 -- udp_broker.py:subscribe_client:13
                    2015-01-23 19:28:35,312 INFO     Thread-22    registered clients: 192.168.133.17:[9999] -- udp_broker.py:subscribe_client:23
                    192.168.133.17 - - [23/Jan/2015 19:28:35] "POST / HTTP/1.1" 200 -
                    2015-01-23 19:28:35,329 DEBUG    Thread-22    Server response -- status: True -- response:  -- sonos_broker:do_POST:63
                    2015-01-23 19:28:35,386 DEBUG    Thread-23    COMMAND CurrentState -- attributes: group_command: 0, uid: rincon_000e58a4a2d001400 -- sonos_commands.py:run:126
                    2015-01-23 19:28:35,402 INFO     Thread-23    registered clients: 192.168.133.17:[9999] -- udp_broker.py:udp_send:43
                    2015-01-23 19:28:35,406 INFO     Thread-23    sending sonos speaker data: {
                        "additional_zone_members": "",
                        "alarms": {
                            "1": {
                                "Duration": "02:00:00",
                                "Enabled": true,
                                "IncludedLinkZones": false,
                                "PlayMode": "SHUFFLE_NOREPEAT",
                                "Recurrence": "DAILY",
                                "StartTime": "07:00:00",
                                "Volume": 25
                            }
                        },
                        "bass": 0,
                        "hardware_version": "1.16.5.5-2",
                        "ip": "192.168.133.56",
                        "is_coordinator": true,
                        "led": 1,
                        "loudness": 0,
                        "mac_address": "00:0E:58:A4:A2:D0",
                        "max_volume": -1,
                        "model": "Sonos CONNECT",
                        "mute": 0,
                        "pause": 0,
                        "play": 1,
                        "playlist_position": 0,
                        "playmode": "shuffle_norepeat",
                        "radio_show": "",
                        "radio_station": "",
                        "serial_number": "00-0E-58-A4-A2-D0:A",
                        "software_version": "28.1-83040",
                        "status": true,
                        "stop": 0,
                        "streamtype": "music",
                        "track_album_art": "http://192.168.133.56:1400/getaa?s=1&u=x-sonos-spotify%3aspotify%253atrack%253a7IHOIqZUUInxjVkko181PB%3fsid%3d9%26flags%3d32%26sn%3d1",
                        "track_artist": "Sam Smith",
                        "track_duration": "0:02:53",
                        "track_position": "0:00:01",
                        "track_title": "Stay With Me",
                        "track_uri": "x-sonos-spotify:spotify%3atrack%3a7IHOIqZUUInxjVkko181PB?sid=9&flags=32&sn=1",
                        "treble": 0,
                        "tts_local_mode": false,
                        "uid": "rincon_000e58a4a2d001400",
                        "volume": 100,
                        "zone_icon": "x-rincon-roomicon:living",
                        "zone_name": "AS43"
                    } -- udp_broker.py:udp_send:44
                    192.168.133.17 - - [23/Jan/2015 19:28:35] "POST / HTTP/1.1" 200 -
                    2015-01-23 19:28:35,433 DEBUG    Thread-23    Server response -- status: True -- response:  -- sonos_broker:do_POST:63
                    2015-01-23 19:28:41,817 DEBUG    Thread-24    Event 5 received for sid: uuid:RINCON_000E58A4A2D001400_sub0000003262 -- events.py:do_NOTIFY:214
                    2015-01-23 19:28:41,821 DEBUG    Thread-24    Current thread is <Thread(Thread-24, started -1301703568)> -- events.py:do_NOTIFY:215
                    ----------------------------------------
                    Exception happened during processing of request from ('192.168.133.56', 2904)
                    Traceback (most recent call last):
                      File "/usr/lib/python3.2/socketserver.py", line 592, in process_request_thread
                        self.finish_request(request, client_address)
                      File "/usr/lib/python3.2/socketserver.py", line 334, in finish_request
                        self.RequestHandlerClass(request, client_address, self)
                      File "/usr/lib/python3.2/socketserver.py", line 648, in __init__
                        self.handle()
                      File "/usr/lib/python3.2/http/server.py", line 396, in handle
                        self.handle_one_request()
                      File "/usr/lib/python3.2/http/server.py", line 384, in handle_one_request
                        method()
                      File "/usr/local/lib/python3.2/dist-packages/soco/events.py", line 219, in do_NOTIFY
                        variables = parse_event_xml(content)
                      File "/usr/local/lib/python3.2/dist-packages/soco/events.py", line 135, in parse_event_xml
                        value = from_didl_string(value)[0]
                      File "/usr/local/lib/python3.2/dist-packages/soco/data_structures.py", line 79, in from_didl_string
                        items.append(cls.from_element(elt))
                      File "/usr/local/lib/python3.2/dist-packages/soco/data_structures.py", line 352, in from_element
                        " got '<{1}>'".format(cls.tag, element.tag))
                    soco.exceptions.DIDLMetadataError: Wrong element. Expected '<container>', got '<{urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/}item>'
                    ----------------------------------------
                    2015-01-23 19:28:47,004 DEBUG    Thread-25    Event 5 received for sid: uuid:RINCON_000E58A4A2D001400_sub0000003262 -- events.py:do_NOTIFY:214
                    2015-01-23 19:28:47,016 DEBUG    Thread-25    Current thread is <Thread(Thread-25, started -1301703568)> -- events.py:do_NOTIFY:215
                    ----------------------------------------
                    Exception happened during processing of request from ('192.168.133.56', 2910)
                    Traceback (most recent call last):
                      File "/usr/lib/python3.2/socketserver.py", line 592, in process_request_thread
                        self.finish_request(request, client_address)
                      File "/usr/lib/python3.2/socketserver.py", line 334, in finish_request
                        self.RequestHandlerClass(request, client_address, self)
                      File "/usr/lib/python3.2/socketserver.py", line 648, in __init__
                        self.handle()
                      File "/usr/lib/python3.2/http/server.py", line 396, in handle
                        self.handle_one_request()
                      File "/usr/lib/python3.2/http/server.py", line 384, in handle_one_request
                        method()
                      File "/usr/local/lib/python3.2/dist-packages/soco/events.py", line 219, in do_NOTIFY
                        variables = parse_event_xml(content)
                      File "/usr/local/lib/python3.2/dist-packages/soco/events.py", line 135, in parse_event_xml
                        value = from_didl_string(value)[0]
                      File "/usr/local/lib/python3.2/dist-packages/soco/data_structures.py", line 79, in from_didl_string
                        items.append(cls.from_element(elt))
                      File "/usr/local/lib/python3.2/dist-packages/soco/data_structures.py", line 352, in from_element
                        " got '<{1}>'".format(cls.tag, element.tag))
                    soco.exceptions.DIDLMetadataError: Wrong element. Expected '<container>', got '<{urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/}item>'
                    ----------------------------------------
                    2015-01-23 19:28:57,524 DEBUG    Thread-26    Event 5 received for sid: uuid:RINCON_000E58A4A2D001400_sub0000003262 -- events.py:do_NOTIFY:214
                    2015-01-23 19:28:57,529 DEBUG    Thread-26    Current thread is <Thread(Thread-26, started -1301703568)> -- events.py:do_NOTIFY:215
                    ----------------------------------------
                    Exception happened during processing of request from ('192.168.133.56', 2913)
                    Traceback (most recent call last):
                      File "/usr/lib/python3.2/socketserver.py", line 592, in process_request_thread
                        self.finish_request(request, client_address)
                      File "/usr/lib/python3.2/socketserver.py", line 334, in finish_request
                        self.RequestHandlerClass(request, client_address, self)
                      File "/usr/lib/python3.2/socketserver.py", line 648, in __init__
                        self.handle()
                      File "/usr/lib/python3.2/http/server.py", line 396, in handle
                        self.handle_one_request()
                      File "/usr/lib/python3.2/http/server.py", line 384, in handle_one_request
                        method()
                      File "/usr/local/lib/python3.2/dist-packages/soco/events.py", line 219, in do_NOTIFY
                        variables = parse_event_xml(content)
                      File "/usr/local/lib/python3.2/dist-packages/soco/events.py", line 135, in parse_event_xml
                        value = from_didl_string(value)[0]
                      File "/usr/local/lib/python3.2/dist-packages/soco/data_structures.py", line 79, in from_didl_string
                        items.append(cls.from_element(elt))
                      File "/usr/local/lib/python3.2/dist-packages/soco/data_structures.py", line 352, in from_element
                        " got '<{1}>'".format(cls.tag, element.tag))
                    soco.exceptions.DIDLMetadataError: Wrong element. Expected '<container>', got '<{urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/}item>'
                    ----------------------------------------
                    2015-01-23 19:29:17,625 DEBUG    Thread-27    Event 5 received for sid: uuid:RINCON_000E58A4A2D001400_sub0000003262 -- events.py:do_NOTIFY:214
                    2015-01-23 19:29:17,630 DEBUG    Thread-27    Current thread is <Thread(Thread-27, started -1301703568)> -- events.py:do_NOTIFY:215
                    ----------------------------------------
                    Exception happened during processing of request from ('192.168.133.56', 2922)
                    Traceback (most recent call last):
                      File "/usr/lib/python3.2/socketserver.py", line 592, in process_request_thread
                        self.finish_request(request, client_address)
                      File "/usr/lib/python3.2/socketserver.py", line 334, in finish_request
                        self.RequestHandlerClass(request, client_address, self)
                      File "/usr/lib/python3.2/socketserver.py", line 648, in __init__
                        self.handle()
                      File "/usr/lib/python3.2/http/server.py", line 396, in handle
                        self.handle_one_request()
                      File "/usr/lib/python3.2/http/server.py", line 384, in handle_one_request
                        method()
                      File "/usr/local/lib/python3.2/dist-packages/soco/events.py", line 219, in do_NOTIFY
                        variables = parse_event_xml(content)
                      File "/usr/local/lib/python3.2/dist-packages/soco/events.py", line 135, in parse_event_xml
                        value = from_didl_string(value)[0]
                      File "/usr/local/lib/python3.2/dist-packages/soco/data_structures.py", line 79, in from_didl_string
                        items.append(cls.from_element(elt))
                      File "/usr/local/lib/python3.2/dist-packages/soco/data_structures.py", line 352, in from_element
                        " got '<{1}>'".format(cls.tag, element.tag))
                    soco.exceptions.DIDLMetadataError: Wrong element. Expected '<container>', got '<{urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/}item>'
                    ----------------------------------------
                    2015-01-23 19:29:23,373 DEBUG    Thread-2     active threads: 9 -- sonos_service.py:get_speakers_periodically:75
                    2015-01-23 19:29:23,378 INFO     Thread-2     scan devices ... -- sonos_service.py:get_speakers_periodically:76
                    2015-01-23 19:29:23,479 INFO     Thread-2     Sending GetZoneGroupState None to 192.168.133.56 -- services.py:send_command:330
                    2015-01-23 19:29:23,495 DEBUG    Thread-2     Sending {'SOAPACTION': 'urn:schemas-upnp-org:service:ZoneGroupTopology:1#GetZoneGroupState', 'Content-Type': 'text/xml; charset="utf-8"'}, <?xml version="1.0" ?>
                    <s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
                      <s:Body>
                        <u:GetZoneGroupState xmlns:u="urn:schemas-upnp-org:service:ZoneGroupTopology:1"/>
                      </s:Body>
                    </s:Envelope>
                     -- services.py:send_command:331
                    2015-01-23 19:29:23,530 INFO     Thread-2     Starting new HTTP connection (1): 192.168.133.56 -- connectionpool.py:_new_conn:188
                    2015-01-23 19:29:23,550 DEBUG    Thread-2     "POST /ZoneGroupTopology/Control HTTP/1.1" 200 972 -- connectionpool.py:_make_request:362
                    2015-01-23 19:29:23,564 DEBUG    Thread-2     Received {'CONTENT-LENGTH': '972', 'EXT': '', 'CONTENT-TYPE': 'text/xml; charset="utf-8"', 'Connection': 'close', 'Server': 'Linux UPnP/1.0 Sonos/28.1-83040 (ZP90)'}, <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetZoneGroupStateResponse xmlns:u="urn:schemas-upnp-org:service:ZoneGroupTopology:1"><ZoneGroupState>&lt;ZoneGroups&gt;&lt;ZoneGroup Coordinator=&quot;RINCON_000E58A4A2D001400&quot; ID=&quot;RINCON_000E58A4A2D001400:1&quot;&gt;&lt;ZoneGroupMember UUID=&quot;RINCON_000E58A4A2D001400&quot; Location=&quot;http://192.168.133.56:1400/xml/device_description.xml&quot; ZoneName=&quot;AS43&quot; Icon=&quot;x-rincon-roomicon:living&quot; Configuration=&quot;1&quot; SoftwareVersion=&quot;28.1-83040&quot; MinCompatibleVersion=&quot;27.0-00000&quot; LegacyCompatibleVersion=&quot;24.0-0000&quot; BootSeq=&quot;49&quot; WirelessMode=&quot;0&quot; ChannelFreq=&quot;2437&quot; BehindWifiExtender=&quot;0&quot; WifiEnabled=&quot;1&quot;/&gt;&lt;/ZoneGroup&gt;&lt;/ZoneGroups&gt;</ZoneGroupState></u:GetZoneGroupStateResponse></s:Body></s:Envelope> -- services.py:send_command:334
                    2015-01-23 19:29:23,573 INFO     Thread-2     Received status 200 from 192.168.133.56 -- services.py:send_command:345
                    2015-01-23 19:29:23,605 INFO     Thread-2     Starting new HTTP connection (1): 192.168.133.56 -- connectionpool.py:_new_conn:188
                    2015-01-23 19:29:23,630 DEBUG    Thread-2     "GET /status/zp HTTP/1.1" 200 None -- connectionpool.py:_make_request:362
                    2015-01-23 19:29:23,648 DEBUG    Thread-2     Cache hit -- services.py:send_command:326
                    2015-01-23 19:29:23,653 DEBUG    Thread-2     Cache hit -- services.py:send_command:326
                    2015-01-23 19:29:23,658 DEBUG    Thread-2     Cache hit -- services.py:send_command:326
                    ^CTraceback (most recent call last):
                      File "/usr/local/bin/sonos_broker", line 367, in <module>
                        broker.start()
                      File "/usr/local/bin/sonos_broker", line 277, in start
                        self._http_server.serve_forever()
                      File "/usr/lib/python3.2/socketserver.py", line 236, in serve_forever
                        poll_interval)
                      File "/usr/lib/python3.2/socketserver.py", line 155, in _eintr_retry
                        return func(*args)
                    TypeError: stop() takes exactly 1 positional argument (3 given)
                    Gruß Hartwig

                    Kommentar


                      Danke für das Log. Problem wird gleich behoben. Ich hatte die Stelle eigentlich bereits gepatched. Aber die hat sich wohl wieder reingeschlichen, als ich nochmal die aktuellen SoCo-Version reingeschoben hatte. In ca. 1h steht eine neue Hotfix-Version in Github. Musst nur den Broker nochmal installieren.

                      Danke für das Debuggen,


                      Stefan

                      Edit: Der Hotfix ist draussen. Hier gibts den Download.
                      Sonos

                      Kommentar


                        Neue Version Sonos Broker 0.5.2

                        Ich habe eine kleine Veränderung an der Event-Subscription vorgenommen. Ich bitte euch mal zu schauen, ob die Probleme immer noch auftreten oder nicht. Im Fehlerfall bitte hier das Log posten, dann kann ich drüberschauen.

                        Link

                        Gruß,

                        Stefan
                        Sonos

                        Kommentar


                          Findings zu sonos_cmd - Broker 0.5.1 (23-01-2015)

                          Hallo Stefan,

                          ich hatte bei meinen Forschungen um die Probleme im anderen Thread noch zwei Findings zu sonos_cmd:

                          1. sonos_cmd zeigt mir meinen Lautsprecher nicht. sonos_broker - l zeigt:
                          Code:
                          Scanning for Sonos speaker in the network ...
                          
                          Found 1 speaker in the network.
                          
                          
                          RINCON_B8E93792D35401400
                          ------------------------
                              ip   :    10.0.0.188
                              name :    B&O Zuspieler
                              model:    Sonos CONNECT
                          Wenn ich sonos_cmd starte und 'list' eingebe, sehe ich jedoch keinen Lautsprecher:
                          Code:
                          Connecting to Sonos broker ... done!
                          
                          Welcome to Sonos Broker console!
                          =>> list
                          
                          speaker(s):
                          -----------
                          
                          
                          =>>
                          2. Wenn ich sonos_cmd aufrufe während der Broker nicht läuft erhalte ich folgenden Traceback:
                          Code:
                          Connecting to Sonos broker ...Traceback (most recent call last):
                            File "/usr/local/lib/python3.2/dist-packages/[URL="http://requests-2.5.1-py3.2.egg/requests/packages/urllib3/connectionpool.py"]requests-2.5.1-py3.2.egg/requests/packages/urllib3/connectionpool.py[/URL]", line 518, in urlopen
                              body=body, headers=headers)
                            File "/usr/local/lib/python3.2/dist-packages/[URL="http://requests-2.5.1-py3.2.egg/requests/packages/urllib3/connectionpool.py"]requests-2.5.1-py3.2.egg/requests/packages/urllib3/connectionpool.py[/URL]", line 330, in _make_request
                              conn.request(method, url, **httplib_request_kw)
                            File "/usr/lib/python3.2/http/client.py", line 970, in request
                              self._send_request(method, url, body, headers)
                            File "/usr/lib/python3.2/http/client.py", line 1008, in _send_request
                              self.endheaders(body)
                            File "/usr/lib/python3.2/http/client.py", line 966, in endheaders
                              self._send_output(message_body)
                            File "/usr/lib/python3.2/http/client.py", line 811, in _send_output
                              self.send(msg)
                            File "/usr/lib/python3.2/http/client.py", line 749, in send
                              self.connect()
                            File "/usr/local/lib/python3.2/dist-packages/[URL="http://requests-2.5.1-py3.2.egg/requests/packages/urllib3/connection.py"]requests-2.5.1-py3.2.egg/requests/packages/urllib3/connection.py[/URL]", line 155, in connect
                              conn = self._new_conn()
                            File "/usr/local/lib/python3.2/dist-packages/[URL="http://requests-2.5.1-py3.2.egg/requests/packages/urllib3/connection.py"]requests-2.5.1-py3.2.egg/requests/packages/urllib3/connection.py[/URL]", line 134, in _new_conn
                              (self.host, self.port), self.timeout, **extra_kw)
                            File "/usr/local/lib/python3.2/dist-packages/[URL="http://requests-2.5.1-py3.2.egg/requests/packages/urllib3/util/connection.py"]requests-2.5.1-py3.2.egg/requests/packages/urllib3/util/connection.py[/URL]", line 87, in create_connection
                              raise err
                            File "/usr/local/lib/python3.2/dist-packages/[URL="http://requests-2.5.1-py3.2.egg/requests/packages/urllib3/util/connection.py"]requests-2.5.1-py3.2.egg/requests/packages/urllib3/util/connection.py[/URL]", line 78, in create_connection
                              sock.connect(sa)
                          socket.error: [Errno 111] Connection refused
                          
                          During handling of the above exception, another exception occurred:
                          
                          Traceback (most recent call last):
                            File "/usr/local/lib/python3.2/dist-packages/[URL="http://requests-2.5.1-py3.2.egg/requests/adapters.py"]requests-2.5.1-py3.2.egg/requests/adapters.py[/URL]", line 370, in send
                              timeout=timeout
                            File "/usr/local/lib/python3.2/dist-packages/[URL="http://requests-2.5.1-py3.2.egg/requests/packages/urllib3/connectionpool.py"]requests-2.5.1-py3.2.egg/requests/packages/urllib3/connectionpool.py[/URL]", line 564, in urlopen
                              _pool=self, _stacktrace=stacktrace)
                            File "/usr/local/lib/python3.2/dist-packages/[URL="http://requests-2.5.1-py3.2.egg/requests/packages/urllib3/util/retry.py"]requests-2.5.1-py3.2.egg/requests/packages/urllib3/util/retry.py[/URL]", line 245, in increment
                              raise six.reraise(type(error), error, _stacktrace)
                            File "/usr/local/lib/python3.2/dist-packages/[URL="http://requests-2.5.1-py3.2.egg/requests/packages/urllib3/packages/six.py"]requests-2.5.1-py3.2.egg/requests/packages/urllib3/packages/six.py[/URL]", line 309, in reraise
                              raise value.with_traceback(tb)
                            File "/usr/local/lib/python3.2/dist-packages/[URL="http://requests-2.5.1-py3.2.egg/requests/packages/urllib3/connectionpool.py"]requests-2.5.1-py3.2.egg/requests/packages/urllib3/connectionpool.py[/URL]", line 518, in urlopen
                              body=body, headers=headers)
                            File "/usr/local/lib/python3.2/dist-packages/[URL="http://requests-2.5.1-py3.2.egg/requests/packages/urllib3/connectionpool.py"]requests-2.5.1-py3.2.egg/requests/packages/urllib3/connectionpool.py[/URL]", line 330, in _make_request
                              conn.request(method, url, **httplib_request_kw)
                            File "/usr/lib/python3.2/http/client.py", line 970, in request
                              self._send_request(method, url, body, headers)
                            File "/usr/lib/python3.2/http/client.py", line 1008, in _send_request
                              self.endheaders(body)
                            File "/usr/lib/python3.2/http/client.py", line 966, in endheaders
                              self._send_output(message_body)
                            File "/usr/lib/python3.2/http/client.py", line 811, in _send_output
                              self.send(msg)
                            File "/usr/lib/python3.2/http/client.py", line 749, in send
                              self.connect()
                            File "/usr/local/lib/python3.2/dist-packages/[URL="http://requests-2.5.1-py3.2.egg/requests/packages/urllib3/connection.py"]requests-2.5.1-py3.2.egg/requests/packages/urllib3/connection.py[/URL]", line 155, in connect
                              conn = self._new_conn()
                            File "/usr/local/lib/python3.2/dist-packages/[URL="http://requests-2.5.1-py3.2.egg/requests/packages/urllib3/connection.py"]requests-2.5.1-py3.2.egg/requests/packages/urllib3/connection.py[/URL]", line 134, in _new_conn
                              (self.host, self.port), self.timeout, **extra_kw)
                            File "/usr/local/lib/python3.2/dist-packages/[URL="http://requests-2.5.1-py3.2.egg/requests/packages/urllib3/util/connection.py"]requests-2.5.1-py3.2.egg/requests/packages/urllib3/util/connection.py[/URL]", line 87, in create_connection
                              raise err
                            File "/usr/local/lib/python3.2/dist-packages/[URL="http://requests-2.5.1-py3.2.egg/requests/packages/urllib3/util/connection.py"]requests-2.5.1-py3.2.egg/requests/packages/urllib3/util/connection.py[/URL]", line 78, in create_connection
                              sock.connect(sa)
                          requests.packages.urllib3.exceptions.ProtocolError: ('Connection aborted.', error(111, 'Connection refused'))
                          
                          During handling of the above exception, another exception occurred:
                          
                          Traceback (most recent call last):
                            File "/usr/local/bin/sonos_cmd", line 864, in send
                              headers=self.headers)
                            File "/usr/local/lib/python3.2/dist-packages/[URL="http://requests-2.5.1-py3.2.egg/requests/api.py"]requests-2.5.1-py3.2.egg/requests/api.py[/URL]", line 99, in post
                              return request('post', url, data=data, json=json, **kwargs)
                            File "/usr/local/lib/python3.2/dist-packages/[URL="http://requests-2.5.1-py3.2.egg/requests/api.py"]requests-2.5.1-py3.2.egg/requests/api.py[/URL]", line 49, in request
                              response = session.request(method=method, url=url, **kwargs)
                            File "/usr/local/lib/python3.2/dist-packages/[URL="http://requests-2.5.1-py3.2.egg/requests/sessions.py"]requests-2.5.1-py3.2.egg/requests/sessions.py[/URL]", line 461, in request
                              resp = self.send(prep, **send_kwargs)
                            File "/usr/local/lib/python3.2/dist-packages/[URL="http://requests-2.5.1-py3.2.egg/requests/sessions.py"]requests-2.5.1-py3.2.egg/requests/sessions.py[/URL]", line 573, in send
                              r = adapter.send(request, **kwargs)
                            File "/usr/local/lib/python3.2/dist-packages/[URL="http://requests-2.5.1-py3.2.egg/requests/adapters.py"]requests-2.5.1-py3.2.egg/requests/adapters.py[/URL]", line 415, in send
                              raise ConnectionError(err, request=request)
                          requests.exceptions.ConnectionError: ('Connection aborted.', error(111, 'Connection refused'))
                          
                          During handling of the above exception, another exception occurred:
                          
                          Traceback (most recent call last):
                            File "/usr/local/bin/sonos_cmd", line 1361, in <module>
                              broker_cmd = SonosBrokerCmd()
                            File "/usr/local/bin/sonos_cmd", line 67, in __init__
                              if not self.commands.subscribe(self.client_hostname, self.client_port):
                            File "/usr/local/bin/sonos_cmd", line 896, in subscribe
                              'port': port,
                            File "/usr/local/bin/sonos_cmd", line 873, in send
                              except ConnectionError:
                          NameError: global name 'ConnectionError' is not defined
                          Viele Grüße
                          Martin

                          There is no cloud. It's only someone else's computer.

                          Kommentar


                            Hallo Msinn ,

                            beim cmd client musst du noch ein 'update' Kommando absetzen. Damit sucht er nach neuen Lautsprechern. Danach zeigt 'list' oder 'speaker' auch alle Lautsprecher an.

                            Danke für den Report der Fehlermeldung, das fixe ich bei der nächsten Version.

                            Gruss,

                            Stefan
                            Sonos

                            Kommentar


                              ich habe noch vermutlich eine blöde Frage, stelle diese aber trotzdem.

                              Wie bekomme ich den broker als daemon auf der smarthome.py pi Version in den Autostart?
                              Gruß Hartwig

                              Kommentar


                                Hi Stefan,

                                ich habe das Sonos Plugin mit dem Broker jetzt am Laufen und bin begeistert.

                                Vielen Dank für das Plugin!

                                Ich habe nur bei einigen Musikstücken eine etwas derangierte Visu. In einigen Dateien meiner Musiksammlung sind Cover mit einer höheren Pixelzahl eingebettet und diese Cover werden 1:1 vom Sonos durchgereicht und in der Visu dargestellt, ohne zu berücksichtigen, welchen Platz die Cover in der Visu eigentlich einnehmen sollten. Ein Beispiel habe ich beigefügt.
                                Angehängte Dateien
                                Viele Grüße
                                Martin

                                There is no cloud. It's only someone else's computer.

                                Kommentar

                                Lädt...
                                X