Ecobee winter piston design


#1

This is going to be a “piston development” thread, taking an idea through the process of getting it from just an idea to a functional piston. Mods, feel free to move this post if there’s a better place for it.

I have an ecobee4 which works fairly well. It has a remote sensor, for which “follow me” is enabled. All works approximately as it should. But here’s the issue: the more windy and colder it is outside, the more different the comfort experience is. A thermostat setting of 70 feels far different on a morning like today, where it’s 39 degrees with light wind, than it does when it’s 17 degrees out with 25mph gusts.

So I’m (hopefully) going to design a piston that accounts for this, and raises/lowers thermostat temps accordingly.

First thing is to grasp how the ecobee works, and thereby deduce the optimal method. I could try to come up with something that actually raises/lowers temps by number or something. But of course, it has “comfort settings” which can be called by name in pistons. So I’m going to build a few such settings, and try to have them kick in based on external conditions. They might be the following:
Home - winter - normal - 70 on ecobee
Home - winter - cold - 71 on ecobee
Home - winter - very cold - 72 on ecobee

I will have to do likewise for the ‘away’ settings, as some new pets are coming in and will also need to be comfortable while we are at work.

And then I will attempt to associate them with varying conditions. Today would be a ‘normal’ day. A 10 degree day with relatively calm winds might be a ‘cold’ day; a 20 degree day with gusty winds might be a “very cold” day. Whether it’s very sunny or cloudy, or raining or snowing etc, will also affect this.

So that’s the basic outline.
I’ll post my progress.


#2

Ok, first and most basic test. I was running it every minute at first, but have already spaced that out to 15 minute intervals and will likely space it further as I go on. I set up variables to capture windspeed, sun level and precip conditions, and the first step is simply to ensure I’m getting an actionable value and can compare it to a range - and based on that ‘normal’ range, have the thermostat return to its normally scheduled comfort setting:

EDIT: in the past this would have worked. But the old ecobee connect app seems defunct. So I installed the new ecobee suite, and it now works with setThermostatProgram the way I want.

So now it’s about honing parameters to get the desired results. I’m trying to develop some sort of sliding scale similar to windchill/real-feel. Thing is that within the walls of a house, you can’t use as simplistic a formula as that… so I’m experimenting with it. Glad I finally got a new pc at home so I can run this in a spreadsheet.


#3

I have an ecobee 3 lite and what I would recommend is using exterbal sensors placed in an area that is typically colder on blustery days. I too run into this in the winter. I work from home and my desk is on an exterior wall. So, when it’s blustery out, I have to crank the heat a couple degrees or it’s too cold. But the Ecobee doesn’t like manual settings of temp. It’s all about the comfort profiles. So, before going through all this trouble, I’d recommend mooving an external sensor to a cold part of the house and seeing how the thermostat responds.


#4

Thanks Ryan, already been there and done that. As the original post stated, “follow me” is enabled on that sensor. When I set it up the way you specified, the whole house was too warm all the time.

The objective is not to always replace the radiant heat lost. Often, it is not a problem at all.
It is only a problem in certain circumstances… and the sensor on its own does not account for those circumstances. Thus, some smart programming to account for those circumstances. The technology makes it possible, and the explorations are enjoyable. It’s no ‘trouble’ at all. Beats watching old movies on tv…


#5

For now I made this kinda simple. I’ll get into more interesting programming some time when my work isn’t so taxing on my brain lol. But for now, I do have an ecobee upstairs. It is connected only to an air conditioning system… but I can use it in pistons to help the downstairs ecobee decide when and how to operate:


#6

When you use the setThermostatProgram command, you have to pass a hold-type parameter as the second parameter. They are: indefinite, nextTransition and holdHours (be careful about capitalization). If you use holdHours, you have to pass a third parameter of the number of hours. If you don’t do any of this, the hold will use whatever the thermostats default hold type is.


#7

You do not have to pass that second parameter. I’ve been doing this sort of thing for months, and never had to pass the second parameter. But I just tested it anyway based on your post… it changed the program perfectly as requested without the second parameter.

That said, I can see where certain pistons would benefit from it.
But if you look at this piston, it is re-validating its conditions every 15 minutes. So there is no need of those parameters. It does one of those three comfort settings based on the other ecobee’s temp reading compared to outside temps.


#8

If you want to use the thermostats default hold setting, no you don’t.