How to control Hubitat by voice? (In the year 2022)

Most of my home automation system works automatically, something like that:
IF a AND b THEN DO x, y

But there are special use cases, where I personally/manually (via speech) want to start a rule or get some information (which returns via TTS).

Examples:
bathroom state returns the most important parameters of some devices in the bathroom.
bathroom report returns all parameters of all devices in the bathroom.
security check returns all open doors and active motion sensors.
battery check returns all devices with low battery state.
open garage opens the garage door and starts a bunch of activities...
do in 12 minutes: close garage - yes, exactly what you think!

I realized this with the help of Google Assistant (for voice recognation), and one IFTTT trigger:
Everything (with a certain code word) is webhook'd to my Hubitat, where I parse the commands with a little help of Groovy...

All this works great! :blush:
Till now...
Google is now canceling the feature of variable inputs! :angry:

So my question for you is:
How can I accomplish such flexibility in the future?

Is there a small and cheap device (I need one in every room) that can do speech recognation, and than webhook the recognized text to an URL (my Hubitat's IP)?

Is Google totally ending support for this or just the IFTTT integration part? Reason I am asking is maybe you could channel it through something like Node-Red instead of IFTTT?

1 Like

Google replaces the actual "intelligent" IFTTT integration (which allows variable input text and number) with a "dumb" integration (which allows only to activate a certain scene). :roll_eyes:

More:

IMHO (when I understand the reddit talks) the variable input API is deprecated - so all other solutions will also break. :angry:

You might want to look into the Echo Speaks app for Hubitat.

It’s for Amazon Echo devices, not surprisingly. But it’s extremely flexible and customizable in terms of how it can allow one to integrate Alexa-enabled devices into a Hubitat environment.

There’s also an integration for Mycroft, which has the advantage of running entirely locally. I believe the development of the integration is in beta, and I’m uncertain how fully featured it is as a voice assistant given that it doesn’t use any cloud processing (I haven’t tried it out myself).

3 Likes

You could get creative with the use of virtual switches and either RM or WebCore to process and speak the defined data.

Example:
You say "OK Google, Bathroom State"
Google recognizes Bathroom State as a custom routine to turn on virtual switch bathroom state.
Rule/Piston is triggered by virtual switch creating a string pulling in data. Bathroom light is on and temp is 70 degrees.
Speak data string

The tricky part would know which google device to route the speak to (assuming you have multiple devices in different rooms).

I've just built a Rhasspy unit (local voice recognition) and it requires that the phrases that you want to use as triggers (eg 'turn on [room] light) need to be defined in a configuration file. I assume Mycroft would be similar, without the processing power of google/s/Amaxon's cloud servers.

2 Likes

I don't use Google Assistant but I was curious so I did some searching. The main issue OP has is capturing the "variable" voice commands, I don't think Echo Speaks can do this. I see lots of people saying they are switching to Alexa but I don't think you can do this there either (If you can I would be interested as it sounds possibly useful). The variable commands without a unique routine and switch for each one is the key.

https://support.google.com/assistant/thread/173609095/changes-to-ifttt-integration?hl=en

One person on there recommends MyCroft: https://mycroft.ai/

2 Likes

Mycroft or Rhasspy Integration is coming....
TTS is available now:

(Please forgive the shameless advertisement, sometimes I think that I was born to be a marketer, even though I am an engineer by training...)

5 Likes

So, Amazon Echo/Alexa is able to send recognized voice as text to an URL? :thinking:
That would be great! (An Echo Dot momently costs only 24 Euro.)

That's the problem: I would need a new virtual switch for any possible combination of parameter.

E.g.: set temp in x to y
When x is one of 15 locations, and y is an integer between 15 and 24, there are 15 x 10 possibilities => 150 virtual switches just for this simple use case!

Can I buy something like this as hardware-ready-to-use? (How much does it costs, as I need one in every room?)

Sounds interesting for the future! :+1:
BTW: TTS is not the problem, but STT (speach to text). :wink:

It is quite easy to put together with a pi3 or better and a microphone shield (reSpeaker) or even using a usb combined speaker/microphone so no wiring needed at all. Quite a few guides on the internet that will walk you through the process. I tried it with a pi zero but it's pretty underpowered.

1 Like

I was thinking more in terms of returning data based on the examples above...not setting parameters...

OK, I see.

That's - till now :thinking: - not my problem, as Hubitat's TTS is working like a charm.

Sorry but I don’t know. The Echo Speaks developer can address this, I’m sure. There’s an active thread for the app here in the forum.

Probably worth looking into, since as you said Echo Dots are cheap now.

1 Like

I no longer use Alexa (as much) but @bamarayne21 or @tonesto7 might be able to help point you in the right direction. Although, you could probably continue to use IFTTT with Alexa the way your applets were running using Google Assistant. Just remember, that with any cloud services, you are at their mercy of changing course at any time and you cannot do anything about it.

1 Like

Found this thing that claims it can take input from Alexa and send webhooks out, but it is a bit pricy. Sounds similar to what you were doing with IFTTT but you would need to setup a key word phrase for each command in Zapier from what it sounds like. Plans & Pricing | Zapier

Along those same lines... searching a little, a custom Alexa 'skill' might also do the trick. Something where you could setup a key word and then everything after that you send to a webhook. I believe thats what you were doing with Google? I have looked into making a custom skill before (to display a web site on a show in a certain way the built in browser was refusing to do) but it got overwhelming pretty quickly and I gave up :frowning:

1 Like

For those of us who want to stay totally local, the Mycroft will supposedly be available this fall for $300. But it may be the ugliest device on the market...1985 will soon be calling wanting their tech back...

1 Like

Yes, much to pricy for such simple tasks.

Yes, thats exactly what I'm doing.
Today will arrive my Amazon Echo - and I will see, what I can accomplish with this device...

1 Like

Personal feedback...

With Alexa I can talk again to my Hubitat home automation - even without IFTTT!

Steps to reproduce (in a nutshell):

  1. Install Alexa App on you smartphone.
  2. Install the Webhook skill.
  3. Configure this :arrow_up: skill to call a minimal php script on my web server.
  4. My php script transfers the information to my Hubitat, thanx to Maker API.
  5. Use Alexa App to configure a Routine to choose a code word of your choice.
2 Likes