Using Assist to get the temperature of a room

Hey there,

I think I am just too stupid to use Assist correctly.
I have a sensor with device class temperature assigned to my bedroom. When I ask assist “What is the temperature of bedroom” I get “Unexpected error during intent recognition” back. In the logs it is stated following: Unknown intent HassClimateGetTemperature.

Is it because it is just of type temperature and not in the domain climate?

I am very confused by how this should work and did not find any information that could help me either here or in the github repo.

Any help or more docs I could read into is appreaciated. Let me know if I should provide anything else.

Best wishes,

Tim

The error message is a bit strange because it implies both knowledge and un-knowledge of the intent…

That could be part of it. There is currently an issue with a few intents like this and windows/doors because they only query one domain. In your case, only climate entities are queried for the HassClimateGetTemperature intent.

There is an architecture discussion on this topic.

By changing your phrasing slightly and giving your temperature sensors Aliases, you may be able to work around this limitation. If you assign the alias “Bedroom Temperature” to the sensor entity you can get probably get the answer you need by asking “What is the Bedroom temperature”.

image

I have not tested this work around in other languages so YMMV.

Hi @Didgeridrew ,

yeah that workaround works in English but the problem I have (in German) is that “bedroom” is also an area which leads to the same problem with the unknown (but somehow known) intent of getclimate being tried to match.

But knowing that there is an ongoing discussion about this in general seems to be good information I will keep in mind. Thank you!

I definetly have to put more work into understanding intents and the whole assist thing in the future, way to go!

Other ideas…

  • If I remember correctly, sentences used as triggers get priority over built-in intents, so you may be able to set up an automation to handle rooms that don’t have climate entity-based temperatures.

  • It’s a bit of a kludge (and it might be more effort than it’s worth), but you could setup “virtual” climate entities using the Generic Thermostat integration.

I decided to use a generic_thermostat and it seems to work perfectly. Just needed to set up a dummy switch and pass my temperature sensor to it. Now I get the correct answer when asking “What is the temperature in Bedroom”, thank you very much!

Sadly this is without °C but I guess I will figure out how to do that as well.

I just stumbled on this topic when playing with my new Home Assistant Voice PE.

I was asking assist what the temperature was in any of my rooms, but he was unable to answer this.

I have sensors (type ‘temperature’) for every room in the house. I don’t have thermostats in these rooms, since I am not able to control the room temperature (at least not via HA).

So I created a generic thermostat (and also a dummy switch) so the voice assistant is able to answer my question.

Isn’t there a better option? I don’t think creating two dummy-entities per room, just to get a voice question answered is a sensible solution.

3 Likes

I’ve also been having a play with my Home Assistant Voice PE.

What worked for me, was going through Settings, Voice Assistants, then showing the exposed entities and adding an alias such as ‘Living Room temperature’ to the relevant entity.

Then it just works, so long as I use those exact words of course.

This is what I see in the documentation:

- sentences:
      - "wat is de furnace temperatuur?"
    intent:
      name: HassGetState
      slots:
        domain: sensor
        device_class: temperature
        name: "Furnace"
    response: "Furnace is 380 °C"

This is my sentence and assist’s feedback:

image

This is the entity that should have been identified:

image

image

So what is the actual sentence I should have used?

This is the YAML of the related entity:

sensor: 
  - platform: min_max
    entity_ids:
      - sensor.temperatuur_keuken_1
      - sensor.temperatuur_keuken_2
      - sensor.temperatuur_keuken_3
    type: mean
    name: Temperatuur_Keuken
    unique_id: Temperatuur_Keuken
#    device_class: temperature

I can’t add a device class, since it results in an error. So what approach should I follow?

Funny, i’ve had exactly the same problem. Here is what i’ve created to read the temperature sensor of any room How to read the area where the voice command was activated? - #2 by Hell255

It just picks the first one.

Thanks a lot, I’m going to try this. However, this is still a workaround in the same way as creating a dummy thermostat for every room…

1 Like

Oh that looks promising, I will try that once I get my Voice Assistant!

1 Like