Node Red Room Aware Voice Control

I'm not too familiar with these but isn't there a way to connect these to HE?

So guessing you have that. So I don't see why it cant be done in NR.

"Alexa, ESPN" if using the driver for HE, then doesn't this allow you to set commands in the Child?
So if "Alexa ESPN" was heard in the lounge, then you use that and switch on that switch in NR.

Or am I missing something?

This supports telnet commands to the device above, works great.

2 Likes

Ah so your able to do it?

I create dummy virtual switches in HE/ Alexa. I then say Alexa turn on ESPN. I hear the chime and then the Alexa NR integration determine the Sonos name I spoke to, then routes the request to the Global Cache device via IR command in the appropriate room. You will need a mapping subflow which converts ESPN to the actual channel number with loop when sending the IR command digits. I use this with AT&T TV streaming box, works great!

1 Like

I do something similar with my Harmony, its very cool :slight_smile:

Yes, but I wanted a solution with zero cloud dependency.

1 Like

I really want to use Natural Language Processing for my smart home but also bypass skill invocation.

Does Amazon sell a business level Alexa solution that would allow me to create my own bot at the root of the Alexa device? Ultimately these results would flow into Node Red with the source Alexa device / group name. I don't want to say, Alexa launch my Home Bot. I just want to say the command directly.

Alexa, change the channel to CBS. (using NLP to parse the channel name with number entity lookup, info would be passed as msg properties)

Alexa

I am not 100% what you are asking but I think you are asking to be able to say "Change channel to CBS" when Alexa has to hear "Alexa, Ask Harmony (or similar) to change channel to CBS." If that's the case, a String Node could prepend "Ask Harmony to" to your command before sending on. Your dummy Routine would have to be the "Change channel to CBS" command.

If your request is more complicated than that, I will sit down and shut up. :grin:

1 Like

Have a look at Amazon developer to see if this meets your needs
https://developer.amazon.com/en-IN/alexa/alexa-skills-kit

I want to be able to say "Alexa, change the channel to CBS." without invocation, nor setting up hundreds of dummy routines in the Alexa app.

I would receive the following data in Node Red from the Alexa node.

msg.intent = "changeChannel"

msg.alexaSourceDevice = "Master Bedroom Echo"

msg.channelNumber = 12

Is there anyway to make create this type of experience? :slight_smile:

Tbh, i have not had a thorough look at the developer docs, but i know you can create your own skill (so no dummy routines), so i would image that, if you integrate the harmony into your own skill, it should be possible.

The whole amazon developer and AWS services is another deep rabbit hole ive only just started scratching the surface on!

I feel like the Alexa part above is your biggest hurdle. I can't come up with any logic you could implement to tell her not to go out and search the internet if your phrase is not in her "quiver" but only do that when you say specific phrases but you don't want to tell her what those phrases are.

I can't seem to get around this. My Alexa skill requires invocation always so no way to issue a direct command. We need HE to add the following, but then again if we push the command through HE, we lose room awareness since alexa doesn't support room awareness for tv, fan, etc. Currently Alexa only supports room awareness for lights.

https://developer.amazon.com/en-US/docs/alexa/device-apis/alexa-channelcontroller.html

Have you looked under the Custom Alexa Routines? They added the capability of having them issue "voice" commands - so in theory you could have Alexa tell itself to do something.

Thanks but this does not meet the variable and room awareness requirement. I do not want to create 50 routines for 50 channels. FYI - I use an IR Blaster inside Node Red for TV control.

Does anyone know if a similar NR node exists for Google Assistant when determining the source device spoken to? This would be the equivalent to "node-red-contrib-alexa-remote2".

I am in a similar position, I've used 'node-red-contrib-amazon-echo' to create virtual switches for each tv channel (I use Home Assistant/SmartIR/Broadlink but don't hold that against me!) and they show up in the Alexa app so she doesn't freak out (restart Hubitat/Node Red to reload devices afterwards). I then use room awareness in Node Red as above. To make life easier, you can create 50 'blank' virtual devices then select them all - export them as text and edit the channel names in then import back into NR. Perhaps 'blank1', 'blank2' etc then find and replace 'blank'. I've captured each number on the tv remote and am presently joining them up in the desired format eg; 2,3,4 for Discovery HD. Each channel would have to also have a switch node containing the 'payload.description.summary' = 'discovery hd', or maybe a mega-function node? Hmm. Good luck.

I went back to Google Assistant and used the community app for HE. I assigned my Sonos One GA devices to my respective rooms within the GH app. Within the GA HE app, I created a temperature control device. I then created a virtual temp device named cable box that has the temperature attribute. I shared this device with Google Home app, then created simple routines for each channel. I can now say "ESPN" and then then GA routine will invoke "set the cable box to 206". This in turn calls the setTemperature method, which Node Red listens for the temp attribute. Within NR, I then use the temp as a channel number and send to my respective IR blaster device. Works great and there is no unnecessary confirmation response!

Something else to note, I have multiple cable box virtual devices for each room, GA does a good job understanding room context despite your devices having similar names ( Living Room Cable Box, Master Bedroom Cable Box, etc).

FYI - there is a channel trait supported by GH, but it is not currently supported in the HE app below.

Here is the Google Home Community HE app.

Wow, nice work! I think I'll stick with Alexa as I have room awareness sorted already. But thanks for pointing me in a new direction, now I will use a (single) virtual Alexa light switch in Home Assistant through emulated Philips hue bridge and use the 1-254 brightness values to control my Broadlink IR blaster. If that doesn't work out then I'll try using your app through the Hubitat integration on HA. Cheers