Thermostat Controller: get lowest/highest instead of average from sensors?

I have Thermostat Controller reading several temperature sensors, but it looks like it can only calculate the average from all those sensors. Is there no way to get the lowest or highest temperature instead? For an extreme example, what if my goal is to prevent freezing and my three rooms are: 50, 50, and 30, so the average is about 43. If my thermometer is set to 40, then the heat won't turn on but my pipes are bursting in that sub-freezing room...

Use Rule Machine to turn on the heat when an individual room sensor is below your defined threshold.

1 Like

Sure, but then you would essentially be replacing the function of the thermostat app with rules. I guess I need to make a feature request. Probably need separate min for heat and max for cooling.

This is precisely what you are asking for as a feature! To replace the weighted average with something else, namely, a threshold that overrides the logic of the weighted average. I fail to see how it would be advantageous to put that in Thermostat Controller versus a standalone rule that augments Thermostat Controller. The latter offers much more flexibility.

When the outlying condition happens, the rule could disable Thermostat Controller, set the thermostat, and then return control to Thermostat Controller when the outlying condition is no longer the deciding factor.

But having to write min and max temp rules for each and every temperature sensor (I have 17) seems like a regression when this aspect can be managed centrally by the thermostat app. Is my scenario that rare?

There's no free lunch. So you'd have 17 special settings in Thermostat Controller. Each one of which is tantamount to a mini-rule. There is a tendency of requests to extend the functionality of apps to include each person's specific use case.

Max temp rules? For what case?

First I've never heard of such a case. I really don't know, but it seems rather an edge case to be fighting off freezing in a conditioned space where there are 20 degrees of differential between rooms. So each of your 17 sensors is prone to isolated freezing?

I don't see why having freeze-protection rules is a bad thing. Wouldn't you want to know this situation exists? So you might want to add a notification element, something easy to do in either Basic Rules or RM. All of the UI elements, event subscriptions, and execution elements would be the same either way; what would happen would be the same either way. Rules are free. You have a ready and straight forward way to deal with this automation right now.

The freezing scenario was just an example. I'm not actually trying to keep humans alive for a long space trip.

Real scenario:
I want the heat in all bedrooms to be at least 70F. Monitored bedrooms are at 67F, 71F and 71F. How do I ensure all bedrooms are at least 70F? I could use trial and error and keep raising the thermostat until the holdout bedroom is also 70F, But this course doesn't seem much smarter than winging it with a manual thermostat. Let's say I have to set it to 72F to get all bedrooms to be at least 70F. If someone else looks at my settings, they would assume I want the temp to be 72F but that would be wrong.

So you'd have 17 special settings in Thermostat Controller. Each one of which is tantamount to a mini-rule.

It would just be one or two toggles in the Thermostat Controller config:

  • Use Heating Setpoint as minimum target (ensures all rooms are heated to this level)
  • Use Cooling Setpoint as maximum target (ensures all rooms are cooled down to this level)

I know there a multiple alternative ways to not use Thermostat Controller. But I'm just surprised everyone is just getting by with a simple temperature average and then either ignoring the edge cases or just manually adjusting their target points.

Sorry, I've got to pre-quote @bravenel and say


Ah, you know it would have helped to start here instead of where you did. You don't need Thermostat Controller for this, a simple rule can do it. The Heating rule:

Notice setting the Heating Setpoint to 75. This is an arbitrary value, presumed here to be high enough to drag all of the temperatures up to 70. It could be 80, or whatever it takes. The idea is that we want the thermostat calling for heat. Then the Wait for Expression is the test that our heat demand has been satisfied, so we can turn off the thermostat, hence stopping the heating. As many sensors as needed could be added to both the Trigger and the Wait for Expression.

Thermostat Controller is the app to use when you need a weighted average of sensors. Otherwise, it's just easier to use a single rule for heating, and a single rule for cooling. Could get fancy and come up with some way to go from one to the other for seasons.

This rule could not be done with Basic Rule as Basic Rule doesn't have the condition available of All sensors above a temperature, only Any.

1 Like

Thanks for you help so far!

For the trigger rule, is there a way for the comparison to be relative to the heat setpoint of a thermostat instead of a fixed rule temperature? This is because the heat setpoint can change based on Thermostat Scheduler or manually.

I'm only seeing a way to compare temperature sensors to temperature sensors.

EDIT: I found a way to compare the thermostat heat setpoint to a single temp sensor. I think for multiple sensors, just need to add separate triggers for each sensor:
2022-11-22 07_33_24-Window

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.