Add identification of echo device to smart home skill API calls
In my smart home skill It would be cool to have the echo device available which calls the skill.
The reason is that at the moment I have to name the smart home devices specific to every room.
So when I'm in my living room if have to say "Alexa, turn on the light in the living room" and when I'm in my office I have to say "Alexa, turn on the light in the office".
If I would see the calling device in my smart home solution I could build a virtual device "light" which would switch different actors based on where the command was invoked.
So if I'm in my office and say "Turn on the light" my smart home software would be able to determine the appropriate device.
Bryan B commented
I agree this is needed. The problem is somewhat solved by the groups feature for lighting, but not for other devices generally. Every room with an air purifier, for example, would still require "Alexa, turn on the air purifier in the bedroom" rather than "Alexa, turn on the air purifier" with the backend then figuring out which room and sending the right commands. In general the more Alexa tries to do on its own the less flexibility developers will have.
Related to that is the Alexa.Speaker interface. I thought for sure this would enable a device to be usable as the "default speaker" in a group but for some reason Alexa won't allow that. Apparently only Amazon devices and a few third party devices can be default speakers. Why can't any streaming music player be the default speaker for "Alexa, play music?" Without that flexibility, again, I would need the smart home API to send information about which Echo device received the request so I can do the mapping of generic commands to specific devices in the same room.
Also, related to this is the lack of speaker (user) identification in Smart Home Skills. In the custom skill I can get information about who is making the request and that way, for example, I can prevent children from opening the garage door or turning on the coffee maker. I know speaker identification is not "secure" but it has proven to be a good filter generally.
To summarize, the request is to do one of the following:
1) Send the device ID of the Echo receiving the smart home API interaction to the Lambda function.
2) Extend the existing "Alexa, turn on the lights" group feature generally to any user-created type of device (not just lights and speakers). And for smart speakers, allow any Alexa.Speaker interface device to be the room default.
And for both options: Please start including the personID information for recognized user voices.
Michael B. Kamen commented
Have similar challenge. If I have Alexa in 4 bathrooms and I want here to turn on the bathroom fan, would be nice to just say "Alexa, turn on the fan" and she turns on the fan in that bathroom. Trying to educate the entire family on the name of every room is impossible, as well as educating guests.
Alexa can already be named for the room it is in, would be nice just to tie that automatically to the request. If the Alexa is named "bathroom 1" then when that Alexa hears "Alexa, turn on the fan", it substitutes that for "Alexa, turn on the fan in bathroom 1". If I am not in that room, I could also say "Alexa, turn on the fan in bathroom 1" and get the same result.
If this could be updated, it would make Alexa and smart homes much more usable for everyone, family and guests, not just the programmer like me.
Chris Lenzo commented
May not be an option for all, but I use a number (14) TP-Link/Kasa controlled switches and plugs. I set up scenes in Kasa, that Echo “discovers”. Scenes can be set up to control collections of devices that can be set on/off. These can be run from any/all of my echo devices, regardless of location. “All On” or “Media On” and then the scenes can be used by routines with single command.
Can't you just say:
"Alexa, Office Light on"
"Alexa, Office Light off"?
That's just as easy as "Alexa, turn on the light."
And much easier than "Alexa, turn on the light in the living room."
Those types of verbalities work for me.
Also, if a different Echo hears you the incorrect light won't be switched.
Just a thought.
I have exactly the same scenario: More than one echo in different rooms, and I'd like to use the same Smart Home Skill to control the devices on the room where the echo is located. It's absurd to tell Alexa to turn on the bedroom light if both Alexa and I are already in the bedroom. It would be more natural to tell Alexa just to turn on the light. If we could have access to the echo's DeviceId in the skill (as is already the case with custom skills), that would be super-easy to develop.
Wesley W Parton commented
To take this a step further, Alexa should be able to identify if the lights are on or off so all you have to do is walk in to a room and say Alexa, lights. Then she would check what room and what the current state of any lights in that room are and take the appropriate action.