# Node-RED google home integration

**URL:** <https://discourse.nodered.org/t/node-red-google-home-integration/4829>\
**Category:** Share Your Projects\
**Created:** [13 November 2018 09:25 UTC](https://discourse.nodered.org/t/node-red-google-home-integration/4829 "2018-11-13T09:25:31Z")\
**Posts on this page:** 20\
**Page:** 9

<div class="post-metadata">

**Author:** ![andrei-tatar](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/andrei-tatar/32/3780_2.png) [@andrei-tatar](https://discourse.nodered.org/u/andrei-tatar)\
**Post date:** [27 January 2019 11:51 UTC](https://discourse.nodered.org/t/node-red-google-home-integration/4829/166 "2019-01-27T11:51:20Z")

</div>

Use different groups in the nora config node with the same token. It allows you to have up to 3 connections to the same user profile. There's no change in deployment...

---

<div class="post-metadata">

**Author:** ![andrei-tatar](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/andrei-tatar/32/3780_2.png) [@andrei-tatar](https://discourse.nodered.org/u/andrei-tatar)\
**Post date:** [27 January 2019 11:53 UTC](https://discourse.nodered.org/t/node-red-google-home-integration/4829/167 "2019-01-27T11:53:09Z")

</div>

@Flixm there is no otficial support for blinds. There already is an issue on github about this.

---

<div class="post-metadata">

**Author:** ![PRO2XY](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/pro2xy/32/4885_2.png) [@PRO2XY](https://discourse.nodered.org/u/PRO2XY)\
**Post date:** [27 January 2019 15:11 UTC](https://discourse.nodered.org/t/node-red-google-home-integration/4829/168 "2019-01-27T15:11:10Z")

</div>

Any way to find the token from google profile? I have a raspberry pi in another city, with no access to it online, which uses the token I originally generated.

---

<div class="post-metadata">

**Author:** ![andrei-tatar](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/andrei-tatar/32/3780_2.png) [@andrei-tatar](https://discourse.nodered.org/u/andrei-tatar)\
**Post date:** [27 January 2019 15:30 UTC](https://discourse.nodered.org/t/node-red-google-home-integration/4829/169 "2019-01-27T15:30:16Z")

</div>

You don't need the exact same token. Just login and copy a new one. The difference between them is the salt.

---

<div class="post-metadata">

**Author:** ![realjax](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/realjax/32/895_2.png) [@realjax](https://discourse.nodered.org/u/realjax)\
**Post date:** [27 January 2019 15:37 UTC](https://discourse.nodered.org/t/node-red-google-home-integration/4829/170 "2019-01-27T15:37:38Z")

</div>

Thanks for your work Andrei. It works quite well!

In the beginning of this ( massive) thread you mentioned something about setting it up as a subscription based service. Is that still the case ?

Cheers.

---

<div class="post-metadata">

**Author:** ![andrei-tatar](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/andrei-tatar/32/3780_2.png) [@andrei-tatar](https://discourse.nodered.org/u/andrei-tatar)\
**Post date:** [27 January 2019 15:38 UTC](https://discourse.nodered.org/t/node-red-google-home-integration/4829/171 "2019-01-27T15:38:53Z")

</div>

No, it's free.

---

<div class="post-metadata">

**Author:** ![realjax](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/realjax/32/895_2.png) [@realjax](https://discourse.nodered.org/u/realjax)\
**Post date:** [27 January 2019 15:42 UTC](https://discourse.nodered.org/t/node-red-google-home-integration/4829/172 "2019-01-27T15:42:54Z")

</div>

Then please buy a beer from my donation and enjoy it! Thanks again.

---

<div class="post-metadata">

**Author:** ![PRO2XY](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/pro2xy/32/4885_2.png) [@PRO2XY](https://discourse.nodered.org/u/PRO2XY)\
**Post date:** [28 January 2019 06:42 UTC](https://discourse.nodered.org/t/node-red-google-home-integration/4829/173 "2019-01-28T06:42:11Z")

</div>

Great! That worked!

At first I tried with a new token, without setting any group, and I had the user already connected error. But setting the group made it connect alright!

Thanks a lot!

---

<div class="post-metadata">

**Author:** ![andrei-tatar](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/andrei-tatar/32/3780_2.png) [@andrei-tatar](https://discourse.nodered.org/u/andrei-tatar)\
**Post date:** [29 January 2019 12:37 UTC](https://discourse.nodered.org/t/node-red-google-home-integration/4829/174 "2019-01-29T12:37:02Z")

</div>

The backend service is now open source on github. Feel free to contribute 🙂

> **[andrei-tatar/nora-service](https://github.com/andrei-tatar/nora-service)**
>
> NORA backend service. Contribute to andrei-tatar/nora-service development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![olapola](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/olapola/32/5636_2.png) [@olapola](https://discourse.nodered.org/u/olapola)\
**Post date:** [2 February 2019 10:25 UTC](https://discourse.nodered.org/t/node-red-google-home-integration/4829/175 "2019-02-02T10:25:46Z")

</div>

Thank you for everything! Donated 10€

---

<div class="post-metadata">

**Author:** ![Paul-Reed](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/paul-reed/32/66906_2.png) [@Paul-Reed](https://discourse.nodered.org/u/Paul-Reed)\
**Post date:** [2 February 2019 18:03 UTC](https://discourse.nodered.org/t/node-red-google-home-integration/4829/176 "2019-02-02T18:03:31Z")

</div>

What does the 'Speaker' node do? I can't see it documented anywhere.  
Not even in [https://developers.google.com/actions/smarthome/guides/](https://developers.google.com/actions/smarthome/guides/)

Paul

---

<div class="post-metadata">

**Author:** ![andrei-tatar](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/andrei-tatar/32/3780_2.png) [@andrei-tatar](https://discourse.nodered.org/u/andrei-tatar)\
**Post date:** [3 February 2019 07:34 UTC](https://discourse.nodered.org/t/node-red-google-home-integration/4829/177 "2019-02-03T07:34:04Z")

</div>

It seems there's a list of unofficial devices: [https://github.com/andrei-tatar/nora-service/issues/1](https://github.com/andrei-tatar/nora-service/issues/1)  
Speaker supports on/off and volume traits. I didn't write yet the documentation in the nora-node as it's just in testing.

---

<div class="post-metadata">

**Author:** ![christl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/christl/32/443_2.png) [@christl](https://discourse.nodered.org/u/christl)\
**Post date:** [3 February 2019 08:04 UTC](https://discourse.nodered.org/t/node-red-google-home-integration/4829/178 "2019-02-03T08:04:54Z")

</div>

Have you looked at ngrok or pagekite? I've used ngrok but it's kind of expensive at $10/month.

---

<div class="post-metadata">

**Author:** ![andrei-tatar](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/andrei-tatar/32/3780_2.png) [@andrei-tatar](https://discourse.nodered.org/u/andrei-tatar)\
**Post date:** [3 February 2019 08:22 UTC](https://discourse.nodered.org/t/node-red-google-home-integration/4829/179 "2019-02-03T08:22:08Z")

</div>

@christl You don't need tunneling with NORA. That's the whole point.

---

<div class="post-metadata">

**Author:** ![aerobert](https://avatars.discourse-cdn.com/v4/letter/a/7c8e57/32.png) [@aerobert](https://discourse.nodered.org/u/aerobert)\
**Post date:** [10 February 2019 17:59 UTC](https://discourse.nodered.org/t/node-red-google-home-integration/4829/180 "2019-02-10T17:59:55Z")

</div>

Hey! I am surprised how easy the setup was!  
But I keep getting an exception when my Google Home sends a command to the NORA devices:  
TypeError: device.setState is not a function  
at \_loop\_1 (/data/node\_modules/node-red-contrib-nora/build/nora-connection.js:48:24)  
I run Node-RED inside a Docker container on a RPi3B+  
Node-RED version: v0.19.5  
Node.js version: v6.11.0  
Linux 4.14.79-v7+ arm LE  
Maybe I missed something since I have not really an idea of Docker and only little knowledge about Linux...  
Greetz, Robert

---

<div class="post-metadata">

**Author:** ![aerobert](https://avatars.discourse-cdn.com/v4/letter/a/7c8e57/32.png) [@aerobert](https://discourse.nodered.org/u/aerobert)\
**Post date:** [10 February 2019 20:59 UTC](https://discourse.nodered.org/t/node-red-google-home-integration/4829/181 "2019-02-10T20:59:53Z")

</div>

Installed node-red directly on the RPi and i works! 🙂  
Thanks for your great work!

EDIT: ok... still the same problem. I can read device states but not set anything. The whole node-red stops working and restarts....

---

<div class="post-metadata">

**Author:** ![andrei-tatar](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/andrei-tatar/32/3780_2.png) [@andrei-tatar](https://discourse.nodered.org/u/andrei-tatar)\
**Post date:** [11 February 2019 06:38 UTC](https://discourse.nodered.org/t/node-red-google-home-integration/4829/182 "2019-02-11T06:38:39Z")

</div>

That's a weird bug. Right before `setState` there's a check if the device is found. Can you try installing the lastest `node.js`, `node-red` and `node-red-contrib-nora`? (You didn't mention the node-red-contrib-nora version you are using).

---

<div class="post-metadata">

**Author:** ![aerobert](https://avatars.discourse-cdn.com/v4/letter/a/7c8e57/32.png) [@aerobert](https://discourse.nodered.org/u/aerobert)\
**Post date:** [11 February 2019 17:17 UTC](https://discourse.nodered.org/t/node-red-google-home-integration/4829/183 "2019-02-11T17:17:26Z")

</div>

I'm using version 0.0.23 of `node-red-contrib-nora`, and every thing else is up to date as well.  
Yeah, i saw in the .js file what is happening there, but I don't know how to attach a debugger, to see what's stored in the found device.

---

<div class="post-metadata">

**Author:** ![andrei-tatar](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/andrei-tatar/32/3780_2.png) [@andrei-tatar](https://discourse.nodered.org/u/andrei-tatar)\
**Post date:** [11 February 2019 18:21 UTC](https://discourse.nodered.org/t/node-red-google-home-integration/4829/184 "2019-02-11T18:21:28Z")

</div>

You could just `console.log` the objects. Does it work in some other environment (on your laptop or something else)?

---

<div class="post-metadata">

**Author:** ![aerobert](https://avatars.discourse-cdn.com/v4/letter/a/7c8e57/32.png) [@aerobert](https://discourse.nodered.org/u/aerobert)\
**Post date:** [11 February 2019 19:28 UTC](https://discourse.nodered.org/t/node-red-google-home-integration/4829/185 "2019-02-11T19:28:55Z")

</div>

And where and how can I `console.log` them? I have no idea about development with node.js 🙈  
I tried it on my laptop and the same error occurres. Maybe it is not working since i use Google Home in German? May the German Actions API be different or not up to date?

EDIT: Okay, now i understand I can add `consol.log` right inside your .js file 😅  
The object `device` is `-1`.  
The passed `id` matches the one below.  
The object `devices` contains:  
`[NoraDevice { id: '3f7e8703.c86ea8', config: { type: 'light', brightnessControl: false, colorControl: false, name: 'Licht', roomHint: 'Wohnzimmer', state: [Object] }, connection: NoraConnection { socket: [Socket], 'destroy$': [Subject], 'deviceEvents$': [Subject], 'devices$': [AnonymousSubject], connected: [BehaviorSubject], errors: [Subject], 'connected$': [Observable], 'errors$': [Observable] }, _stateChanged: Subject { _isScalar: false, observers: [Array], closed: false, isStopped: false, hasError: false, thrownError: null }, _activateScene: Subject { _isScalar: false, observers: [], closed: false, isStopped: false, hasError: false, thrownError: null }, 'state$': Observable { _isScalar: false, source: [Subject] }, 'activateScene$': Observable { _isScalar: false, source: [Subject] }, 'errors$': Observable { _isScalar: false, source: [Observable], operator: [MapOperator] } }]`  
Hope this helps!

[Previous page](https://discourse.nodered.org/t/node-red-google-home-integration/4829.md?page=8)

[Next page](https://discourse.nodered.org/t/node-red-google-home-integration/4829.md?page=10)
