Issue - Sonos with media_player.join and volume_set thru "master" device

Hi There,
Since sonos.join was deprecated in favor of media_player.join I’m not able to set correctly the volume of my Sonos group thru the master player. Which should be a base and simple function for managing a group of media players…

I need to set the volume on each device separately which is not efficient and misleading to a potential issue when I dynamically group my device based on my automations.

Below are the steps I used to reproduce the behavior

First, unjoin all devices, I’m going thru this step only in this test scenario to ensure that the master is correctly defined and the group is consistent :

service: media_player.unjoin
data: {}
target:
  entity_id:
    - media_player.mysonos_master
    - media_player.mysonos_device1
    - media_player.mysonos_device2
    - media_player.mysonos_device3

Then join members, where the master should be specified in target > entity_id as stated in the instruction in Developer Tools > Services > Media player: Join

All available parameters

This service accepts a target, for example: entity_id: light.bed_light

Parameter Description Example
group_members The players which will be synced with the target player. - media_player.multiroom_player2 - media_player.multiroom_player3
service: media_player.join
target:
  entity_id: media_player.mysonos_master
data:
  group_members:
    - media_player.mysonos_device1
    - media_player.mysonos_device2
    - media_player.mysonos_device3

Now, I try to set the volume thru the master with volume_set (at this step all devices volume_level attribute is 0.03) :

service: media_player.volume_set
data:
  volume_level: 0.04
target:
  entity_id: media_player.mysonos_master

Finally, Developer>States, by filtering my Sonos devices and get the volume_level attribute:

media_player.mysonos_master > volume_level: 0.04
media_player.mysonos_device1 > volume_level: 0.03
media_player.mysonos_device2 > volume_level: 0.03
media_player.mysonos_device3 > volume_level: 0.03

Never had this issue before, when using the deprecated sonos.join action :frowning:

Any help or workaround to set correctly the volume thru the master?

You can use a helper to solve this problem. Create a media player group helper and add your sonos devices. Then in the volume_set service, use the media player group name as the entity id instead of the master speaker. In my setup I created four groups; sonos_dnstairs, sonos_upstairs, sonos_outdoor and sonos_all. My sonos_all group contains the three other sonos speaker groups and each group contains 2-3 sonos devices.