Node-RED google home integration


#166

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...


#167

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


#168

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.


#169

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


#170

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.


#171

No, it's free.


#172

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


#173

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!


#174

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


#175

Thank you for everything! Donated 10€


#176

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

Paul


#177

It seems there's a list of unofficial devices: 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.


#178

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


#179

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


#180

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


#181

Installed node-red directly on the RPi and i works! :slight_smile:
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....


#182

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).


#183

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.


#184

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


#185

And where and how can I console.log them? I have no idea about development with node.js :see_no_evil:
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 :sweat_smile:
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!