HowTo: Control Group Volume on Google Home / Nest Speakers (SONOS patent lawsuit)

While still deciding whether I will throw out all Google speakers after Google decided to just delete features instead of paying royalties to SONOS, I found a way to re-enable Volume control commands via voice. (Yeah, Paulus I know, local control first…)

TL:DR:

  • with a recent change users aren’t able to control speaker volume of speaker groups (slider or voice) within the google ecosystem because of patent issues with sonos
  • using Universal Media Player, 2 scripts and 2 google routines I was able to get the voice commands back
  • in my use home I only play one media at the same time and normally control all groupes speakers at once. You would need to add more scripts if you:
    **play various sources at the same time in your home
    ** want to change speaker volume of groups in other rooms
    ** want commands like “20% louder”. This tutorial only covers volume up/volume down commands in predefined steps. (This will add a lot of different scripts for many different volume levels, though.)

Tutorial:

  1. Use Universal media player to create a new entity containing all your speakers.
    (this goes to your configuration.yaml)
media_player:
  - platform: universal
    name: universal_player
    children:
      - media_player.speaker_group_1
      - media_player.speaker_group_2
      - media_player.speaker_a

I added all speakers as a list starting with the group having most/all speakers, adding smaller groups afterwards and having individual speakers at the end. (Universal media player inherits the volume and playing media of the first children playing something)

  1. After reloading universal media player (Settings -> Settings -> server Controls -> reload universal media player) you should have a new entity with the chosen name which inherits played media and volume from your speakers. Changes in volume here will be reflected on the individual speaker/group.

  2. Create two scripts. One called something like volume up and another (obviously) volume down. The only action of these scripts are call service -> media_player-volume_down or media_player-volume_up using your newly created universal media player as target.

  3. Expose those two scripts to Google Assistant. Easy with Nabu Casa Cloud.

  4. Make sure to syn entities to Google assistant via Cloud Settings and also syncing your Google Assistant to look for changes by shouting "Hey Google, just pay sonos and give me my f***** basic feature back! saying “Hey Google, sync smart home devices”

  5. Create 2 routines from your google home app. As a trigger use a voice command of your liking (“louder” , “increase volume” …) and as an action go to adjust home devices -> adjust scenes and you should see your scripts you have configured via home assistant

  6. Save, try your new commands and be happy that you are a HA user + regret that you invested a lot of €€€ in Google. Home assistant will now control the volume, no more “sorry, I can’t control the volume of this group”

Tried to make it as detailed as possible, most users probably won’t need all the details but I hope it’s easy to follow.

12 Likes

Nice work with the tutorial :+1:

This is gold :rofl:

Just came to my mind that we should be able to make “set volume to X %” and “increase volume by Y%” using the free IFTTT plan.
Haven’t used IFTTT since their price changes, though. Would need a while to figure it out, so if anyone is faster with this, chime in. :wink:

Thanks for this, I ended up doing the 2 you did as well as one for 3, 5, and 8
Setup home assistant exactly for this reason, nice to have volume control again.

Hi,
Great that it helped you! What do you mean by 3, 5 and 8?

Sorry I mean I created a script as well for set level: volume level 3, volume level 5, and volume level 8

Between those three set levels and the volume up and down I have solid voice control between my typical listening volumes.

1 Like

How to do that on newest HA version?

Developer tools → YAML → reload universal media playe

1 Like

Does this still work after google removed the posibility of mixing speakers in many groups? when i try this solution the universal media player only use one of the childrens to play (either google speaker group or single speaker) but i cannot play on many at once

Hey guys, so if i understand correct we can make a group of speakers with Nest Audio + Sonos (or Ikea Speaker which is Sonos) and play sim music with full control. Am i correct? Because I’m trying to find if i can do that and i can’t find the answere. I have 2 nest audio and i want to add in my HA speaker group a symfonisk speaker.

Follow an update on the Sonos vs Google lawsuit: Sonos lost and Google is bringing back the speaker group feature:

https://www.theverge.com/2023/10/10/23911491/google-home-grouping-features-now-available-sonos

1 Like