Custom temperature sensor for Thermostat

Is it possible to use a different temperature sensor instead of the one in my thermostat to control the thermostat with a Home Assistant Automation?

I have Nest Thermostats, but I’m thinking of using moving to Ecobee to be fully offline.

I know those of those systems let you have external thermostats as your temperature sensor, but you have to pick which one you want (at least with Nest), and the batteries died. I don’t wanna replace the batteries in mine; I"d rather just come up with a completely different paradigm.

I’m wanting to do something more advanced:

  1. Using presence detection to figure out the room I’m in.
  2. Get an average of the temperature from multiple in-room sensors of my choosing.
  3. Use that temperature as the current room temperature.

Is that possible to do with either Nest or Ecobee? Is there a better thermostat for this purpose?

Use a template sensor to choose / combine the in-room sensors as you want.

Then use a Generic Thermostat with that sensor as the input.

2 Likes

Ah neat! So I’d take the one off the wall right?

This is an idea I’ve had; removing my thermostats from the walls and using other sensors in the rooms, then attaching them directly to the zoning panel in the HVAC room!

Sounds like it’s already a thing, and it can work for me!

REALLY COOL :slight_smile:. I’ll look into this more.

Yeah, you don’t need the switch itself to be on the wall. My system looks like this:

where I have a simple sensor on the wall using the old thermostat wiring for power.

  • Good position for a room sensor
  • Good position for a display
  • Saves filling up the hole left by the old thermostat
  • Future-proof in case we move and need to revert to a “normal” system

but you could equally use any temperature sensor.

1 Like

I looked into the generic thermostat idea, and while I like it, it seems like I’m programming a thermostat from scratch with very little help.

I have 2-stage heating, and a simple on-off switch won’t do it. And if I switch to a dynamic airconditioner fan, one that can spin up and down at any speed like a ceiling fan, I think that would be very hard to integrate with a simple on-off relay.

I think the Generic Thermostat is best with radiators or heated floors or 1-room mini-splits, not with multi-zone whole-home force-air when you have multiple stages of heating and cooling. Doesn’t mean you can’t use them for your house, but doing so requires a lot of custom configuration and automations.

I’m wondering if I can accomplish what I wanna do with Nest, Ecobee, or a better brand of thermostat (for Home Assistant). I wanna tell that device “your temperature doesn’t matter, use this other thermostat instead”. Is that possible?

Were you able to find a solution? I have 6 Nest Sensors and a Gen 3 Nest Thermostat. I’d love to be able to create custom template sensors that average out the readings from these, then use to control my thermostat manually or via an automation but surprisingly I can’t seem to find anything.

Settings, Devices & Services, Helpers, Create a helper, min/max, set to arithmetic mean and add your sensors. Like this:

If you have access to the switch on your heating, simply set up a Generic Thermostat with the new average temperature sensor as the sensor, and the heating switch as the switch.

1 Like

I really appreciate it. Is there a way to be able to change the template sensor being used though? For additional flexibility I’m ideally looking to be able to manually change the sensor used, say in the evenings during bedtime to use an average temp upstairs, whereas during the day to use an average of the temp downstairs.

The Nest thermostat has the ability to change the sensor used for your home thermostat to an external temp sensor you setup in another room. So if my office is much warmer, the thermostat sees that temp and allows me to cool my whole home until my office is the desired temp.

You can’t dynamically change the template sensor entity that the thermostat uses, but you can get that sensor to do pretty much whatever you want. Decide exactly what logic you want, list all of your entity IDs and we can help. For example, a template sensor with a state template something like this:

{% if 7 >= now().hour >= 22 %}
  {{ (states('sensor.downstairs1')|float(0) +
      states('sensor.downstairs2')|float(0)) / 2 }}
{% else %}
  {{ (states('sensor.upstairs1')|float(0) +
      states('sensor.upstairs2')|float(0)) / 2 }}
{% endif %}

I’m looking into Generic Thermostats again. I created a new thread since it’s technically a different topic than this one: