Sonos Cancel Delayed actions

I've got this currently which reset the volume of the sonos back down to 15% when the sonos is stopped or paused however it triggers in scenarios when i've pressed stop then play another song. How is it best to avoid this happening?

Select Trigger Events (ANY will trigger)

Bedroom Sonos stopped Bedroom Sonos paused

Actions

Cancel Delayed Actions
Delay 0:15:00
Set Volume on Bedroom Sonos to 15

Rule actions run only when the trigger events fire (or you run the rule actions from another rule or do so manually). So, your delayed setting of the volume will not be run until the Sonos reports paused again, which doesn't sound like what you want.

One solution is to use a "changed" trigger (this is important for the way I wrote the actions below!), then write the actions as something like:

IF (Bedroom Sonos is paused OR Bedroom Sonos is stopped) THEN
  Delay 0:15:00
  Set Volume on Bedroom Sonos to 15
ELSE
  Cancel Delayed Actions
END-IF

(You might need a slightly different conditional, depending on what your device actually reports--I've never paid attention to what mine says here, so this is a guess based on the capabilities and your description.)

1 Like

ah brill thanks for this i'll update the rule and see how it gets on. I currently have 3 rules for 3 different sonos speakers. Would there be a way to make one rule for all of them but treat them individual still or is it best to keep them individual rules for each one?

I would keep the rules separate for each speaker. It would be difficult to determine in your actions section which device was the trigger (and you can't set a variable to a device itself and perform actions on the variable--which would be the cleanest way to do it), so I don't think there's anything to gain.

Perfect i'll keep them separate! I've just done a quick test and it seems to be working well. Will keep one of the sonos on this rule for a day or so then convert the rest to it. Thanks again!