Long story short, I want to be able to say: “Hey Google, Open the garage door”.
I don’t want any additional words like “tell home assistant” in the phrase and I don’t want it to tell me anything other in response except “opening the garage door”.
I currently have this accomplished with IFTTT which calls a webhook.
It works perfectly, however, I’d like to avoid using IFTTT.
I only know of one other way to do this, but is has several drawbacks as far as I know (and in my testing).
Drawback 1) Project Expiry
That project will operate in test mode and expire every 30 days and require relaunching/retesting to continue operating. This is the first issue and means it’s not usable and I can’t risk it stopping working.
Using this approach and “Google Routines” I can accomplish what I’m doing with IFTTT, but as this stops working every 30 days this isn’t a robust solution.
Drawback 2) Mandatory use of the project name
When creating custom commands using IFTTT they integrate directly and can be called with no prefix.
When using the method above you must refer to the project name when using custom commands.
Is there any other way to accomplish what I’m doing with IFTTT above?
Thanks for the response!
I’m definitely considering going back to that approach, how do you get around the fact the “test” project expires every 30 days?
So in your particular example here it seems like what you’re describing is default behavior for a cover entity. Assuming your garage door is available in HA as a cover type entity you can expose that to Google assistant. And then you should be able to open or close it by saying open <friendly name> or close <friendly name>. So I’m not even sure if you need to make a routine unless you don’t like the default response.
For situations where you want more control over the request/response yea you can just make routines. Can even expose scripts to Google Assistant which is even easier. Basically implement the routine entirely in HA then just make a routine in GA that just does turn on <script name> to attach the voice command of your choice.
Also for the 30 day thing I assume you’re referring to this:
Syncing may fail after a period of time, likely around 30 days, due to the fact that your Actions on Google app is technically in testing mode and has never been published. Eventually, it seems that the test expires. Control of devices will continue to work but syncing may not. If you say “Ok Google, sync my devices” and get the response “Unable to sync Home Assistant” (or whatever you named your project)
Just to be clear, the only thing that doesn’t work after the expiration is the ability to say “sync my devices”. HA and GA have no issues talking to each other about previously synced devices with no expiration date.
Also I can’t remember the last time I had to refresh my test app. I’ve had GA talking to HA for over a year at this point. I think maybe early on I might’ve had to do that once? But its been many months since the last time and there’s been no issues. Even sync my devices has worked fine.
Perfect, your “cover” comment gave me what I needed, I hadn’t even looked at that as my garage is controlled by an alarm system as a “switch”.
I now have it presenting as a cover and open/close work perfectly. Job done.
Two quick questions,
I have it set to a cover type of “window” as if I set it to “garage” (which is what I want and has a better icon) it asks for a PIN, I can set a pin but I don’t want it to ask for a PIN.
I’ve tried “code_arm_required” and “code_disarm_required” being set to false, but that doesn’t help.
Any idea how to disable a PIN for the Garage cover type?
In Google Home the “Cover” types don’t seem to have any clickable open/close links for me? They work using voice commands, but have no actual button presses. I have a separate switch displayed to work around that, but I’m wondering if I have something wrong here?
Looking at the doc, I think setting the type to window is going to be your only option. It says that google is only allowed to open covers of type door, garage or gate with a pin and if you don’t set a pin it just won’t let google open them. The code_arm_required and code_disarm_required options are only for devices of type alarm_control_panel, which also require a pin by default but allow you to turn that off it seems.
Seems you’ll have to use your workaround. You can make a routines though so you can continue to say “open/close the garage door” and have it work even though its actually toggling something else.
Huh that’s strange. Maybe because of the PIN thing? Maybe there’s no way to prompt for a PIN when you click in the UI currently so its limited to voice access? I’m not really sure, I actually don’t have any covers exposed currently since I don’t have a garage so I never tried it myself. Maybe someone else has a secret I don’t know about.
Just an aside, if you do go the pin-less route I’d recommend putting your google home devices a bit away from the door. Otherwise someone can shout at them from outside. Or adding a conditional in your automation so it only opens the garage door if it sees that someone in your house is at home.
Although I do wish there was a better way to do secure devices, the whole prompting for PIN thing really puts a damper on the experience.
Thank you very for this! I’ve been trying to figure this out since starting to use HA back in September. Thanks to you, I’ve now setup a number of scenes as routines on GA. Yeah, no more “Hey Google Activate!”