Not sure if this issue has been resolved, but after another incident I am starting to research this task again.
So, how to stop google from turning on ALL the lights?
The only solution I found - I can set up a routine in google assistant to override the response on “Turn on all the lights” with some response. The issue is that this needs to be set up in every assistant account and it won’t work for our guests/parents/friends as they are not linked to our house.
Not sure how it works, but I assume the google sends individual commands to each light. If this is correct, then my idea is to create a rule. However not sure if it is possible.
- we have a flag with 3 states: OFF, ONE, MULTIPLE
- somehow the rule intercepts the command of light switching, detects if the request came from google assistant.
- if so, it checks the ‘flag’ and switches it to the next state (from OFF to ONE, or from ONE to MULTIPLE). Also pauses the execution of light switching for 500ms.
- when timer fires, it checks the flag. If it set to MULTIPLE or OFF, it doesn’t turn on the light. If ONE - it turns it on. Then resets the flag to OFF.
Is it doable?
Maybe there are some better easier ideas?
I set up a routine in my google assistant once again today, and it works for every member in the house, even for quests.
After some googling I found that
…every member of your household [my comment: guests also] can trigger the routines that you’ve created as long as they are a home member and using the trigger word that you’ve set however, all personal information that needs voice match will not be announced.
So, I set up a routine that if someone says “Turn on all the lights”, “Turn on all lights” the assistant replies “If you want to turn on all the lights say ‘I really need all the lights on’”. Keep in mind that the trigger words are quite specific, so my kid managed to turn on all lights by saying “Turn on all the lights please”.
Also, I added another routine ‘I really need all the lights on’ which turns on all the light.
Well, 2 weeks passed and there are still phrases when google turns on all lights in the house. So, my previous solution is not a solution.
Routines can help in some cases, but there are many variations to the phrase. The latest one was “Turn on the lights”. Not “Turn on the light”, but “lights”.
So, I am back to square one. Any ideas on how to make in on a rule level?
If you’re exposing your devices to Google via openHAB, then:
- Tag them as
switch instead of
- Don’t put “light” in the device’s name (e.g. “Kitchen lights”).
Basically, don’t tell Google that they’re lights.
Note that if you have dimmers or colour-changing lights tagged as
switch, you’ll be able to turn them on but not control the dimming/colour with Google Assistant. Personally, I’m fine with that. I have rules that determine how bright my dimmers should be, so I don’t need to control that with voice commands.
What do you say when you ask to turn on lights without mentioning the lights? I really like the options ‘turn on the light’ depending on the room I am in.
There is also one more downside: you can’t schedule turning on-turning off actions for switches ‘because of potential safety risks’, but it works with lights.
You can say ‘turn off office lights in 20 minutes’ and it will work, but ‘turn off kitchen rangehood in 3 hours’ won’t.
“Turn on the kitchen”
“Turn on the bathroom”
“Turn on the living room”
I do use a routine for “turn on the lights”, which triggers my living room lights. Those are the only ones that I want to be treated generically as “the lights”.
I didn’t even know this was possible, probably because I’ve tagged my lights as switches. Personally, I can’t really see much value in it. I have some scenarios where openHAB will delay turning off lights (e.g. when I’m leaving), but I can’t think of why I’d want to ask Google to do that. When I want the lights turned off, I want them turned off now.
I guess it could be useful for turning a child’s light off after they fall asleep. If so, just tag the lights that need this functionality as
light, and leave the rest as switches.
As you’ve noted, routines often don’t work well because there are too many variables: what people say, who’s saying it, how they say it (mumbled, slurred, shouted, etc.), and what Google Assistant hears. When that’s the case, you have to design in a way that maximizes flexibility and increases hit rates. Removing the
light tag and giving devices distinctive names helps.
I live on my own, and even then Google struggles sometimes to understand if I’ve said “air conditioner”, “air conditioning”, or “air fryer”. It also struggles with “on” and "off when there’s a lot of background noise.
I tested this with a desktop fan and it works. It probably doesn’t for anything with the
hood tag since that’s intended to remove fumes from your house. I get why they’d also prevent it with
Thank you for sharing your experience.
Unfortunately won’t work for us as we’ve got lots of people in the house and only 2 of them have access to OpenHab. Everyone else (parents, kids) use voice if they don’t want to get to a physical switch
Ok, will continue looking for a solution.