Voice, location specific context, think "TV" not, "Lounge TV"

Hi guys,

With the increasing prevalence of Voice assistants allowing us to control Home Assistant with our voice, it’d be great to take advantage of the context of the control. E.g. from where am I issuing this command?

Use case:
I’m in the “Lounge”.
I have a media player defined as “Lounge TV”.
I ask “Lounge Dot”: “Alexa, turn on the TV”.

Although I also have “Bedroom TV”, Home Assistant knows to turn the “Lounge TV” on, because the command was issued in the “Lounge”.

I imagine for something like the simple Hue integration this would mean maybe creating virtual devices, but the full integration could work quite nicely.

I’m not sure if Alexa passes on its identity in anyway when connecting to a skill, but this could be supplemented by the client IP address of the Alexa device being mapped somehow.

Thoughts?

I tried to do this using the room presence component using happy bubbles Bluetooth receiver and carried a Bluetooth low energy beacon around the house with me. Worked ok but very difficult when there’s more than one person in the house.

Would be awesome if you could differentiate multiple Echos into HASS, maybe that will come at some point?

1 Like

Totally unhelpful but I do recall running across something somewhere once upon a time where someone did create an Alexa skill that knew which one you asked so it could do exactly this sort of thing. The info has to be in there and should be easy to get. I’m guessing the initial design didn’t necessarily account for you to have 10 of these things spread across your house. And in some cases across multiple houses. They (alexa) already has room assignments in the app. If we could pull which dot got the request it would be so much more useful.

1 Like

Alexa does actually now give a unique “Device ID” in it’s response. I think this was introduced in around April…

Would be good to do something like this:

 alexa:
   - deviceID: "1234567890"
     friendly_name: "Downstairs"
   - deviceID: "0987654321"
     friendly_name: "Upstairs"

And then trigger depending on the deviceID of the Echo

intent_script:
PlayTV:
DeviceID: “downstairs”
action:
service: input_boolean.toggle
entity_id: input_boolean.play_tv_downstairs
speech:
type: plain
text: >
OK. Enjoy.

intent_script:
PlayTV:
DeviceID: “upstairs”
action:
service: input_boolean.toggle
entity_id: input_boolean.play_tv_upstairs
speech:
type: plain
text: >
OK. Enjoy.

3 Likes