Sonos: Release Notes

v1.0.13 – 11/??/2018
  • Library Updates:
    • SoCo v0.17 with customizations
    • Twisted v18.9.0
      • attr v18.1.0
      • pyOpenSSL 18.0.0
      • zope.interfaces v4.6.0
    • gTTS v2.0.0
      • gTTS-token v1.1.1
    • mutagen 1.41.1
    • requests 2.20.1
    • urllib3 1.24.1
v1.0.12 – 03/31/2018
  • Bug Fix: Group Mute on ZonePlayer that is not coordinator of group.
  • Bug Fix: Syntactical errors on SiriusXM channel lineup.
  • Will error out ZonePlayer if not contactable on plugin startup.
  • Added plugin configuration interval options for checking ZonePlayer health and subscriptions.
  • Added state ZP_RELATIVE that should represent time into current track or program for supported sources.
v1.0.11 – 03/25/2018
  • Library Updates:
    • requests v2.18.4
    • pyOpenSSL v17.5.0
v1.0.10 – 03/11/2018
  • Re-wrote SiriusXM support (again) with Sonos Music API.  Note that you now need to enter your SiriusXM ID and Password in the plugin configuration dialog.
  • Fixed Pandora station calls.
  • Fixed Playbar Home Theatre events.
  • Update SoCo to v0.14 with customizations.
v1.0.9 – 11/26/2017
  • Unicode bug fixes.
v1.0.8 – 11/22/2017
  • Implemented event subscription checking (5 second interval).
v1.0.7 – 11/21/2017
  • Re-wrote SiriusXM support.
  • Library updates:
    • SoCo v0.13 with customizations.  Added back Event IP address in plugin configuration.  Must open configuration dialog and enter IP address of Indigo server.
    • Twisted 17.9.0
v1.0.6 – 08/06/2017
  • Added six.moves library for gTTS
v1.0.5 – 07/28/2017
  • Added support for local Apple voices for group announcements.
  • Library updates:
    • Requests v2.18.2
    • Twisted 17.5.0
      • zope.interfaces 4.4.2
      • service_identity 17.0.0
      • pyOpenSSL 17.2.0
    • gTTS 1.2.0
    • Mutagen 1.38
v1.0.4- 06/17/2017
  • Added support for Amazon Polly.  To use this, you must create an AWS account (http://aws.amazon.com) and create a key and secret for Polly.
  • Added Channel Up/Down for SiriusXM.
v1.0.3 – 04/16/2017
  • Added auto discovery for Reference ZonePlayer.
  • Internalized import of ElementTree library that is packaged with Python 2.7.
  • Error handling around code that determines life-state of ZonePlayers.
v1.0.2 – 12/28/2016
  • Support for Single Song Repeat (REPEAT_ONE) in Queue.  Device State Q_RepeatOne reflects status.
  • Added action Queue Repeat Song to support new state.
  • Added action Queue Repeat Toggle that will cycle through no repeat, repeat full queue, repeat song.
  • Added action Queue Shuffle Toggle.
  • Smartened up group announcement with Group Coordinator Only such that it will find the master ZonePlayer if the selected device is a slave.
  • Added actions to Thumbs Up and Thumbs Down Pandora tracks.
v1.0.1 – 12/23/2016
  • Re-release of v1.0.0 w/o test code.
v1.0.0 – 12/23/2016
  • Requires Indigo v7+.
  • Group Announcements:
    • Updated pyvona library to v1.2.1.  Internalized IVONA announcements code.
    • Group announcements volume now accepts variable substitutions.  Format is: %%v:[id]%%
    • Update mutagen library to v1.36.
  • Updated twisted library to v16.6.0.
  • Updated zope.interfaces library to v4.3.3.
  • Bug Fix:  Support Spotify Connect direct control.
v0.9.16 – 11/23/2016
  • Final update for Indigo v6.
  • Bug fix: checkEvents log entry for non-responsive ZonePlayers.
v0.9.15 – 11/12/2016
  • Updated SoCo libraries to v0.12 with customizations.
v0.9.14 – 11/11/2016
  • Bug Fix: Apple Music universal search tracks.
v0.9.12 – 11/07/2016
  • Additional bug fixes to handle network errors.
v0.9.11 – 11/05/2016
  • Bug fix: Resubscribe to ZonePlayer on network errors.
v0.9.10 – 08/17/2016
  • Added support for secondary Pandora account.  Note: All users must add Nickname to plugin configuration for Pandora.  Pandora actions should not be affected.
  • Bug fix: Album Art jpg now updates when TV is selected as source on Playbar.
  • ZP_TRACK will no longer populate when streaming Sonos Radio.
  • Bug fix: ZP_STATION will clear if there is no corresponding event update.
  • Updated Google TTS library to v1.1.6 (updated API reference avoids 403 errors for now).
  • Updated requests library to v2.11.0.
  • Updated pyvona library to v1.1.
v0.9.9 – 08/16/2016
  • Bug fix: Typo in State Updates Debug option.
  • Bug fix: Typo in Album Art status updates.
  • Added logic to re-scan group topology in the event a transport event comes in prior to a group event.
  • Added ability to restore PAUSE state after group announcement.
v0.9.8.1 – 04/26/2016
  • Packaged Zope python library with plugin.
v0.9.8 – 04/24/2016
  • Refactored code – removed all Coherence references, cleaned up start/stop logic.
  • SoCo Event Processor improved with callbacks instead of polling.
  • UPNP listener improved to consume less CPU and operated in a shared state.
  • Conformed to python logging standards.
v0.9.7 – 03/23/2016
  • Added logic to resubscribe to ZonePlayers when subscriptions drop, typically due to networking issues.  A UPNP listener has now been reactivated on port 1900.  There was no other way to reliably detect outages.
v0.9.6 – 03/17/2016
  • Unicode bug fix for Sonos Favorites
v0.9.5 – 03/16/2016
  • Bug fix: Added additional Sonos Favorites to data structures.
v0.9.4 – 03/06/2016
  • Upgraded Google TTS library to v1.1.3 (hoping to avoid 403 errors).
  • Re-organization of actions menu.
  • Adjustments to Group Announcements to avoid errors on restoration of ZonePlayers.
v0.9.3 – 02/21/2016
  • Added parsing of meta-data (ZP_TRACK, ZP_ARTIST) for SiriusXM.
  • Added actions and states for bass/treble (ZP_BASS, ZP_TREBLE).  SoCo event processor only.
  • Added Microsoft Translate as an option for Group Announcements.  Must register for client id and key on Microsoft website(https://www.microsoft.com/en-us/translator/getstarted.aspx).
v0.9.2 – 02/20/2016
  • Update requests library to v2.9.1.
  • Bug fix for grouping (GROUP_coordinator state was not being set correctly).
  • Bug fix for transport states going stale.  Added Container Favorites to SoCo data structures.
v0.9.1 – 02/13/2016
  • Adjusted plugin configuration settings logic to allow proper startup.  Will default to SoCo Event Processor unless changed.
v0.9.0 – 02/12/2016 [Hot off the Press]
  • New event-processor (courtesy of the SoCo project) with some tweaks.  At some point in the future, the existing event-processor (Coherence) will be eliminated.  When installing this version, make sure to edit the plugin configuration – even if no changes are desired.  The menu options have changed a bit.
  • Bug fix to eliminate python warning InsecurePlatformWarning when using IVONA group announcements.
v0.8.37 – 01/18/2016
  • Bug fix for Line-In Group Announcements.
v0.8.36 – 01/17/2016
  • Added device substitution in announcements text.  Format is %%d:[device id]:stated%%.
  • Reworked Sonos Favorites so all actions that call on Sonos Favorites will need to be re-done.  Should work for Pandora, Music Library, RadioTime, Amazon Music, Amazon Music Library, Apple Music, SiriusXM, Spotify, and Sonos Playlists.
    • Added Play Mode as an option.  This is only applicable to sources that utilize the queue.
    • For any Favorite that does not work, use the Dump URI Action (last one in the list).  It will output data to the Event Log that I can use to add support.
v0.8.35 – 01/16/2016
  • More bug fixes for launching Spotify Playlist from Favorites.
  • Added utility action to dump to the log current source and metadata for a ZonePlayer.
v0.8.34 – 01/13/2016
  • Bug fix in IVONA error handling.
  • Bug fix launching Spotify Playlist from Favorites.
  • Added Apple Music to Sonos Favorites. [untested]
  • New option in Group Announcements for existing groups.  Will use existing group coordinator for announcements.
v0.8.33 – 01/10/2016
  • Added parameters for IVONA Announcements: sentence break, speech rate.
  • Adjusted MP3 mutagen call to avoid header error.
  • Removed configuration item Pandora ID.
  • Auto refresh for Sonos Playlists, Favorites, and RadioTime Favorites.  No need to restart plugin.
  • Added action to Save Queue to Sonos Playlist.
  • Added action to Remove Sonos Playlist.
  • Additional fixes to Group Announcement actions.
v0.8.32 – 01/02/2016
  • Added Pandora, RadioTime to Sonos Favorites.
  • Updated MP3 mutagen library to v1.31.
  • Refactored code that sends commands to ZonePlayers utilizing requests library.
  • Adjusted plugin restart code when configuration changes.
  • Adjusted Group Announcement logic to deal with slow response from ZonePlayers.
  • New Actions: Group Mute, Group Volume.
v0.8.23 – 11/14/2015
  • Added action to clear ZonePlayer queue.
  • Enabled Sonos Favorites (works with SiriusXM channels, Spotify playlists).
v0.8.22 – 11/10/2015
  • Big fix in group announcements (tts_delay).
v0.8.21 – 11/08/2015
  • Unicode support for IVONA announcements.
  • IVONA announcement length bug fix.
v0.8.20 – 11/08/2015
  • Fixes for SiriusXM channel selection changes.
  • Added plugin configuration entry to specify network interface for UPNP updates.
  • Support for Sonos ZonePlayer beta code.
  • Added new TTS announcement option – Amazon IVONA.  Must register for access key on the IVONA website (http://www.ivona.com).
v0.8.15 – 08/14/2015
  • Disabled Sonos Favorites until code is complete.
v0.8.14 – 08/09/2015
  • Google TTS fix.
v0.8.13 – 04/17/2015
  • Bug fix for unicode support in group names.
v0.8.12 – 04/02/2015
  • Cleaned up Google TTS in order to support Python 2.5 (OS X 10.9 and below).
v0.8.11 – 04/01/2015
  • Added library to break up calls to Google TTS for announcements.  This will allow for announcements over 100 characters.
  • Streamlined some of the announcement code to make less calls to the ZonePlayers.
  • Started implementing logic to play from Sonos Favorites [INCOMPLETE].
v0.8.10 – 03/24/2015
  • Re-factored Pandora code using “un-official API”.
v0.8.9 – 02/20/2015
  • Bug fix in “Add To Group” action.
  • Re-factored announcements code.
v0.8.8 – 01/15/2015
  • Bug fix in announcement actions.  Caution: all actions groups that use announcements must be reconfigured.  Check actions link for instructions on using in external scripts.
  • Added album art if source = TV on a Playbar.  Default file can be replaced in plugin directory (sonos_tv.jpg).
  • Bug fix in announcements that caused partial repetition of speech.  Fixed by turning off Q_Repeat before announcement and restoring after announcement.
  • Music queue track will now resume at time left off after announcement.
  • To Fix: Plugin does not gracefully exit and will restart in a sloppy manner.
v0.8.7 – 12/26/2014
  • Added manual entry for HTTP Streaming IP address.  Please re-save plugin configuration.
v0.8.6 – 12/25/2014
  • Bug fix in Queue Repeat and Queue Shuffle actions.
  • Added alternate method to retrieve system IP address.
v0.8.5 – 12/24/2014
  • Documented plugin configuration dialog box.
  • Added error message in the event the HTTP Steamer is unable to start.
  • Added error handling to deal with ZonePlayers that are non-responsive.
v0.8.4 – 12/23/2014
  • Bug fix in setStandalones action.
  • Forces IP address for HTTP server to avoid DNS issues.
  • Fixed unicode and % encoding issues for MP3 Announcement action.
v0.8.3 – 12/23/2014
  • Added discreet actions to turn mute on and off.
  • Removed need to share plugin directory for Group Announcements.  The plugin now spawns a small HTTP server on startup.  The default port for the server [HTTP Streaming Port] is 8888.  This can be overridden in the plugin configuration.  Main plugin configuration options have changed; please configure plugin immediately after installation.
  • Added ability to stream static MP3 files in Group Announcement action.  Action options have changed; please re-configure all Group Announcement actions immediately after installation.  Fill in the [Sound File Path] in the plugin configuration and the plugin will allow you to select any file in the directory with an mp3 extension.
v0.8.2 – 11/30/2014
  • Internal bug fixes, code cleanup
v0.8.1 – 11/23/2014
  • TCP timeout bug fix
  • Plugin restarts on configuration changes
v0.8.0 – 11/20/2014 [Hot off the Press]
  • Replaced ZeroMQ with Python sockets for ZonePlayer updates
  • No more Command Line Tools required!
v0.7.1 – 10/21/2014
  • Bug fixes to properly popular cover art state for Sonos playlists and tracks.
v0.7.0 – 10/20/2014
  • Yosemite & OS X Server 4.0 Compatibility
v0.6.22 – 10/04/2014 [Untested Release]
  • Bug fixes in the SonosEvents process introduced in v0.6.21.
v0.6.21 – 10/01/2014 [Untested Release]
  • Added device configuration to select ZonePlayer type.
  • Partial support for Sonos PLAYBAR.
  • Added action to select TV as source.
  • Added alternate MP3 path for Group Announcements.
  • Allows for special characters in Sonos configured ZoneName.
v0.6.20 – 08/18/2014
  • Added option in Group Announcement to stream TTS directly from Internet.
  • Changed SOAPSend retry timeout to 0.5 seconds.
v0.6.19 – 08/02/2014
  • Unicode bug fixes when returning state in Group Announcement.
v0.6.18 – 07/20/2014
  • Added language selection to Group Announcement.  Please re-save all actions that use the MP3 Group Announcement.
  • Added additional sleep logic to SOAPSend function.  Changing Internet radio stations can take several seconds.
v0.6.17 – 07/13/2014
  • Group Announcement bug fixes.  No longer adding mp3 to queue, but playing directly from share.
  • Ignores ZonePlayers that are set to “off” in Indigo.
v0.6.16 – 01/20/2014
  • Added 5 minute option to sleep timer.
  • Added new Group Announcement option that creates MP3 file for playback.  This eliminates the need for a hard-wired connection from the Indigo server to a ZonePlayer.  There is a new plugin configuration item that requires input of an SMB share to access the MP3 file that is created for each announcement.
    • For the Group Announcement, my SMB Share entry looks like this: vulture/Perceptive Automation/Indigo 6
      My server name is “vulture” and I created a file share called “Perceptive Automation”. Guest access is enabled for the share.
v0.6.15 – 01/11/2014
  • Added retry loop for SOAP messages (5 retries max).
  • Bug fixes for capturing initial state and replicating states to slave ZonePlayers.
  • Bug fixes for Group Announcement state restoration.
v0.6.14 – 12/31/2013
  • Group Announcements
    • Added 0.5 second delay after group announcements are made to deal with cutoff issue.
    • Change ZP_CurrentURI for music library back to x-rincon-stream:UID#0 (affected group announcements).
    • Bug fixes to prevent groups from being broken apart after announcements.
    • Properly restoring track number after announcement.  Note this was not working in plugin v0.5.x.
    • Re-wrapped busy state around announcement to pause any event processing.
  • No longer replicate ZP_CurrentURI to slave ZonePlayers.
  • Bug fixes in cover art processing.
  • Added additional debugging parameter to split display of messages published by SonosEvents.py.
v0.6.13 – 12/30/2013
  • Bug fixes for Group Announcement state restoration.
v0.6.12 – 12/29/2013
  • Added plugin configuration option to change default Publish/Subscribe event port.
v0.6.11 – 12/28/2013
  • Built-in support for OS X 10.5 (Leopard).  Sonos-ZeroMQ will install appropriate libraries and the plugin will soft link the correct zmq libraries.
  • Sonos.py will more accurately kill any SonosEvents.py processes running.
v0.6.10 – 12/27/2013
  • Migrated Line-In discovery from polling to events.  Line-In Name will update dynamically if changed in the Sonos application.
  • More redirection of SonosEvents.py debug events to main Indigo log.
v0.6.9 – 12/26/2013
  • Added SonosEvents.py logging to main Indigo log.
  • Bug fix in SonosEvents.py for GroupCoordinatorIsLocal state.
  • Added logic to replicate GroupCoordinator states to slave ZonePlayers.  Cover art is also processed on startup and subsequent events.
  • Added additional ZoneGroup states (ZoneGroupID, ZoneGroupName, ZonePlayerUUIDsInGroup).
v0.6.8 – 12/24/2013
  • Bug fixes in SonosEvents.py to deal with unicode in xml.
v0.6.7 – 12/22/2013
  • Bug fixes in SonosEvents.py to deal with empty meta data.
v0.6.6 – 12/15/2013
  • Bug fixes in SonosEvents.py to handle more than 6 ZonePlayers.
  • Eliminated responding to duplicate subscriptions.  May add this back in the future if there are reliability issues.
v0.6.5 – 12/15/2013
  • Bug fixes for next track events
  • Added Channel Up, Channel Down actions for RadioTime favorites and Pandora.  The action will move up and down each list alphabetically.
v0.6.4 – 12/15/2013
  • Updated ZeroMQ installation script
  • Updated SonosEvents.py to handle some unicode issues and enabled terminal output for debugging.
v0.6.3 – 12/08/2013
  • Removed polling options from plugin configuration menu.  Please re-save plugin configuration.
  • Added action to set Sleep Timer.
v0.6.2 – 12/07/2013
  • Corrected the ZeroMQ library path issues.  It is now required to run an installation package that places libraries in /usr/local.
    • Unzip Sonos-ZeroMQ
    • From a terminal, type the following in the directory that the file was unzipped to: ./install_zmq.sh
    • You will have to type in the superuser/root password for the files to be copied.
  • Command Line Tools is also required.  Links above for OS X.
  • Removed ZP_ONNOW, ZP_PERCENT, ZP_TYPE
v0.6.1 – 12/01/2013
  • This is a slightly more comprehensive experimental release with better eventing using the coherence toolkit.  Just about all of the polling is gone at this point.  When complete, this should result in a lighter plugin.  Please report any issues – there has been a ton of recoding.
  • Removed ZP_CLASS, ZP_POSITION
v0.6.0 – 11/10/2013
  • This is an in-progress experimental release that spawns a separate process to collect events from ZonePlayers. Currently the only user benefit is the addition of next artist/track/album for Pandora and the music library.
v0.5.11 – 08/03/2013
  • Prepended actions with “Sonos:” for easier reading in action groups
v.0.5.10 – 07/28/2013
  • Fixed RadioTime Favorite Station action.  Sonos is getting picky with their SOAP calls.
  • Added Plugin Update Checker Module developed by travisc.  Thank you Travis!
v0.5.9 – 07/25/2013
  • Updated SiriusXM module to account for Sonos API changes
v0.5.8 – 05/26/2013
  • Bug fixes to parseMediaInfo function
  • Changed variable in announcement to use Indigo convention: %%v:variable%%.  Variable must be the Indigo ID, not name of the variable.
v0.5.7 – 03/16/2013
  • Corrected logic for repeat and shuffle buttons
  • Added ability to have a variable addressed in an announcement.  Precede the variable name by a % in the text configuration box for the Group Announcement.
v0.5.6 – 02/09/2013
  • Changed path to album art URL to: “/Library/Application Support/Perceptive/Automation/images/Sonos/”
  • Adjusted Group Announcement action to suspend ZonePlayer updates during execution.  Added 0.5 second pause to allow all ZonePlayer settings to take before speaking announcement.
  • Added “No Selection” to Group Announcement action to allow removal of ZonePlayers.
v0.5.5 – 01/13/2013
  • Further bug fixes to group add/remove actions
v0.5.4 – 01/06/2013
  • Added additional debug level to print XML commands and responses from Sonos ZonePlayers.
  • Bug fixes to add/remove multiple players from Groups
  • Bug fixes for Group Announcement
v0.5.3 – 11/25/2012
  • Added two actions to add and remove multiple players from Groups (Add Players to Zone, Set Standalones)
v0.5.1 – 08/20/2012
  • Support for special characters in SiriusXM channel names
  • Corrected SiriusXM album art logic
v0.5.0 – 08/10/2012
  • Added action to play SiriusXM Channel through Sonos ZonePlayer.
v0.4.1 – 07/14/2012
  • Displays IP address of ZonePlayer in Indigo Address field.
  • Writes JPG album art file to /Library/Application Support/Perceptive Automation/IndigoWebServer/images/Sonos/[ZonePlayer Name]_art.jpg
v0.4.0 – 06/02/2012
  • Added action to play Pandora Station through Sonos ZonePlayer. Requires a public Pandora playlist and additional configuration in the plugin configuration dialog.
v0.3.9 – 05/27/2012
  • Augmented actions to respect grouping
  • Created an action to speak an announcement from the Indigo Server through a connected Line-In on a ZonePlayer to up to 12 ZonePlayers. Upon completion of the announcement, each ZonePlayer state is returned to what it was. Minor issue in that the position of a track is not restorable, nor is something like Pandora.
v0.3.7 – 05/14/2012
  • Added code to avoid having to re-create ZonePlayer devices on plugin updates
  • Added two state variables to track group topology (GROUP_Coordinator, GROUP_Name)
  • Added Zone Group actions: Add ZonePlayer to Group, Set ZonePlayer to Standalone
  • Added Next Track states (ZP_NALBUM, ZP_NART, ZP_NARTIST, ZP_NTRACK) – currently only populating for Internet Radio when available
v0.3.5 – 05/12/2012
  • Migrated RadioTime actions to direct communications. The plugin reads favorite radio stations from the reference ZonePlayer to construct available choices.
  • Added device action: Toggle Play
  • Added devices actions to set queue modes: Repeat, Shuffle, and Crossfade
  • Cleaned all SonosPy code out of plugin – there is now no reliance on SonosPy.
v0.3.3 – 05/11/2012
  • There is a new plugin configuration item that asks for the Reference ZonePlayer IP. This can be the ip address of any active ZonePlayer. This is required to query for playlists and radio stations.
  • Added/Fixed Sonos Playlist action. The action attempts to mimic the four play modes in the Sonos Controller: Play Now, Play Next, Add To Queue, and Replace Queue.
v0.3.1 – 05/06/2012
  • Migrated most actions to direct ZonePlayer communications (PLAY, PAUSE, STOP, PREV, NEXT, MUTE, VOLUME). Separated PLAY and PAUSE in to two distinct actions.
  • Plugin now requires IP addresses for each ZonePlayer to be entered in configuration dialog.