Hi all, I have some ideas on how to do this but wanted to get feedback before trying anything.
My goal is to be able to say the following phrases to my google home.
"<assistant_keyword> disarm the alarm"
"<assistant_keyword> arm home"
"<assistant_keyword> arm away"
The first would obviously disarm the alarm
The second would change the hsm state to arm home.
And the third would arm the alarm away after a predefined delay. (because arming away from the google interface doesnt make much sense unless you are trying to set the alarm off...)
/* end question */
Now for anyone who is interested in how things work on other platforms:
Many of the existing google partners with security systems require one to set up voice personalization to act as a method of authentication so that random people cant disarm your alarm
That was the case with my old alarm.com system at my former house. I would get the occasional error "I am unable to recognize your voice so I am unable to disarm/arm your alarm"
Honestly, I don't think you are going to be able to get to that level of security on GH or Alexa.
The best possible solution I can think of is to create a virtual lock in HE and have that as a trigger in RM. In order to unlock a lock on most home assistants, you need to provide an unlock code. This would provide you with the closest thing to a voice match provided no one gets your pin code, obviously.
So, the flow would basically look like the following:
Create virtual lock and 2 virtual switches (with auto turnoff enabled).
In [GH/Alexa] allow unlocking of lock by voice and app and enter a pin code to do so (I think this works in GH, I've not used it in a LONG time).
Create a rule in RM:
3a: If [Virtual Lock] unlocks, disarm HSM.
3b. if [Virtual Switch 1] turns on, arm HSM away.
3c. if [Virtual Switch 2] turns on, arm HSM home.
Create a routine in your home assistant to trigger on phrase "disarm the alarm" and have it unlock the virtual lock. Create another one to turn virtual switch 1 on for "arm away" and another one for virtual switch 2 for "arm home".
You can add any phrase command to Google home, but....., yes, there is a but, you must use IFTTT, you can create 3 virtual switches( with auto off), 3 IFTTT recipes( if I say arm away then turn on X switch), 3 RM rules to trigger the desired HSM mode, or 4, I just use away, stay and disarm, you can add night too.
I must say(my opinion) this is the most insecure environment I ever seen. Adding your HSM to google or alexa the first thing I imagine is someone over a window asking to disable the alarm.... even with voice recognition....
That's why I suggested the virtual lock option. It forces the home assistant to ask for a pin code in order to unlock. Granted, it's still insecure (I agree with you), but at least it's a bit better than no pin code at all.
Also, can't you define custom routines with custom phrases in GH? I thought I saw that in one of their previous announcements? I've been able to do that in Alexa for ages now.
Why not just use presence, it would actually be less effort to disarm/arm then voice. I do this currently and just never have to worry about arming/disarming. In fact I also have mine tied to the 12V alarm system using AlarmDecoder in the house so everything is automatic and if my smoke detectors go off I am notified.
Just to follow up what I ended up doing
First I tried using virtual lock devices, but Google home doesn't like/support them? (Never got them to show up in Google home)
in hubitat set up two virtual switches with auto-off, give them unprounonceable names (I generated some GUIDs)
set up RM rules to change HSM state based on switch state, I had one for disarm and one for arm home.
add to Google home app
create Google home routine shortcuts with user friendly voice commands "disarm alarm, arm home, cancel red alert..." Whatever you want. Activate the relevant switch.
If you don't want to expose your virtual switches to Google Home, a good alternative is IFTTT. You can set up simple voice commands as a trigger and then trigger the virtual switch in HE as the action. Works well for me.