Thermostat Scheduler - Short Cycle

Greetings.

Thermostat scheduler (TS) scenario:

7:55 am - thermostat decides to turn A/C on
8:00 am - TS changes cooling setpoint (from 68) to 72

--> equipment turns off, this is a short cycle

Most thermostats have internal controls to not turn the equipment back on too soon, but not the other way around (i.e., this scenario).

Is there a setting currently somewhere (I haven't been able to find one) to delay the setpoint change?

If not, could logic be added to the app like so:

If the thermostat in question is NOT currently idle and TS is about to make a setpoint change that will cause the equipment to turn off (i.e., heat from high to low or cool from low to high) then WAIT (user configurable amount of time)?

I am sure I could cobble together something in RM for this but it seems like it would be right at home directly in the TS app?

Thanks!
Ben

Why is increasing a cooling setpoint a short cycle? That doesn't make sense. If this would result in there no longer being cooling demand, then it should turn it off. Short cycle has to do with trying to turn in on right after it turned off.

I'm not sure I would call 5 minutes that much of a short cycle. That is the default minimum run time (MRT) setting on a number of different thermostats I've owned.

Having a minimum on time (MOT) setting is useful too though.

1 Like

Then I misunderstood the issue. I don't really see this as part of the job of Thermostat Scheduler. Best place to deal with this is the thermostat itself. Next best is the driver.

1 Like

I think so too. The base thermostat,.or sometimes the zone controller, should always be directly responsible for MOT and MRT, in my opinion.

1 Like

5 minutes was an example, it could be 1 minute (or less!). On then immediately off isn't good for it.

Thermostats have built in protections for minimum time between (for example, it won't turn the equipment on until at least 5 minutes have passed since it last turned off), however that's usually the extent of it. And that's probably a safety feature (could you imagine if your thermostat refused to turn the equipment off??)

In this case, the thermostat has no knowledge there is a scheduler app somewhere pulling the strings. It just sees cooling demand and it happens to be 7:59 am (for example) then along comes the scheduler app & changes the set point a few degrees higher at 8:00 am and the thermostat obliges & turns the equipment off.

Seems it would be useful to have a simple 'wait when not idle' delay setting for each time period that is user configurable, that's all.

Let me know any thoughts.

Thanks again!
Ben

I get it, no one has said anything until now, right? Maybe it's just me and my weird thermostats.

Here's what I did: I created a rule in RM that says, "if the state of tstat X changes then if it is idle take hold off of scheduler X, otherwise turn hold on."

This should take care of it, let it run-out it's current demand.

If anyone finds themselves itching for something to do (HA!) Feel free to implement a simple 'wait when not idle' setting for schedule time periods in the scheduler app (it could even take either a value or simply a flag that means wait until the tstat is idle).

Otherwise disregard.

Thanks!
Ben

Many do, almost all of the better ones do... It is called the Minimum Run Time setting (GoControl), or Compressor Min Run Time (ecobee), Minimum On Time (Honeywell), etc..

Min Run Time was created mainly for heating/boilers, but it is also useful for compressors.

To your point, some only have a minimum OFF time setting, like Nest (inferior design). For those you would need to prevent rapid off cycles externally if desired.

I will say that for traditional compressor based AC, though, most manufacturers do not list a minimum ON time - just recommended max cycles/hr. Which is why some don't bother putting a MRT setting in, in favor of the min off time setting.

1 Like

FWIW, General Honeywell has replaced this in their more recent thermostats with cycles per hour (CPH). Takes a bit of getting used to, but one can achieve the same objective as minimum on time.

1 Like

This is a great discussion and I admit to not having a clue about "Short Cycling".

This seems like a very important topic if you are trying to control (or adjust) things from your home automation system.

1 Like

I was in the same boat a couple years ago, I had one of those cheap box store 7 day programmable thermostats which triggered 0.5 degree warm and 0.5 degree cool. I couldn't figure out why the electric bill was so high, my a/c ran for 8 minutes and off for 2 minutes during the summer. Which equaled 137 cycles per day. I put in the ecobee and set the minimum run time to 30 minutes cut the cycles per day down to 1/3 of that along with the electric bill, and the humidity level (comfort)

Have now ditched the ecobee for a more advanced hvac control

2 Likes

In general, any motor takes time to reach peak efficiency and draws max energy while starting up. For a fan this doesn't really matter other than reducing motor life. For an air-conditioning system it matters in two ways:

  1. reducing compressor life
  2. dramatically reducing the efficiency of dehumidification

There's a great article by John Proctor P.E. evaluating the effects of AC over-sizing and short-cycling on AC efficiency and dehumidification titled, "Smart and Cool - The Art of Air-Conditioning". Highly recommended read.

PDF here

Edit:
Just want to add, I went through almost exactly the same process as @waynespringer79. Honeywell to ecobee (for 5 years) and then my own control system that depends on dew-point rather than just temperature. Get decent cycles times of ~20-30 minutes.

2 Likes

I'd like to revisit this briefly (I know, I know).

My RM rule works fine, but I'd like to target it a little better or alternatively I could write my own app for it.

This is what it currently looks like:

I'd like to turn that ELSE into something like this:

ELSE IF [current setpoint] < [upcoming scheduler setpoint]

That way it only sets HOLD on if the scheduler is about to make a setpoint change that would cause the thermostat to turn the equipment off (like I originally described up above).

The left hand side of that condition is easy, it's the right hand side that's difficult.

To do this the scheduler app would need to expose its schedule in a way that is usable by either RM or a custom app.

Is this currently possible? I couldn't find a way myself but I am usually either missing something or not looking in the right place, etc.