Google Assistant -- Accidentally Turning Off All Lights

I’ve been trying so many things but nothing seems to address this issue. I’m sure there have to be others out there, but maybe I’m using the wrong search terms.

In short, I have lots of Zwave lights (and other devices) in my house. I’ve tied them into Google Assistant and that integration has been working very well for a couple of years now. However, every so often, Google Assistant misunderstands what I’m saying and next thing you know, all 30+ lights in my house get turned on. During the day this is just frustrating. When my kids are sleeping at night and this happens, it is a much bigger issue as they wake up and it’s downhill from there.

Here are some of the things I’ve tried so far to address this.

  1. Made a custom Routine in the Google Home app so that when I say something like ‘hey google, turn on all the lights’, it intercepts the call and just turns on a couple of lights that I’ve specified. Unfortunately, the phrases you enter here have to be exact so if I setup ‘turn on all the lights’ as one trigger in the Routine and someone uses ‘turn on the lights’ or ‘turn all lights’, ‘turn up the lights’, etc. it won’t trigger that Routine. Easy fix you say … just enter a lot of phrases into the Routine. I’ve done this but every so often, Google Assistant misunderstands my command in some new and novel way that I haven’t specified and then all the lights go on again.

  2. I tried making and exposing to Google Assistant several scripts and scenes and I was hoping that those scenes might make Google run them instead. When I name the scene or script to something like ‘test script’ and then I say ‘hey google, turn on test script’, it works like a champ and does what I want. However, if I rename the script to ‘all the lights’ so that the command would now be ‘hey google, turn on [all the lights]’ Google seems to ignore the newly named script (it does recognize the script is there in the Home Control settings) and instead defaults to turning off all the lights instead of running the ‘all the lights’ script object. I’ve tried several variations of this and can’t seem to find any combination that works – as soon as I name it something like ‘all the lights’ or ‘all lights’, the script will never run. I have to assume that ‘all the lights’ is some sort of reserved object in their ecosystem.

I’ve thought about things like blocking Google Assistant at my firewall after the kids go to bed, but that then limits the smart home functionality pretty drastically. Short of renaming all my ‘light’ objects to something without Light in the name, I’m running of out options. Renaming would not be desirable as then it will be hard to decipher which object is which as there are multiple smart devices in most rooms and it generally breaks the naming scheme of devices and entities.

Please tell me someone else has seen something like this before and has a workaround. My Wife is becoming very unhappy with this.

Thanks!

I had the same issue, in my case it was that i have a Google home in one room where no other smart gadgets is.
So “lights on” in that room means ALL lights and switches.
The issue was not that we gave this device that command, but that it overheard us from the room next to it.

I have reported it as a bug to Google, but I have little hope.
In the mean time I added a fake switch in that room so if it overhears us then it will toggle that fake switch.

Perhaps that is your issue also?
Make sure your google devices are in rooms (in Google app) with something to work with or it goes bananas!

I mean it sounds like the main problem here is that the command you want to use is one that can be easily misinterpreted into something that does something really far from what you want. Like if you had no routines at all then google natively understands the phrase “turn on/off all the lights” and reacts the way you would expect it to - by turning on or off all the lights.

There is no easy solution to google misunderstanding you. There are too many variables and voice is an imperfect system, it’s going to happen. But you can control how it misunderstands you better then you are.

Instead of picking a command that is very easy for it to misunderstand because it is one that it already knows, pick one that it doesn’t know. Like instead of saying “turn on/off all the lights”, change the phrase to “turn on/off the main lights” or the “primary lights”. Or even just like “home on” and “home off” (google might know that already but its harder to misinterpret a two syllable phrase). Or “turn it on” and “turn it off” (I imagine google wouldn’t know what to do with that normally since ‘it’ out of context is meaningless).

1 Like

I do have my Google Assistant Devices added to rooms along with the lights. This works fine when I just say ‘turn on the light’. The issue is that google misunderstands me (and others in the household) often.

The idea about naming my lights in different group names also doesn’t work because when I just want to turn on one light, it makes sense to just say turn on the light.

Ultimately this is a Google Assistant issue but as you said, I don’t see google fixing it anytime to give us options. I’m trying to figure out how to address this through other means hence my experimenting with names scripts, etc.

Looking at the Google Assistant debug logs, it looks like each turn on command is sent separately so I’m curious if I could add some sort of rate limiting so it only runs one or two commands max when it mistakenly hears me. I have no idea how complex this would be to build though.

@Hellis81 I know this is an old thread, but I have the exact same issue. Can you tell me how you created a fake switch? That’s exactly what I want to do.

Rich

1 Like

I can’t remember, I believe I have removed the dummy switch since this was posted.
But I think either it was a template switch or just an input_boolean.
Try a boolean first, they are easier to set up.

Thanks for your reply. I’ll try that.

Rich

This is exactly the problem and the outcome is grumpy kids. This unfortunately is a thing that seems like it will need to be addressed in Google home, which is to say google going through the list.

I’m holding out little hope. It’s annoying.

I have the same thing, but than with covers. If Google misinterprets you, it opens all covers and blinds (it hears just ‘Hey Google, open cover’). I cannot figure out how to stop this.

If you find its misinterpreting you into one particular phrase a lot (like literally the text “open cover”) then one option is to add a routine and set its trigger to that phrase. It won’t stop misinterpretations but at least you can take some control over what happens when it does.

I had to go the route of setting up lots of routines. The worst part of this approach is that Google has a lot of variations of phrases that will turn on all the lights so it is a moving target. Still wish there was a way to address this programatically.

I’m not sure that works.
When I used voice commands more I had the issue that a routine I made got trumped by Googles normal commands.
So the routine worked then all of a sudden google changed something and my routine was too close to a normal command and my routine was impossible to use.

And that is also why I have moved away from voice commands as much as possible.

Alexa has a similar problem. I simply avoided this by not including the word “lights” in the name of any device or group. I changed names of things that are close to the word “all”, like “Hall” → “Hallway”. Every echo has a light attached to it, so when you say ‘turn on lights’, it just turns on the lights in that room.

To turn on all lights, I broke it down into the following “rooms”: Household, Inside, Outside, Upstairs, Downstairs, Basement, and Garage. Household is all lights inside/out, the rest should be self explanatory.

Haven’t had an issue with this setup in ~3 years, with us or guests.