Node Red Room Aware Voice Control

Hello all. I want to be able to say a direct command against Alexa or Google Assistant without skill invocation, and then receive the request within Node Red along with the originating device serial ID or friendly name. This will enable room awareness within NR.

Alexa, turn on the toaster.

Node Red receives the following...

requestMessage "Alexa, turn on the toaster"
deviceSerial: "XYZ"
deviceFriendlyName: "Office Echo"

Any ideas how to make this happen?

Try the node-red-contrib-alexa-remote2 pallette and take a look at the portion of this other thread where I use it to recognize which Echo I am speaking.

Keep reading post after mine because @Royski took it to the next level and doesn't use the Alexa skill anymore.

4 Likes

And still growing :joy:

4 Likes

Awesome! Did you require individual generic virtual switches to be setup for this when registered to Alexa? Like, lights, fan, toaster, etc... Or did you setup routines in the alexa app? Any high level setup info when connecting the Alexa palette in NR?

Also, I'm getting the following error. Any ideas?

You need the node-red-dashboard and node-red-contrib-alexa-remote2 palettes.
Once installed, you need to configure the node-red-contrib-alexa-remote2

I followed the instructions here to get it connected.

Once you have it connected, you can copy and paste the flows here, and this will provide you with a Web page where you can navigate and execute things on Alexa, but this isn't a must, its a Very nice to have :slight_smile:

Then you can start creating flows using Alexa in them :+1:
And once connected, you should see this under the node.

image

If not, its not connected.

2 Likes

I want to highlight something from the webpage that Roy pointed to:

File Path is the place where you should type something/anything, meaningful to you like “authFile”. The plugin will create a file with that name and inside the file, it will store your encrypted Amazon credentials. This is needed because otherwise it will ask you to re-login every time you re-deploy your Node-RED flow.

When I installed and started using node-red-contrib-alexa-remote2, I didn't know this was required. Just as stated in this excerpt, each redeploy requires you to reauthenticate with Amazon. I was about to either abandon this node or at least whine about it stopping working to Roy when I decided to read the guide that he linked to. This very simple fix took away the only downside of these nodes. Effectively this was user error on my part.

Thanks for letting me find the error of my ways with a great pointer.

2 Likes

I don't have docker installed so I think I am missing a compotent. Which software should be listening on localhost:3456?

the node itself is listening to that port and then proxies your login to Amazon. It then uses the captured authentication do all of the interactions that the nodes expose.

That's the problem, nothing is listening on 3456. I have node red installed on Windows, port 1880. Should I also have an app listening on 3456? Again, I wasn't able to install the Docker image, I don't have Docker. Do I need Docker?

I am running in docker, but I don't think that has anything to do with it.

When you first deploy on of these nodes, it says open ....:3456 in a browser. The node itself is listening. The node looks like this before the authentication (imagine it says open browser instead of Ready)
image
Once you have done the authentication, then it changes to ready.

Just to be clear. Install the pallette. Add a node to a flow. Deploy the flow. Then you should see the open your browser message.

1 Like

Correct - I use alexa-remote2, but not docker. Just wanted to add that the listener process is terminated when authentication is complete.

I'm getting this message when clicking on the Get Echo Devices node. Does it matter if I'm using Sonos One with Alexa?

No - I have two of those.

Hmmm, not sure what I'm doing wrong.. I did install the needed nodes.. 1) node-red-dashboard
2) node-red-contrib-alexa-remote2

Here's mine:

1 Like

No need for docker if you already have NR installed somewhere.

1 Like

If your using localhost, then after configuring as you have, you need to open http://localhost:3456 then follow the steps to authorise your amazon account.

1 Like

I'm not able to get to this URL, because I can't deploy the flow.

Does the file path need to be something special in Windows? Maybe Windows is not allowing a write due to permission.

C:\Users\jlpoeppe\AppData\Roaming\npm\node_modules\node-red

Very possibly.

Can you open this page? http://192.168.1.138:3456 ?

1 Like