Alexa multiple aliases

Hi all,

I am new here after a few months of HA discovery now, looking out for some support in some of my unsolved inconveniences. Looking forward to a good exchange here.

I perceived alias are unfortunately only available for Assist and Google, not for Alexa voice assistant.
I know it’s possible to rename integrated entities in the Alexa app but it’s not possible to give multiple aliases.

For example one of my bedroom ceiling light is called „Second Floor - Bedroom - Bed Ceiling light“ in KNX and therefore as HA entity.

My wife now likes to call it „Bed spots“ and I prefer „Bedroom light corner“… there are several examples like that in our home.

I could hardly find any decent approach to configure that. Can anybody help?

not sure if this answers your question, could you add that light to the bedroom group and then add several trigger sentences to control the light.
I do something similar for myself as my wife chooses to say different terminology on some devices

1 Like

Hi, Not sure if I got it.
There is more then one light in my bedroom. Do you recommend to create several „Bedroom light groups“ each containing a single physical switchable light device and then give each group multiple aliases?

Unfortunately, Alexa doesn’t really have a concept of aliases. This isn’t because of HA, but Alexa itself.

What I typically do is create a routine in Alexa with a bunch of different voice prompts and then use that to control devices. To say it’s not fun at all (because the Alexa app is hot garbage) is an understatement. I probably have around 200-300 routines in Alexa right now for various devices around my house and I’ve gotten to the point where I don’t even bother controlling individual devices by voice. It’s way too cumbersome.

Thanks for your feedback.
It’s really a pitty that Alexa is that reluctant using aliases.
For now, I will start to create several helper groups considering the same entity and assign different names in the Alexa app….
I hope Amazon will fix it in the future because you are right, it’s kind of a nightmare.

On the other hand I like the echo dots, cheap and looking quite okay - and among other things, I already own plenty of them. So to late to move to e.g. google or apple instead

1 Like

Well. What I could suggest… if alexa doesnt know this, why cant HA not expose the aliases as “different” entities?
should be relatively easy to implement?

I might be confused at the question, but I can certainly use HA to expose an entity or script. Then use the Alexa App to create a routine. In that routine, I can add:

When:
   You say "Alexa, open sesame"
   You say "Alexa, let me in"
   You say "Alexa, break down the wall"

Alexa Will:
   Open Gate (scene from Home Assistant)

You can there in the “When” use “Say” and add multiple “phrases”. The phrases are interpreted as “Or” … so saying phase1 or phrase2 or phrase3 (and so on) will execute what you want.

So your issue with calling a light two different names can be solved in the Alexa app and not HA, but it is there. Image below shows Say with 3 different phrases, any one of which will run a Home Assistant script that opens the gate.

I extensively use Routines to control televisions, vacuum, lights and gate. Many of them have multiple phrases. THe only trick is to make them clear and not start with some reserved things (which I could never find a list of).

For instance, my wife gets up in the morning and says “Alexa, Morning Television” and it runs a script setting a few lights, turns on the Kitchen Television, tunes to DirecTV, sets to her morning news channel. By the time she gets to the kitchen from the bedroom, it is ready. Now I set it all up and the phrase was “Setup Morning TV” … but Alexa grabs “Setup” and fails to execute anything. I had to remove the “Setup” part.

The question was specifically about exposing a device with multiple “names” to Alexa (“bedside lamp”, “right bedside lamp”, “bedside lamp 1”, “bill’s bedside lamp”, etc).

I make use of routines in the same way, but it cannot be used for things like increasing brightness or things of a dynamic nature like that. So, if I have a lamp with the name “Bedside Lamp” and I want to refer to it as “Bill’s Bedside Lamp” in Alexa and control the brightness or whatnot, that won’t work in a routine with multiple phrases. So, yes, I can create a routine to turn on the lamp with multiple phrases, but I can’t create a routine to control the other aspects of the lamp with multiple phrases.

Fair. I would guess most all my uses are (more a less) like a switch. Example would be the vacuum where I say “clean kitchen”, “clean living room”, “start cleaning” … this essentially is two input_booleans and a button.

1 Like

Yeah. That’s typically what I do is well. Seems like a pretty big omission on Amazon’s part.

I was looking through some of mine. I would guess the issue is really brightness and color (if supported). Because I had this (and of course I could use multiple phrases) all would point at a single light (Pergola LEDs). Now I do recognize that I cannot tell it how bright or tell it the color using this method. That I take it is where you are saying an omission and I would agree.

May be slightly off-topic. I tend to avoid doing things the hard way

I use the Alexa-home node in Node Red and a front-end hosted by Ben Hardill.
I haven’t found anything easier for integrating devices on Alexa with Home Assistant.

Here’s my flow where I tell Alexa to turn on (or off) “Theater”.

Theater is defined on the Hardill site as a switch:

When Alexa hears “Turn on theater”, the theater node receives a turn-on command from Alexa. The flow then turns off the kitchen, hallway and dining room lights, sets the brightness of the light over the fireplace to 20%, then turns on the TV. “Turn off theater” turns everything off and turns on the hallway light.

There are some things that are just easier in Node Red, and this is one of them.

Not off topic for sure, but I get what the OP is saying now.
Your scenario doesn’t solve that (I think) … you tell me.
Can your “Alexa” command be:

Turn on
my wife says “Table Lights” and I say “Pergola LEDs”
Set whatever light that refers to whatever brightness I said with my voice
Set whatever light that refers to whatever color I said with my voice

So essentially … if my Wife says “Alexa, table lights 50% green”
and I say “Alexa, Pergola LEDs 50% green” the exact same thing happens.

Meaning you can use voice to not only select one thing by different names, you can set the actual brightness and color.

AFAIK … You can turn things on/off using multiple names BUT you can only do #2 (brightness, color) by using the exact name and not the collection of names the family may call them.

I would note I have almost you exact example, no Node Red at all. Just one script in Home Assistant. AND i can call it 10 different names in Alexa. Because you are setting light over fireplace to 20% … what if you want it to be “X%” where “X” is in the Alexa command. As in your command was “Turn on theater with fireplace 50%”. If you could do that in Node Red + Alexa, I would implement Node Red in a heartbeat.

Take this:

alias: Dax Outside
sequence:
  - service: media_player.turn_on
    target:
      entity_id:
        - media_player.xantech8_deck
        - media_player.xantech8_hot_tub
    data: {}
  - service: media_player.volume_set
    data:
      volume_level: 0.2
    target:
      entity_id:
        - media_player.xantech8_deck
        - media_player.xantech8_hot_tub
  - choose:
      - conditions:
          - condition: state
            entity_id: input_boolean.spoton
            state: "on"
        sequence:
          - service: input_select.select_option
            data:
              option: WiFi
            target:
              entity_id:
                - input_select.dax_source_deck
                - input_select.dax_source_hot_tub
          - service: media_player.select_source
            data:
              source: WiFi
            target:
              entity_id:
                - media_player.xantech8_deck
                - media_player.xantech8_hot_tub
          - service: media_player.select_source
            data:
              source: Rio Crest Zones
            target:
              entity_id: media_player.spotifyplus_kevin_brown
          - service: media_player.volume_set
            data:
              volume_level: 1
            target:
              entity_id: media_player.spotifyplus_kevin_brown
          - service: media_player.media_play
            data: {}
            target:
              entity_id: media_player.spotifyplus_kevin_brown
      - conditions:
          - condition: state
            entity_id: input_boolean.volumion
            state: "on"
        sequence:
          - service: input_select.select_option
            data:
              option: Volumio
            target:
              entity_id:
                - input_select.dax_source_deck
                - input_select.dax_source_hot_tub
          - service: media_player.select_source
            data:
              source: Volumio
            target:
              entity_id:
                - media_player.xantech8_deck
                - media_player.xantech8_hot_tub
          - service: media_player.select_source
            data:
              source: Rio Crest Zones
            target:
              entity_id: media_player.rcvolumio
          - service: media_player.media_play
            data: {}
            target:
              entity_id: media_player.rcvolumio
      - conditions:
          - condition: state
            entity_id: input_boolean.pandon
            state: "on"
        sequence:
          - service: media_player.select_source
            data:
              source: MintyFresh
            target:
              entity_id:
                - media_player.xantech8_deck
                - media_player.xantech8_hot_tub
          - service: media_player.turn_on
            data: {}
            target:
              entity_id: media_player.pandora
      - conditions:
          - condition: state
            entity_id: input_boolean.sportson
            state: "on"
        sequence:
          - service: input_select.select_option
            data:
              option: PatioVizio
            target:
              entity_id:
                - input_select.dax_source_deck
                - input_select.dax_source_hot_tub
          - service: media_player.select_source
            data:
              source: PatioVizio
            target:
              entity_id:
                - media_player.xantech8_deck
                - media_player.xantech8_hot_tub
          - service: media_player.turn_on
            data: {}
            target:
              entity_id:
                - media_player.patio_vizio
          - service: input_select.select_option
            data:
              option: DirecTV
            target:
              entity_id: input_select.patio_vizio_input
mode: single
icon: mdi:music

Lots of stuff, but I have an Alexa Routine (“Play music on deck”). …
Essentially that only turns on an input boolean.
And then runs this script among several others for lights and stuff.
You will note this one line:

volume_level: 0.2

Because I cannot say in one line … “Play music on deck at 15%” or “30%” or “50%”.

Not to mention that I also cannot say “Play {spotify/pandora/volumio/whatever other inputs I have} on {location} at {volume}”.

Now if Node Red solves that, please tell me and I will implement the greatest solution ever for my system.

Right now, I have this which is acceptable but cumbersome and only supports one input which is OK but not generic:

“Alexa, Play Spotify on Deck
“Alexa, Set Music Group to Wine Tasting
“Alexa, Set Volume to Party

Three commands. One to start music, one to set what speaker set to use, one to set the overall volume using known increments by a name. if that could be a one liner, wow. I believe not possible.

There are 5 inputs (Spotify, Pandora, Airplay, Television, Volumio)
There are 6 location groups.
There are 5 volume levels.