How Can I Make Google Recognize "Turn off the first floor lights" Without Screwing Everything Else Up?

The scenario:

  • I have a multi-story home.
  • I have a few rooms on my first floor each with their own switch.
  • I have 4 Google devices grouped as “First Floor”.
  • Switches, Google devices, and other misc. are linked to Google Assistant and organized into rooms.

Desired Outcome:

  • Be able to say “play music on the first floor”
  • Be able to say “turn on/off the lights on the first floor”
  • Be able to say “turn on/off the lights in the [room name]”

What I’ve tried:
I tried grouping all my light switches into a group called “first floor” in Home Assistant, but that broke my ability to play music on the first floor.

Extra bonus points:
It would be great if I could say “turn on the lights on the first floor”, and it would leave the first floor bathroom lights and outdoor lights in their current state (on or off), but when I tell it to turn off the first floor lights, it turned them off.

In HA, use standardized naming for devices.
This means name switch.vendor_2019 ad switch.myroom. this will help you if ever you need to replace device in HA since this will be easier to setup in Google Assistant or Alexa

In GA or Alexa, setup the device groups and functions.
HA needs are different from GA and Alexa needs and function. This detailed operation should be managed in their apps. Use HA to only provide automation and device status/functionality.

So in your case. Setup the rooms in G and set devices as light or switch(verify they expsosed as needed). “Turn of living room lights” kinda just works after that.

I can’t speak to music but I think you must also set these up as groups in GA app.

Thanks for your reply.

What you’re suggesting is what I already have.

I want to be able to say “Turn off the living room lights” or “Turn off the first floor lights”.

GA doesn’t seem to support multiple groupings. I am wondering if there is another solution.

Following this with interest… i’ve got a similar issue - one room has 3 lights (one ‘main light’ two lamps).
Google doesn’t seem capable of understanding ‘turn on the lamps’ (ie. don’t touch the main light). It always just turns all 3 on.
Light and Lamp seem to be keywords that google uses so it doesn’t differentiate between the two.

I think the answer we are looking for is maybe to use scenes, or setup a ‘switch’ device in HA that has automation attached to control the desired lights, but neither seem a good solution.

You might be able to fix this with HA’s groups. I tried this with my first floor lights. It allowed me to say “turn off the first floor lights”. The problem is that it broke my ability to play music on the first floor group which used the same name :confused:.

I simply added something like the following to my groups.yaml:

first_floor_lights:
  name: First Floor Lights
  entities:
    - switch.rear_door_lights
    - switch.kitchen_sink_lights
    - switch.kitchen_island_lights

etc.

ok so,

ditch all the groups - not needed.

setup the googles in the rooms they are in. example: ghome in downstairs living room., ghome in downstairs kitchen.

now, in the app make sure all the lights are also setup in the room they are actually in.

so if you are in the kitchen and say ‘turn off the lights’ the only lights that will turn off will be the kitchen, you dont even have to say kitchen lights. if you want to turn off the living room lights from the kitchen you have to say ;turn off living room lights. done.

once you have this setup. all you have to say is ‘turn off the downstairs lights’ and all the lights in the downstairs kitchen and downstairs living room will turn off…

its really that simple. its all on how you name things.

edit: naming lights properly makes all the difference. ‘kitchen light’ , ’ living room light’ prefix all these with ‘downstairs’ or upstairs… but when you are downstairs dont say the downstairs part… as an added bonus,., when you do it this way… instead of google replying with ‘ok turning off kitchen lights’ it will just chime as the lights go off.

This sounds perfect, except that “First Floor Bathroom Light” and “Downstairs Bathroom Light” seem to be too long for the name field :confused:. I will keep playing with it.

I just made a routine in Google home. Add when I say “Turn off the main floor Captain” (or any wording of your choice) then in the Assistant will do section select the lights/switches you want it to turn on, off or toggle.

hmm never realized it had a charater limit on the naming. i just tried naming it first floor bath light… and when i said turn on 'first floor bathroom light… it worked, i believe it does a little regex’ing.

anyway… you’ve probably already figured it out…

I did mine this way.

Name all floor to bathroom light. Assign them to 1st, 2nd, 3rd floor as room.
So when you call “Turn off light 1st floor”. all entity name with light will off on 1st floor

As others have said, what you name the lights makes a huge difference. I had the same problem as you.
My solution was to just set up different routines for different wants (ex. A routine named “first floor lights” or something like that to turn on the lights but leave the lights off in the bathroom). Same thing for the music. You’ll probably have to play around with the routines. Annoying but worth it

I know this is an old post but are there any new solutions to it? I created a light group in ha and it shows up in google assistant as a light. If i press the button in google or ha all lights turn on or off as they should. But if i say hey google, lights xxxx on its doing nothing.

Help would be nice :slight_smile:

Hi there, I was looking into this and saw there’s a bit more animo for being able to manage devices/entities in area’s on different floors.

I think this feature should be added in one of the following 2 ways:
Adding a flooring functionality so you can add area’s to floors

Or just be able to put area’s into area’s. E.g. You can make a “First Floor” area and add multiple area’s into that area like “Master Bedroom”, “Sophie’s Bedroom”, and “Bathroom”

This would for example make it possible to say “Turn off all lights on the 1st floor” to the voice assistant of your desire and it’ll switch off all lights in all area’s on the first floor.

This theory is pretty simple, but in fact it probably needs a lot of rewrites in the code as this isn’t the way it’s designed right now.
Animo check: Maybe it can be added as a feature request?

Who’s up for it?