Sonos Group All

I’ve recently found that my “Say to the whole house” rule was being finicky and sometimes not actually saying anything. It turns out that the Sonos system is grouping slighly slower these days, not sure what changed but it takes a second or two longer than it used to to group the whole house through OH2 using:

	SonosMaster_Add.sendCommand("RINCON_B8E937DD8A2801400")	// kitchen
	SonosMaster_Add.sendCommand("RINCON_5CAAFD2C5D6401400")	// master bath
	SonosMaster_Add.sendCommand("RINCON_5CAAFD2A673E01400")	// bellas
	SonosMaster_Add.sendCommand("RINCON_5CAAFD2A66A601400")	// gabes
	SonosMaster_Add.sendCommand("RINCON_5CAAFD4627D401400")	// kidsbath
	SonosMaster_Add.sendCommand("RINCON_5CAAFD159A2A01400")	// theater

It seems like this should be a common problem and was wondering if there was a faster way to do this in the binding with a GroupAll channel.

I have another rule that monitors the grouping of the sonoses so when I run the above command it executes everytime the groupIDs change. Would it be better to send a GroupAll command to the binding, have it do the entire grouping at once, and then send out the updates to all the Group related channels?

Or is there just a better way to do grouping?

The add channel could accept a list of channels rather than only one. It would make your rule simpler but I have no idea if it will really make a huge difference in global duration.

A potential addall channel is not obvious to implement, it should consider pairs of Sonos in particular.

Does the publicaddress channel work differently? I tracked my system today and it took 22 seconds to group all 7 Sonoses doing them one at a time. If we could have a publicaddress channel that would work with say, that would be great

I add a 30 second delay after grouping my 5 Sonoses, which works, but obviously this makes some functions (e.g. door bell) impossible with Sonos. I’m considering going back to the node/http solution that I used before. But it is so much easier with the binding, so I’m hoping someone will look into this… :slight_smile:

Basically that is where I am at, I have an extremely complex set of rules that uses a state machine to perform a Say to the whole house which works but still takes too long to be useful. I’m thinking about giving up on the grouping and just having my announcements go to each speaker separately.
The effect is a little weird but at least it’s quicker
Also to restore the groups after the Say is a lot of code that should be part of the restoreAll channel.