Hey all,
I’ve had my vera for a long time and it’s been great. I’ve always wanted to take my house to the “next level” and add a level of voice control. I’ve been playing with a few nice microphones and arduino based controllers. I wondered if there was a way I could utilize my phone, which I usually have on me.
I have an iPhone (for good or bad) - you cannot do this with a non jail-broken iOS device (thanks Apple). If you are jail-broken, you can install two Cydia apps. One called “NowNow”; which lets you replace Siri calls to the Google Now API. And a second one called “Googiri”; which allows you to intercept calls to the Google Now API and direct them to a URL of your choosing.
Basically, you ask your phone “ turn on the kitchen lights”. The Googiri app listens for “” (Jarvis in my case, of course) and then calls my custom URL (“https:/somethere.com?q=XXXXX”) where “XXXXX” is the actual string that the Google Now API returned (minus the , so in this case “turn on the kitchen lights”.
If you have an Android device, you can do this with Tasker (see this life hacker article: How to Create a Custom Google Now Command for Anything on Android)
I wrote a really quick/dirty PHP script that takes these commands and parses them lexically to figure out what you want to do by room and device type. It works amazingly well. If anyone wants to try it, let me know and I can either give you the source code to put it up on your own server or even set it to forward requests to your MiOS account for a test run. Trying to re-factor my test jig into a more portable set of modules.
So far, I can:
I. turn lights on/off
II. Set dimmer values (either at a set percentage or adding/subtracting for current value)
III. Run any scene
IV. Open/Close my garage doors
V. Lock/Unlock locks
I even wrote a module to control my now-defunct Logitech Squeezebox systems I have all over my house so I can say “Jarvis living room music pandora station the killers radio” and it just works.
My script just uses the web calls for MiOS to make commands (part of my URL is the user/pw for MiOS). It sends a request to get a list of your devices/rooms and then uses that to figure out what you are trying to say. For example, if I just said “Jarvis kitchen lights on” it would turn on every “light” in the room “kitchen”. If I said “Jarvis kitchen island lights on”, it knows I have a device in the “Kitchen” called “Island Lights” - and it turns that on.
Let me know what you think? I’ve talked to the Googiri developer a couple of times and he’s a really nice guy. He’s working on a version that actually waits for, and parses, the response from the URL to take appropriate action. That would be nice because you could then as a question and have your phone reply via voice “Jarvis, is my garage door open”.
It’s getting there! Hope this gives you guys some new ideas.
Cheers.