Adjusting Thermostat Scheduler based on Temperature crossing a threshold

Well, I live in western New York. Yesterday it was in the 30s and today it got up to 65. So, i think i know about temperature swings.

Also, I would like to point out that the post by the OP.....all the settings are EXACTLY the same. So, you're not actually changing the setpoints for thermostat scheduler, since they are all the same. :slight_smile:

I live in Canada, it gets COLD (-40). When it gets that cold your outside walls/windows get cold and the house feels colder even if the air temperature at the thermostat (mounted in an inside hallway) is not any colder. To offset I would like to raise the set point of my thermostat to compensate.
Some of the major thermostat manufacturers (i.e. Honeywell) actually allow you to install an outdoor air temperature sensor to your thermostat at which point your thermostat will adjust certain parameters accordingly.
Since I would rather not buy this sensor and spend the time wiring into my thermostat (all my walls are finished), I am trying to do a similar thing in RM.

But all your settings are exactly the same. So, what are you actually changing?

Since it is not yet winter and the temperature ranges in my triggers have not yet occurred. (Other than one or two days around -3). I don't know exactly what temperatures I would like to adjust to. I do know that I would like to adjust the temperature to the level I find comfortable and I also know that it will be necessary to adjust them based on the past 15 winters living in my house. Thought I would make the rule beforehand and then adjust the temperatures based on what my wife and I feel is a comfortable adjustment (its superfast and easy to make this change to an existing rule that is functioning the way you want, as opposed to making the rule from scratch). Can't do that until the temperatures occur.

Another way to accomplish this would be to use the temperature readings of my window contact sensors, but these are battery operated and I don't know if that is the best idea.

I have a well insulated house, with windows most non-Canadians would find ridiculously expensive. But below -40, it don't matter, for my house to feel similar to what it does right know (current temperature 4 degrees) my thermostat would need a different set point.

But you just said you don't know what that setpoint is. So, how are you going to automate it?

I have a rule myself that does similar to what you are looking for. I use the attribute from my personal weather station to provide the outside temperature reading (It updates every 5 minutes per the API restrictions) I use all 38 temperature sensors combined to give me a house average inside temperature (this app updates sometimes multiple times per minute depending on when 1 of the 38 provides a new reading). As well as a few humidity sensors that average the humidity. Based upon those 3 readings Is when my Tstat is triggered on/off. Here is the thread that covers a bit more detail. Goodbye Ecobee

I think the point is comfort is relative and the goal is to determine what set of typical configurations allows most people to define comfort from their perspective. There will ultimately be outliers requiring custom RM rules, but if there are a subset of standard configurations built into a standard app, most people (80/20 rule) can get what they want without building and maintaining complex rules. The tough part will be to figure out what's the sweet spot while realizing not everyone defines comfort the same way.

You do realize that THERMOSTATS don't do this. How would you be able to make this standard when everyone's house is different? Automation is great and I'm all for automating as much as possible. But here are limits to what can be controlled automatically and when a person has to step in to make changes. I've been in North Bay, ON when it was -47 C and let me tell you, even the locals were cold. That was a very, VERY cold day. I wouldn't expect any system to be able to keep up with temps like that. Sometimes you're just going to have to adjust things manually.

So rather than pointing out the extreme outlier as a reason to not do this, I'd ask if there's a reasonable way to add configuration(s) that allow people to automate a greater amount of their situations. Isn't that what automation is meant to support?

1 Like

I will know what the setpoint is as soon as the temperature occurs. LOL.
I am not looking to have my thermostat be set to a specific temperature. I am looking for my thermostat to be set to a specific temperature that my wife and I are comfortable with. These are two different things. What this specific setpoint is (that my wife and I are comfortable with) when the outside temperature is -40, I don't exactly know. But I DO know that it will be different than the setting when it is 0 outside. As soon as -40 happens, I will adjust my thermostat (increase its setpoint) and determine exactly how much this increase is. I will then plug it into the rule you see above. Why make the rule before you know what this setpoint is? Why not, it takes me a while to make the rule like the one shown above, and I think it may have problems. I asked for help with these problems, but alas I am having this conversation.

Yeah...the rule the OP posted above. That's how you'd do it. I'm confused...the solution is already there. You want that built into Thermostat Scheduler?

Hey Ryan, I don't want to come across as obtuse, you have helped me a ton in the past and it is very appreciated. Thanks. What I am trying to figure out is how to write a rule based on temperature thresholds being crossed.
Triggers: Temperature falls below 0, Temperature falls below -10, Temperature falls below -20, Temperature falls below -30, Temperature falls below -40.
Conditions and Actions: When temperature is below 0 and above -10 do this...
When temperature is below -10 and above -20 do this...
When temperature is below -20 and above -30 do this...
When temperatures is below -30 and above -40 do this...
When temperature is below -40 do this...

The Conditions and Actions seem straight forward, I am having problems with the triggers, I don't know how to set a trigger based on a temperature crossing a threshold. Maybe my rule already does this, but I don't think so. I think whenever there is any temperature change whatsoever one of my triggers fire. Again, thanks for the help, it is appreciated.

Okay....that's a totally different question.

What you need to do is have a global variable be used to determine what range you currently are in. So, for example, we'll call this variable, tempRange. Out planned values for this variable will be.
warm
cool
cold
HFICO (holy F*&$ it's cold out)
***please note there is no "hot" as we are talking Canada. :wink:

What you would do is when you detect the temp within the range of warm, in addition to setting the temp ranges for Thermostat scheduler, you will also set the variable of tempRange to "warm". You will also add the condition in your conditional action that the variable tempRange doesn't equal "warm". That way you only set the range once when enter that range of outside temps.

I put this together quickly...it isn't complete but it will give you an idea how to start.

image

You could simplify this by
If temp>50 set warm
Else if temp>32 set cool
Else if temp> 20 set cold
Else set temp to hfcio

You'd lose extra compares that aren't needed.

Quick question, what is the difference in RM between "Set String" and "Replace String" when setting a GV from RM. Thanks.

No, you can't. Because he only wants to fire the rule once per range.

You obviously didn't try it....I think if you did, you would quickly see. Replace allows you to REPLACE part/all of a string and SET changes it to that. For example, If I REPLACE Kitchen with Bedroom in the string 'Kitchen Lights" it becomes "Bedroom Lights". :slight_smile:

I was only commenting on the temp range not the once per range. You don't need to check both bounds. You put that check inside each if and it makes it more efficient.

The temp range has to be high and low in each range because you also have to add the variable check. Because the value of the temp isn't the only thing you are checking. But don't use it....when it doesn't work, you'll see.

I did, worked splendidly. I put the temp range check in a different if inside each else if. Less comparisons on each pass that way.