Give users the ability to select a different external temp sensor for their thermostat

See picture below. Google has been allowing the ability to select external temperature sensors for years. Ecobee has something similar. Perfect for people who have thermostats in a completely different part of their house.

I use this every night to ensure the temperature in my son’s bedroom (which is usually the coldest) is set to a more comfortable temp. Yes, this slightly raises the temp in the whole house, but better than trying to guess what temp I should raise the main thermostat temp to get a better temp upstairs.

Would love to finally be completely off the Nest app, and see HA implemented even better by allowing for usage of temp sensor templates, so I can create my own sensors to use, like “upstairs”, which would be an average of all temp sensors upstairs.

You’d better specify which integration you’re interested in. Not all behave the same.

A workaround is to create a generic thermostat, which allow you to specify any sensor for temperature.

1 Like

I don’t believe this would be an integration. This would be an update to the standard climate card that allows for adding 2 or more additional temperature sensors to the UI, and the selection of one of them as the set point. That way, just like the image, you can select which temp sensor you want to use from the UI.

Unfortunately everything I’ve read says that the generic thermostat integration can’t do what I’m stating. While, yes, the code can be written to use a different temp sensor as the one providing the set point, it lacks the flexibility of manually changing the sensor via the UI throughout the day. As far as I’m aware, to do so, I’d have to update the sensor used in the code for the integration everytime which doesn’t pass the WAF. :slight_smile:

Why not simply add a temperature sensor via an entity card.

Because that would just display the other room temps. I’m trying to not just see the other temp sensors around my house, but to make one of them a set point for the thermostat.

The set point is the target temperature.
I now (think I) understand you want to be able to select the source temperature sensor at will, but your feature description is a bit confusing.

I would use a generic thermostat, with the source sensor being a template sensor that would take your son’s room sensor past a certain time, and another one otherwise.

1 Like

Or could be chosen from a drop-down.

2 Likes

To @nickrout 's suggestion, would I be able to just create an input_select dropdown and a template as the source temperature with generic thermostat? Additionally, would I be able to create automations that set the source from the dropdown automatically based on time of day, etc.?

@nickrout - Any help you can provide as well would be greatly appreciated.

I’m a bit stuck at the moment on two different parts… And perhaps this is where I need to revise my feature request.

  1. I’m using a Nest thermostat, so my thermostat appears as a climate entity. The generic thermostat requires a switch to control heating OR cooling (on/off). Would prefer if I could use this and just move between HVAC modes
  2. I created a template sensor that takes the input from the “Thermostat target” dropdown and makes related room temperature the state of “Selected room temperature”. However, when setting up a generic thermostat, I can’t select “sensor.selected_room_temperature”. The helper is only allowing me to select individual temperature sensors.

Goal: Be able to select a room from the dropdown. See the thermostat change to reflect the current temperature of a room. Then manually adjust the thermostat to what temperature I want the desired temperature to be for that room. Yes, the house will heat or cool to achieve this but it gives me more precise control over my climate controls.

Here’s a visual:

Note: The dark thermostat card at the top shows the current temp of my living room at 69 F, with a current heating level of 66 F, so that’s why heating is currently off. While it looks like it’s all working together, it’s not. The dark thermostat changes the room temperature (69 F in this case) only in the Nest app.

This has been a long-time known annoyance, for me included. If I recall it has to do with something on Google’s end with the Nest API and how it doesn’t even work with Google’s own temperature sensors and why we even need the Nest Protect integration.

I was just thinking a few days ago that it could maybe be done with a script that is triggered by a present detection or a dash button that would tell the thermostat to set based on the current temp and the temp at the sensor. Haven’t started one but it was just me brainstorming.

Actually, someone already did this with Ecobee and I want to get this done with Nest before I give up and switch to Ecobee. https://www.youtube.com/watch?v=snVQHsnG_V4

Not quite what you’re looking for but, hopefully, this might be useful.
I’m using the Thermostat card and a template that averages two temperature sensors (in a large open plan area). The template acts as the ‘current temp’ for the Thermostat.

You could write a template that, based on time or the state of a helper, returned the temp state of one or the other sensor (rather than averaging).

I would think that you could, if you want to choose from multiple sensors, select the required sensor from a list and that is used by the template (ie as the current temp of the thermostat).

could you post how exactly you did that?

I created a helper that calculates the mean of 3 temp sensors. I then use that sensor as the thermostat room temperature.
Settings - Helpers - Create Helper - Combine the state of several sensors
Give it a name. Select the entities you want to use, set the ‘statistic characteristic’ (arithmetic mean, in my case) and the precision (eg 1) and submit.

You now have an entity that can be used in the generic thermostat card.

You can also do the same with a template sensor. For example, I wanted an entity (HSVTempDelta) for a temperature delta (ie difference between max and min temperatures of a battery).
In the configuration.yaml : template: !include templates.yaml
Then in the templates.yaml :

- sensor:
    - name: HVSTempDelta   # battery cell temperature delta
      unique_id: 10240005
      state: >
        {% set Tmax = states('sensor.byd_max_temperature') | float(default=0) %}
        {% set Tmin = states('sensor.byd_min_temperature') | float(default=0) %}
        {{(Tmax - Tmin) | round(1) }}
      unit_of_measurement: °C
      device_class: temperature

I hope that helps.

1 Like

Hi all - It looks like the Generic Thermostat method referenced above requires the thermostat to work as a switch. I have a Nest thermostat which comes into HA as a climate entity. So I’m unable to go this route. Still looking for another route.

Make yourself a switch entity…

There is also a custom integration, Template Climate, that is kind of a combination of Generic Thermostat and a Template switch rolled into a single entity.

Doesn’t explain how to physically turn your climate/thermostat on. I used my existing thermostat as the “switch”. But I don’t see how you force the physical thermostat to turn on heat just because the generic thermostat says it should be on? I’ve used a temp sensors in another room (72°), I’ve set the generic thermostat to (73°), and it says it’s heating.

But the temp at physical thermostat is actually 74°, so it won’t actually turn on heating.

It can be different depending on the end device. The most common method is to use the turn_on and turn_off configuration variable of the Template Switch to construct sequences of actions which set the physical thermostat set point to an appropriate value. This can be an extreme value that will never actually be met or a more specifically adjusted value.

I thought about doing that just seems a bit sketchy. I’ll have to noodle on it a bit more before going that route.