Ankündigung

Einklappen
Keine Ankündigung bisher.

Sonos Anbindung

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

  • Msinn
    antwortet
    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

    Einen Kommentar schreiben:


  • hartwigm
    antwortet
    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?

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    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

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    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

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    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

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    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.

    Einen Kommentar schreiben:


  • hartwigm
    antwortet
    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)

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    @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

    Einen Kommentar schreiben:


  • hartwigm
    antwortet
    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

    Einen Kommentar schreiben:


  • hoggle
    antwortet
    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

    Einen Kommentar schreiben:


  • buffi
    antwortet
    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

    Einen Kommentar schreiben:


  • hoggle
    antwortet
    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.

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    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.

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    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

    Einen Kommentar schreiben:


  • hoggle
    antwortet
    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.

    Einen Kommentar schreiben:

Lädt...
X