How to get a thermostat temperature setpoint by voice query on Voice Preview

When querying Voice Preview about a climate entity, I can’t get it to give me the setpoint.

If there is a valid query for getting the setpoint, I’d like to know what it is.

I know I can do it using custom voice commands, but this should be built-in should it not?

Why should it? No it’s not - not exactly. But you need to know what’s going on as to understand why it’s not just ‘there.’

EVERY thing that a voice assistant can do requires code - a tool. Tools don’t get made until they’re required. All the things Assist can do has an intent (tool) somewhere that enables it OR the state data readily answers the assistant’s question. Climate set is NOT in the state - it’s an attribute.

The HASSClimateSet (may be incorrect name im not looking it up rn) tool is only a setter. The entity state is current exposed temp. THEREFORE you either need a tool to go reach inside the attributes and expose the setpoint to your agent or give it another way to get it.

The likely reason it’s not done yet is - not all climate ents are the same so you need to account for the cases of what IS the setpoint?

this is my current thermo: (American Standard / Trane)

hvac_modes:
  - "off"
  - auto
  - heat_cool
  - heat
  - cool
min_temp: 55
max_temp: 99
target_temp_step: 1
min_humidity: 35
max_humidity: 65
fan_modes:
  - Auto
  - "On"
  - Circulate
preset_modes:
  - None
  - Home
  - Away
  - Sleep
current_temperature: 74
temperature: null
target_temp_high: 78
target_temp_low: 74
current_humidity: 33
humidity: 45
fan_mode: Auto
hvac_action: idle
preset_mode: Home
dehumidify_setpoint: 45
attribution: Data provided by Trane Technologies
friendly_name: Home Thermostat
supported_features: 415

So which one IS the setpoint? :slight_smile: (I know which one it currently is, but I also have the advantage of seeing the thermo changes.) The real answer is it depends on which mode the system is actually in as to what is the ‘setpoint’ and your tool needs to accommodate it.

If you’re using Speech to Phrase your tool MUST do this for you. If you’re using LLMs and have a tool that dumps entity attributes you just have to tell the LLM what attributes do what.

So no the tool doesn’t exist yet and it’s not quite that simple.

1 Like

This is the only built-in command (besides setting the value) for the thermostat from the standard set for obtaining information.

Btw. this seems to have changed.

GetLiveContext returns this for all of my thermostat, which are from 3 different manufacturers:

    - names: Thermostat Büro
      domain: climate
      state: heat
      areas: Büro, Gästezimmer
      attributes:
        current_temperature: 20.4
        temperature: 20.5

So I guess with an LLM it might also work without extra tools now.
temperature is here always the setpoint and current_temperature the measured temp.

1 Like

If the integration stores it’s set point under the temperature attribute yes. But *points up at mine…

1 Like

Below is a typical climate entity in my setup (same as @Thyraz):
The set point is the attribute “temperature: 18”

hvac_modes:
  - "off"
  - auto
  - heat
min_temp: 5
max_temp: 30
preset_modes:
  - none
  - away
  - temporary
swing_horizontal_modes: null
current_temperature: 21.7
temperature: 18
hvac_action: idle
preset_mode: none
swing_horizontal_mode: null
alarm: 0
keypad: Unlocked
backlight state: Unknown
backlight_idle: "Off"
display2: Setpoint
heat_level: 0
pi_heating_demand: 0
rssi: 0
wattage: 3719
wattage_override: 3719
server: 1
id: fc630100
unit_of_measurement: °C
device_class: temperature
icon: mdi:home-thermometer
friendly_name: Living Room thermostat
supported_features: 913

Anyway, thanks for the replies. @mchk answered my first question in that this functionality is not built-in. Intuitively, I thought querying the setpoint of a heating thermostat was quite basic (Alexa and Google home are doing it.…) but if it’s not, it’s not!

I’ll write my own automations to get it done is all.