Node-RED google home integration

I created a first alpha version for integration (https://www.npmjs.com/package/node-red-contrib-nora). For now only a switch node is available, more coming soon (light, outlet, thermostat, etc.). It's very similar to the dashboard switch. The backend service is not open source (yet...?) and is hosted on a free heroku dyno in the Europe region.

If anyone wants to test it, send me a private message to provide a user/pass (I will also need the email address you use with your google home, in order to add you to the google action test users since it's not published yet).

The process is pretty simple:

  1. go to https://node-red-google-home.herokuapp.com/ and login
  2. copy the access token
  3. go to node-red and install node-red-contrib-nora
  4. create a nora-config node with the access token you just copied
  5. add the switch nodes and deploy the flow
  6. go to google home and link the account (add/setup device/have something set up/select NORA/enter user-pass)

Steps 1,2,3,6 - need to be done only once. Make sure you have some nodes before linking the accounts.

When the nodes change, they automatically get synced (including request sync to google https://developers.google.com/actions/smarthome/request-sync) so they should automatically update in your Google Home app. Report state is also implemented (https://developers.google.com/actions/smarthome/report-state) so the latency should be small enough. The data between node-red and nora is passed via socket.io (websocket ideally). Once the connection is closed, Google Home is informed that all the last known devices went offline.

Keep in mind this is a very early version so it might be unstable in some situations. Also it's hosted on a free dyno and it has a limited number of up time hours in a month and maybe some other limitations.

Once it's stable enough, I will upgrade it to a hobby dyno and leave it for free to everyone (what registration methods do you prefer?).