Google Home and Openremote - Voice command

Hello,

First of
all, here is my conf :

  • ·
    Raspberry
    PI 3 - Raspbian Stretch
  • ·
    Z-Wave
    Plus Z-Stick GEN5 - Aeon Labs
  • ·
    OpenRemote
    2.6

I don t know if it is really the right place to write this ticket because it is
not a problem.

I just would like to have your feedback about this topic.

For Christmas, Santa Claus brought me a Google Home device.

So I have
tried to use this device in order to vocally command the Zwave devices I have
and which are managed by OpenRemote (mainly lights and my coffee machine J ), and it works fine.

Now when I
say “OK Google ,please switch on outdoor lights”, the lights are switched on.

To do this
I have used the following architecture:

My Voice :slight_smile: => Google Home => IFTTT
(Google Assistant: “say a simple phrase” as trigger + WebHook as Action) =>
HTTP Rest command sent to my OpenRemote controller.

So based on
that I have created several “voices commands”; But, and this is the topic,
because I use IFTTT service, the HTTP Rest command sent by this service goes
through the web in a non-secured way. It means that, someone knowing the HTTP
Rest command, could switch on the my lights :frowning:

My idea was
to use an encrypted tunnel between my OpenRemote controller and IFTTT. To do
this, my first approach has been to use ngrok.

I have set
up ngrok on my Raspberry, create a free account on ngrok web site. In this
architecture, a tunnel is created between my Raspberry and ngrok server, which
is in fact a relay server between IFTTT and my controller.

So, it
looks like this:

My Voice :slight_smile: => Google Home => IFTTT
(Google Assistant: “say a simple phrase” as trigger + WebHook as Action) =>
HTTP Rest command sent to NGROK server => HTTP Rest command relayed using
the encrypted tunnel to my Controller.

It worked
fine, the command sent by NGROK server was encrypted but, the URL provided by
NGROK changes at every startup
.

So it means that, every time I’ll restart my
Raps, this URL will change and so, I’ll have to update all the links in IFTTT
which is not possible…

There’s an
option in NGROK called “subdomain” in order to get always the same URL at every
reboot but this option is only in “pay plans” mode now, which was not the case
in the past.

So, my
question is: do you have already tested
some free alternatives to NGROK where this “subdomain” option is free?

Thanks for
sharing your experience,

Regards,

Jérôme

Hi

That's really interesting to know.

My only thought would be....

Is it really a problem if someone 'knows' the exact http request to do things within your OpenRemote controller?

Surely that person would have to be connected to your local network for it to work?

You could try setting up the user level access in the controller? That would require a username and password?

I do this with commercial installations if I'm asked for it, but even my home system doesn't have user level access.
Especially as I have so many other http / TCP based devices within my home network that don't have passwords.

My theory being....

"Really, you want to hack my RGB wall lights and change the colours? Okay, good luck getting into my WiFi / LAN first"

Hello Stuart,

Thanks for your answer :-).
when I have written this post, I was thinking about disabled people or aged people.

I think that the combination of Rapsberry + Google Home + OpenRemote can be a very powerfull and not expensive combination for people who at home have difficulties to move.
The possibility for them to simply controll vocally their devices by saying for example : “Ok google, swith on the light” would be a real improvement for them. (I like when technology helps people … :slight_smile: )

So, in this case, I thought that an encription system between IFTTT Servers and the Internet Box at home could be a good idea … just in case.

I have red somewhere on this forum that OpenRemote does not support HTTPS for the moment. Maybe it could be a good improvement in so far as, in WebHook trigger, an HTTPS URL can be used.

For the moment I’ll let has it is, but the topic remains open :slight_smile:

Regards,

Jérôme

Hi

Funny you should mention that..

I've had the other end of that idea working for over a year in my house now.

I'm just waiting for the speech control side to be resolved.

Push messaging will make the announcements much better.

If you're curious about getting an android device to announce things, I use this app, that the developer kindly wrote at my request.

https://play.google.com/store/apps/details?id=webtts.alexkenion.apps.webtexttospeech

I'd be very interested to know how you get on with your current objective.

FYI

I use a generic http command with a ${param} section in conjunction with many odd rules to achieve the announcements.

Cheers,

Stuart

I’ld realize that with the following building blocks:

  • Free subdomain (e.g. Duck DNS)
  • Free certificate via letsencrypt installed on the Raspberry Pi in order to enable HTTPS
  • Apache and reverse proxy on the Raspberry Pi secured by means of basic authentication

Google Home => IFTTT (Webhook) => HTTPS call sent via port forwarding (443) to reverse proxy > HTTP call from reverse proxy to OpenRemote controller

It’s all explained in the following video (unfortunately in german) : IFTTT/Subdomain/Letsencrypt/Reverse Proxy

Hello Rainer,

Thanks a lot for your update. I didn’t know LetsEncrypt.
I have been searching for a free certificate :slight_smile:

As soon as have times I will implement the certificate with lestencrypt in order to move to HTTPS.
I’ll post the result of my test.

Thanks alot for suggestion,
Jerome

@Stuart : Thanks a lot for your update too. Very interesting the Android app you are using. :wink:
For the moment I have an iphone … :frowning:
Using a smartphone has also advantages because no google devices are needed in the home nevertheless, the person has to have the mobile with him/her.

To cover my house I think that 2 or 3 googles devices should be enougth ( 1 in the living room, 1 in the bedroom and antoher one somewhere else :slight_smile: )

Another funny application with IFTTT is that we can also play with the location as trigger.
What i going to implement also is a rule like : When I leave my home (the location is based on the coodinates of the Mobile’s GPS), then switch of all the lights in the house.
so my plan is to have

1- a google vocal command to tell OpenRemote that I m going to leave home (just to be sure that if I leave home with my mobile and if there s still someone at home, the lights will not be switched off) : " OK Google, I’m living home".
2- an IFTTT trigger based on the location and a Webhook HTTPS command as action.

So I’ll update this post with the results of my tests :slight_smile:

Thank you all for your suggestions and happy new year 2018 !!

Jérôme