Page 1 of 1

Sonos Announcements- automatically playing songs when paused

PostPosted: Tue Jul 30, 2019 6:31 am
by mundmc
Hi all,
Before i kludge a workaround...

Sonos works well for announcements, no problem there.

The problem is: if a zone player is already paused, then if an announcement is made, the zone player automatically plays.

Wife and mother-in-law: displeased “Baby Shark” comes on when the washing machine announcement plays.

Re: Sonos Announcements- automatically playing songs when pa

PostPosted: Tue Jul 30, 2019 6:59 am
by rapamatic
I used to see issues like this when the plugin would lose sync with the status of the speakers - basically it would think they were still playing, even when they were paused, and thus after the announcement, when it sets everything back the way it was before, it would set them to playing. I have announcements going all day long and haven't seen this issue myself, so I don't think its necessarily a bug in the code - maybe the plugin is having trouble tracking your sonos states? Intermittent connectivity issues?

I'm also just having the announcements played from the one main zone controller for the zone that contains most of my 1st floor speakers - are you selecting a number of sonos speakers to play the announcement on - maybe there is some issue there?


Sent from my iPad using Tapatalk

Re: Sonos Announcements- automatically playing songs when pa

PostPosted: Tue Jul 30, 2019 12:14 pm
by mundmc
Thanks for your thoughts, Rapamatic. I really am not sure what’s happening. I have the Sonos plugin issue the speak command to the the Zone Player in my living room, which dictates what is played on the first floor of my house.

I tried a script to check the saved state of the ZP (stored in an Indigo variable), but it did not work, presumably from timing issues.

So- if you have music paused and Sonos does an announcement, the music does not automatically start playing afterwards???

FWIW- using Pandora, after an announcement it skips to the next song (Spotify keeps playing).

Re: Sonos Announcements- automatically playing songs when pa

PostPosted: Tue Jul 30, 2019 12:46 pm
by rapamatic
mundmc wrote:
So- if you have music paused and Sonos does an announcement, the music does not automatically start playing afterwards???

FWIW- using Pandora, after an announcement it skips to the next song (Spotify keeps playing).


That’s right. I’d say 95% of the time my system is paused when I play announcements and that has worked without issue for months.

I am mostly using Spotify or Apple Music, so maybe it’s something pandora-specific?


Sent from my iPhone using Tapatalk

Re: Sonos Announcements- automatically playing songs when pa

PostPosted: Wed Jul 31, 2019 10:26 am
by mundmc
Good theory!
The behaviors are as follows:
Spotify pause- announcement- resume playing
Pandora pause- announcement- next track plays

Now I will check if the behavior differs based on Spotify or Pandora as the source

Re: Sonos Announcements- automatically playing songs when pa

PostPosted: Mon Aug 05, 2019 8:39 pm
by aldera
As an additional data point, I use Pandora and when it is paused and I make an announcement, Pandora begins playing again. I don't use Spotify. Also, I use the free version of Pandora. I have no idea if that would make any difference.

Ralph

Re: Sonos Announcements- automatically playing songs when pa

PostPosted: Tue Aug 06, 2019 3:13 pm
by mundmc
aldera wrote:
As an additional data point, I use Pandora and when it is paused and I make an announcement, Pandora begins playing again. I don't use Spotify. Also, I use the free version of Pandora. I have no idea if that would make any difference.

Ralph


Very helpful and likely confirmatory data point!

Re: Sonos Announcements- automatically playing songs when pa

PostPosted: Thu Aug 22, 2019 11:38 am
by elov
I have this issue sometimes as well.

I looked in Sonos.py for the restore state logic after the announcement.
I guess that the two actionDirect functions is necessary, but one might try adding a small self.plugin.sleep(.5) between or just remove the first Play action in the elif PAUSED section.

Code: Select all
                  # restore play state
                  self.plugin.debugLog("%s: Restore Play State: %s" % (state[0], state[5]))
                  if (state[5] == "PLAYING"):
                     self.actionDirect (PA(dev.id), "Play")
                  elif (state[5] == "PAUSED"):
                     self.actionDirect (PA(dev.id), "Play")
                     self.actionDirect (PA(dev.id), "Pause")
                  #else:
                  #   self.actionDirect (PA(dev.id), "Stop")

Re: Sonos Announcements- automatically playing songs when pa

PostPosted: Thu Aug 22, 2019 11:47 am
by mundmc
elov wrote:
I have this issue sometimes as well.

I looked in Sonos.py for the restore state logic after the announcement.
I guess that the two actionDirect functions is necessary, but one might try adding a small self.plugin.sleep(.5) between or just remove the first Play action in the elif PAUSED section.

Code: Select all
                  # restore play state
                  self.plugin.debugLog("%s: Restore Play State: %s" % (state[0], state[5]))
                  if (state[5] == "PLAYING"):
                     self.actionDirect (PA(dev.id), "Play")
                  elif (state[5] == "PAUSED"):
                     self.actionDirect (PA(dev.id), "Play")
                     self.actionDirect (PA(dev.id), "Pause")
                  #else:
                  #   self.actionDirect (PA(dev.id), "Stop")


Thank you! I will give it a go!

Re: Sonos Announcements- automatically playing songs when pa

PostPosted: Thu Aug 22, 2019 11:53 am
by elov
What happens is that after the state restore the unit is in STOPPED state.
While stopped it cannot be paused, which explains the Play and immediate Pause code.
So adding a small self.plugin.sleep worked in my case.
Removing the Play action caused an UPNP Error: No Such Object.

Code: Select all
 Sonos Debug                     RINCON_949F3E72D75A01400: Restore Play State: PAUSED
   Sonos Debug                     Sonos Action: Play
   Sonos Debug                     zoneIP: 10.2.3.93, soapRoot: /MediaRenderer, soapBranch: /AVTransport, soapAction: Play
   Sonos                           ZonePlayer: Sonos Badrum, Play
Added the 0.5 sec delay here!
   Sonos Debug                     Sonos Action: Pause
   Sonos Debug                     zoneIP: 10.2.3.93, soapRoot: /MediaRenderer, soapBranch: /AVTransport, soapAction: Pause
   Sonos                           ZonePlayer: Sonos Badrum, Pause


Code: Select all
   Sonos Debug                     RINCON_949F3E72D75A01400: Restore Play State: PAUSED
   Sonos Debug                     Sonos Action: Pause
   Sonos Debug                     zoneIP: 10.2.3.93, soapRoot: /MediaRenderer, soapBranch: /AVTransport, soapAction: Pause
   Sonos Error                     UPNP Error: No Such Object
   Sonos Error                     Offending Command -> zoneIP: 10.2.3.93, soapRoot: /MediaRenderer, soapBranch: /AVTransport, soapAction: Pause
   Sonos Debug                     Error Response: <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><s:Fault><faultcode>s:Client</faultcode><faultstring>UPnPError</faultstring><detail><UPnPError xmlns="urn:schemas-upnp-org:control-1-0"><errorCode>701</errorCode></UPnPError></detail></s:Fault></s:Body></s:Envelope>
   Sonos                           ZonePlayer: Sonos Badrum, Pause