This is a little guide for better controlling smart lights with Google Assistant. I decided to put it together after I discovered an usability improvement using Google Assistant in conjunction with my Home Assistant instance.
Usually, when telling a Google Assistant smart speaker to “turn on the lights”, it will turn on all the lights in the room, or even worse, in all of the house. I always found this behaviour stupid and was frustrated that one couldn’t modify this behaviour. My wife especially struggled with having to remember all the different names for the lights.
Thankfully, with the introduction of aliases in Home Assistant 2023.1, things got far easier. In every room I choose two light entities and gave them the aliases “big light” and a “small light”. This made it far easier to control lights wvia voice.
However, this was still not simple enough for my taste. What I still originally wanted was to tell Google inside a room to “turn on the lights” and have a previously defined light turn on. This would be very simple to grasp, especially for visitors.
A few days ago I learned that this is in fact possible. You can override the catchphrase “turn on the lights” with the help of a routine inside the Google Home App.
In order to get this to work, there are a few requirements:
- The Google Home App needs to have rooms configured. I have a Nabu Casa subscription where my Home Assistant entities with area info are automatically synced to the correct room in Google Home. I have no idea how this works without Nabu Casa.
- Minimum Home Assistant version 2023.1
- Having at least one Google Home Smart speaker. This doesn’t work with Google Assistant on your phone.
- Every Smart speaker has to be assigned to a room.
This is what you need to do:
Google Home App:
- Inside the Google Home App create a household routine with the starter “When I say to Google Assistant”.
- Enter “turn on the lights” phrase. You can add more phrases to catch different variants of it, like e.g. “Lights on” (seriously, you can add any phrase you like). After you’re done, press “add starter”
- Now add the action. Use the “try adding your own” action.
- Inside the action, insert the phrase “turn on Google Assistant Light”. “Google Assistant Light” is the alias that you will be using inside Home Assistant that you assign to all the lights of your choice. You can also choose another name, only condition being that the name inside the routine and the alias are the same. One word of advice: Choose a name no one actually would say by accident to one of your Google Home devices.
- Choose a light entity inside the same area(room) as a Google smart speaker and give it the alias “Google Assistant Light” in advanced settings.
- Repeat for all areas where you have Google smart speakers.
- Ensure that your changes are synced to Google. This might take a while.
If you now enter a room and say “Hey Google, turn on the lights”, your light of choice will turn on in that room :).
Limitations and thougths:
- This works only for lights inside the same room as one of your smart speakers. You can’t control the lights this way in another room. If you say “Hey Google, turn on the lights in the living room”, all the lights instead of the default one inside the living room will turn on. You could work around this by defining a Google Home routine for every room inside your home but this could quickly become tedious and difficult to maintain with a lot of rooms.
- Maybe someone knows how to get around this?
- This doesn’t work as intended when talking to Google Assistant on your phone. It will simply turn on all your default lights because your phone is not assigned to a room.
- If you want to control more than 1 light in a room this way I guess light groups should do the trick.
- I use German when speaking to my Google Assistant, so it might not work as well in other languages?(I honestly don’t know)