SoCo 0.10 release notes
SoCo 0.10 is a new version of the SoCo library. This release adds new features and fixes several bugs.
SoCo (Sonos Controller) is a simple Python class that allows you to programmatically control Sonos speakers.
New Features
Improvements
Added a queue_size property to quickly return the size of the queue without reading any items (#217)
Add metadata to return structure of get_current_track_info (#220)
Add option to play_uri that allows for the item to be set and then optionally played (#219)
Add option to play_uri that allows playing with a URI and title instead of metadata (#221)
Get the item ID from the XML responses which enables adding tracks for music services such as Rhapsody which do not have all the detail in the item URI (#233)
Added label and short_label properties, to provide a consistent readable label for group members (#228)
Bugfixes
Fixed a bug where
get_ml_item()
would fail if a radio station was played (#226)Fixed a timeout-related regression in
soco.discover()
( #244)Discovery code fixed to account for closing of multicast sockets by certain devices (#202, #201)
Fixed a bug where sometimes zone groups would be created without a coordinator (#230)
Backwards Compatability
The metadata classes (ML*
) have all been renamed (generally to Didl*
),
and aligned more closely with the underlying XML. The Music Services data
structures (MS*
) have been moved to their own module, and metadata for
radio broadcasts is now returned properly (#243).
The URI
class has been removed. As an alternative the method
soco.SoCo.play_uri()
can be used to enqueue and play an URI. The class
soco.data_structures.DIDLObject
can be used if an object is required.
Work is still ongoing on the metadata classes, so further changes should be expected.