tl;dr: how do I expose areas / zones to the Alexa so I can control them with voice commands?
I am trying to consolidate as much as I can into the HA ecosystem. At the moment, I have to define a “room” in TWO places (once in the Alexa system, and once in home assistant) in order for the Alexa to understand when I ask for a “room” to turn on (e.g. “Alexa, turn on the kitchen”).
I would rather only create ONE room in the HA and have the Alexa ecosystem “know” about it. However, there is no “Voice Assistant / Expose” option for rooms.
If you are using HA rooms from areas /zones in HA, how do you go about letting Alexa “know” about those rooms so it can control them?
So, I tried something last night and it… didn’t work.
Specifically, I removed all the “rooms” from the Alexa ecosystem and then went in and removed the “expose” attribute on all my individual light bulbs.
Then, in Home Assistant Helpers / Light Group, I created a group with a room name such as “living room” and added all the individual light bulbs to that group (e.g. Lamp1, Lamp2 etc).
I then exposed that light group name to Alexa. The Alexa app on my phone then announced that a new device called “living room” had become available and I could see that “device” in the Alexa app.
HOWEVER
When I addressed it by name such as “Alexa, turn on the living room” Alexa would reply with “I don’t know that”.
My guess is that Alexa has given the word “room” specific meaning and only refers to that word within its own ecosystem.
Also, even if I did get Alexa to recognize a device named “Living room” the other thing that would happen is I would lose the context ability that Alexa normally has. Specifically, if I create a “room” in the Alexa app, then add an Echo unit to that room, and add lights to that room, if that echo unit hears “Alexa, turn off the lights” it will turn off just the lights that are a member of that room. ¯_(ツ)_/¯
So, I figure I am going to go back to creating and maintaining rooms inside the Alexa echo system unless/until someone has a hint on how to a) get HA to expose rooms and B) Alexa becomes able to recognize HA exposed rooms for context-sensitive commands.
I was searching for exactly this problem and saw your post, I too cannot find any way of publishing HA Rooms/Zones to Alexa so Alexa uses them as Rooms. I too want ONE master list in HA of my Rooms and for this to populate out. Anyone have any other ideas on this topic?
For what its worth, I haven’t solved this issue yet.
In order to take advantage of the “context” function of Alexa, I still have to expose individual devices to Alexa and then group them into rooms inside the Alexa ecosystem.
For now I am maintaining two places where I have devices grouped into rooms. Would love to find a solution to this sometime in the future. ¯_(ツ)_/¯
I found a solution that I am hoping Home Assistant will automate in the future (since they already bunch lights by room in Overview), but isn’t too bad unless you have 20+ areas in Home Assistant with lights.
Create one light group in Home Assistant (Settings → Devices → Helpers) for each room with lights (so I have groups like office lights, kitchen lights, etc.).
Expose all the light groups to Alexa.
In Alexa, assign each light group to Alexa’s representation of rooms (which they call groups). May be 1:1 with HA areas.
The primary benefit of this is that adding a light to a Home Assistant light group takes care of both control in Home Assistant and Alexa. This is as close as I could get to syncing HA areas to Alexa rooms.
A downside to a purely light group approach, besides the redundancy of having 1:1:1 light group per HA area and Alexa group, is you lose control over individual lights via Alexa. In 95% of cases I haven’t wanted individual control, and when I do I usually do it in Home Assistant using device quick search. However if you want individual control in Alexa you can expose a one-off individual device to Alexa, and either not add it to a light group or have it both in a light group as well as individually exposed to Alexa.
By no means perfect, but so far this approach has covered every use case I have come across.