Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
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.
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.
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
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.
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.
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><ZoneGroups><ZoneGroup Coordinator="RINCON_000E58A4A2D001400" ID="RINCON_000E58A4A2D001400:1"><ZoneGroupMember UUID="RINCON_000E58A4A2D001400" Location="http://192.168.133.56:1400/xml/device_description.xml" ZoneName="AS43" Icon="x-rincon-roomicon:living" Configuration="1" SoftwareVersion="28.1-83040" MinCompatibleVersion="27.0-00000" LegacyCompatibleVersion="24.0-0000" BootSeq="49" WirelessMode="0" ChannelFreq="2437" BehindWifiExtender="0" WifiEnabled="1"/></ZoneGroup></ZoneGroups></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><ZoneGroups><ZoneGroup Coordinator="RINCON_000E58A4A2D001400" ID="RINCON_000E58A4A2D001400:1"><ZoneGroupMember UUID="RINCON_000E58A4A2D001400" Location="http://192.168.133.56:1400/xml/device_description.xml" ZoneName="AS43" Icon="x-rincon-roomicon:living" Configuration="1" SoftwareVersion="28.1-83040" MinCompatibleVersion="27.0-00000" LegacyCompatibleVersion="24.0-0000" BootSeq="49" WirelessMode="0" ChannelFreq="2437" BehindWifiExtender="0" WifiEnabled="1"/></ZoneGroup></ZoneGroups></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)
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.
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.
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....
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.
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.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Einen Kommentar schreiben: