Feature Request - Location aware voice assistant

I would love to see a feature where the VA is aware of what room/area it is in so that I can speak the same command in every room to run automations. This would also make it easier for guests to use it as well.

Example:
When speaking to the room aware VA in the Kitchen
“Turn on light” would turn on the Kitchen light

When speaking to the room aware VA in the Dining room
“Turn on light” would turn on the Dining room light

Should be just a matter of templating at this point.

I think it’s a little more than that. I can’t alias every light with ‘light’ in home assistant. There needs to be some context from the VA itself.

You can template every light entity and look for the attribute area and done. Not exactly that easy, but come up with a framework ans ask a good question in a template topic/tag and you may be surprised.

The problem is not templating or the automation. I could just create a trigger sentance for “Turn on Light”, however, I still need to know what area the command came from. AFAIK the metadata/context of which VA sent the command and what area the VA is in is not available, which would be essential to know what light to turn on.

The XY problem is asking about your attempted solution rather than your actual problem.

So far your responses feel more like trolling then an actual attempt to assist (pun intended). You seem to be ignoring the crux of the issue of how to know what area the VA command came from so I can turn on the light in that area.

Do you have any actual implementable suggestions? Anything with more direction other then

1 Like

The latest home assistant satellite lets you determine the hostname (and thus the area) that the voice command came from.

Combine that with the area of the device you are speaking to.

If that doesn’t work.

Here, Let Me Google That For You! Teach People How to Google.

As far as templating is concerned, I was speaking of a construct similar to this…
SlackerLabVideoExamples/2023-MasterTemplates_StateBasedEntities/script.yaml at main · thejeffreystone/SlackerLabVideoExamples · GitHub.
Where knowing the area you can find things like lights that are off or whatever,

I don’t troll, but I also don’t write code for people either other than that which I already wrote that you can copy from for an example. In this case, I haven’t worked with this stuff much, so I spent a hour or 2 researching for you. And if you commonly call people trolls that are volunteering to help you, perhaps you shouldn’t be asking for help. If you don’t find the advice helpful, fine, no reason to call names and flat out argue with the answerer.

@Sir_Goodenough I was not calling you a troll, I said that your responses felt like you were trolling me because they were cryptic and didn’t seem to relate to what my goal was. Maybe that is my fault for not articulating it well enough.

@mobile.andrew.jones Thanks for the idea, this enabled me to get part way there.

I’m using Esphome which already does support ‘Assist in Progress’. This automation gets me there but it is not robust. Basically, it can change the state of unintended lights if more then one VA is in progress. I currently only have one Esphome VA running but this would be expandable by adding more ‘Choose’ options for VA in other areas, which are also triggered by the on and off sentances.

I would not call this the solution because it is not robust. I would still like to see metadata about what VA has sent the command so the automation could be specifically based on the specific VA and/or its area.

alias: Single Light Phrase
description: ""
trigger:
  - platform: conversation
    command:
      - Turn on light
      - Turn on the light
      - Turn light on
      - Turn the light on
    id: Turn On Light
  - platform: conversation
    command:
      - Turn off light
      - Turn off the light
      - Turn light off
      - Turn the light off
    id: Turn Off Light
condition: []
action:
  - choose:
      - conditions:
          - condition: and
            conditions:
              - condition: trigger
                id:
                  - Turn On Light
              - condition: state
                entity_id: binary_sensor.office_va_assist_in_progress
                state: "on"
        sequence:
          - service: light.turn_on
            data: {}
            target:
              entity_id: light.office_main
      - conditions:
          - condition: and
            conditions:
              - condition: trigger
                id:
                  - Turn Off Light
              - condition: state
                entity_id: binary_sensor.office_va_assist_in_progress
                state: "on"
        sequence:
          - service: light.turn_off
            data: {}
            target:
              entity_id: light.office_main
mode: single

It appears my wish has been granted.

1 Like