Label entities for Alexa Custom Integration (lambda) recommendations

So I have three light switches in the basement that are Z-Wave. Want to figure out how to name them or get opinions to make things easy for my family. What I have:

  1. Main light switch at the top of the stars which turns on the light at the top of the stairs and all the cans in the main basement.
  2. A light switch in the basement that turns on a light over the sink down there.
  3. A light switch that turns on the lights in the crawl space.

I want to do two things:

  1. Be able to control each light individually by voice.
  2. Be able to turn them all on and off by voice

So was thinking for the all lights would create a group in HA called All Basement Lights which I would think you could then say “Alexa turn on all basement lights” and it would work?

But what is a good name for each individual light and is it the node name or the entity name or something else? Using the Alexa integration and not sure what it will pull in.

Right now my entities are called thinking those are what is pulled into Alexa:

Light Switch Main Basement Switch
Light Switch Basement Sink Switch
Light Switch Basement Crawl Space Switch

The above are the override entity names. Again the Alexa integration not sure what it pulls as I have it working and this will be the first item I’m actually paying attention to with Alexa right now.

Also if I want to limit just to these items and the one group so every group and entity doesn’t get blasted into Alexa’s interface how would I do that? Was reading the filter but couldn’t tell if one would be a HA group and how a domain worked. Plus if I have include_entities will more things than those come in because the example shows in the same examples include_entities and exclude_entities.

I name them individually in home assistant. For my basement…

Basement Stairs ( lights on the stairs)
Basement Cans (Ceiling can lights)

Then in alexa, I group them together as “Basement”. That way you can say:

turn on basement
turn on basement lights
turn on basement stairs
turn on basement stairs lights (you can omit the s on stairs)
turn on basement cans
turn on basement can lights (you can omit the s on cans)

This has worked well for my wife and my extended family. In the end we all just turn on the whole room, never the individual light.

Thanks Petro,

So for my group could I do something like in the groups.yaml:

basement:
  name: Basement
  entities:
    - switch.light_switch_main_basement_switch
    - switch.light_switch_basement_sink_switch
    - switch.light_switch_basement_crawl_space_switch

With the above is there a way to define that group as a “switch”?

And then as you mentioned if I say turn on basement lights it’s not going to say I do not see an item called Basement Lights? Will it basically ignore Lights or know it’s lights even though it’s a switch?

Also does the Lambda and not Haaska integration that I’m doing support something like this in the configuration.yaml or preferably place it in another file if that’s doable.

alexa:
  smart_home:  	
    filter:
      include_entities:
        - switch.light_switch_main_basement_switch
        - switch.light_switch_basement_sink_switch
        - switch.light_switch_basement_crawl_space_switch
    entity_config: 
        - switch.light_switch_main_basement_switch
            name: Basement Stairs
            description:
            display_categories: SWITCH
        - switch.light_switch_basement_sink_switch
            name: Basement Sink
            description:
            display_categories: SWITCH
        - switch.light_switch_basement_crawl_space_switch
            name: Crawlspace
            description:
            display_categories: SWITCH

With the above will Alexa then see Crawlspace as an object as opposed to light_switch_basement_crawl_space_switch? I imagine I will have to delete the long name from Alexa as apparently it’s coming across to Alexa automatically.

Also how do I limit what Alexa sees in my system just what I want it to see? If I define the above inclusion will everything else be excluded?

I typically define my group in Alexa instead of home assistant.

You can make a template switch, but it’s probably overkill. Other than that, no there is no ‘switch’ group like there is for light.

Well, yes and no, it depends on the integration. If it’s a light, you can omit the word light. If its an alexa group, it doesn’t matter, you can add switch or light at the end and it will work.

This is how it should be configured. You can filter things out. Rename, Assign different groups, etc.

alexa:
  smart_home:  	
    filter:
      include_entities:
        - switch.light_switch_main_basement_switch
        - switch.light_switch_basement_sink_switch
        - switch.light_switch_basement_crawl_space_switch
    entity_config: 
      switch.light_switch_main_basement_switch:
        name: Basement Stairs
        description:
        display_categories: LIGHT
      switch.light_switch_basement_sink_switch:
        name: Basement Sink
        description:
        display_categories: LIGHT
      switch.light_switch_basement_crawl_space_switch:
        name: Crawlspace
        description:
        display_categories: LIGHT

With this config you should only get 3 devices: Basement Stairs, Basement Sink, Crawlspace. And they’ll be ‘lights’.

Thanks. Do you think LIGHT is the right category vs SWITCH? Defer to you but just checking. Doesn’t a LIGHT category allow for changing of brightness? For these SWITCH devices they are on and off.

It could change the brightness, I’m not sure. Try it. Worse case is that you have to restart HA and rediscover. I’d think light would be best so you can say ‘light’.

OK this is super cool. Only other thing I’m curious about is could I have an Alexa yaml file? Imagine this entity list could get long. If so, what would go into the configuration.yaml and how would the alexa.yaml be setup? Here is my final setup:

alexa:
  smart_home:
    filter:
      include_entities:
        - switch.basement_light_switch
        - switch.basement_sink_light_switch
        - switch.basement_crawlspace_light_switch
        - group.basement
    entity_config:
      switch.basement_light_switch:
        name: Basement Stairs
        description: Basement lights on the stairs and cans in the main room.
        display_categories: LIGHT
      switch.basement_sink_light_switch:
        name: Basement Sink
        description: Basement sink light
        display_categories: LIGHT
      switch.basement_crawlspace_light_switch:
        name: Crawlspace
        description: Basement Crawlspace lights
        display_categories: LIGHT
      group.basement:
        name: Basement
        description: This will turn on and off ALL lights in the basement
        display_categories: LIGHT

Also since I haven’t overridden the main GUI yet and am still playing with adding everything, should the newly created group.basement be showing anywhere on the screen automatically?

Yah, check out my config, I have an alexa file.

Cool, so I moved it all out of my configuration.yaml removed the alexa: piece and put it into the alexa.yaml and looks like it’s all good. Alexa re-added the stuff I told it to forget. One last thing I think. :slight_smile:

If I want to add an intent to this file how would I format that or is this supported? I’ve seen alexa.yaml files with the above type stuff, and alexa.yaml files with intent information but never both.

its supported but I haven’t done it. Sorry can’t help there. I did it way back in the day and it was completely different then.

Yeah I tried pointing to a separate intent_script.yaml file and verify it and it passes but doesn’t seem to be recognized by Alexa. To be honest not sure how to check but the intent I use she says she doesn’t recognize and no errors in the log.

So I’m rock-in with my smart switches and Alexa turning things on and off. I prefer to do what I can in HA where I know some do things in the Alexa app. That said, if I wanted to have the same entity called by several different names to make it easier for the family to naturally ask for a particular light to turn off without being exact what is the best way to do this? So take an example:

smart_home:
  filter:
    include_entities:
      - switch.staircase_light_switch
  entity_config:
    switch.staircase_light_switch:
      name: Staircase Light
      description: This will turn on and off the upstairs hall lights
      display_categories: LIGHT

So if I want to tell Alexa:

“Turn on staircase lights”
“Turn on stair lights”
“Turn on hall lights”

Just some examples but what would be the best way to do this?