i am unknowing

How to Permanently Stop Short Cycling of Your AC Compressor

April 04, 2022

So one of my 21st century necessities living in the Sun Belt is central AC. It would be insane to live here without one. Our house has two units. One smaller one which cools the master and some of the kitchen, and another that cools the rest of the house. The smaller one was from around 2001, and while it still worked, it used R22 ($$$$) and fixing a leak and recharging it was prohibitively expensive so we replaced it.

We went from a 2 ton, to a 2.5 ton because based on my calculations it was needed after the previous owners added on a sun room that this unit was supposed to cool. We also got it installed in the late fall because HVAC companies run very good deals then. We got it all done for about 50% less than the quotes we got in August.

Now that it’s starting to warm up to the 80’s, I noticed that in order to keep our bedroom at 68° at night, it would short cycle for several hours until the outside got cool enough to allow it to stay off for awhile.

Generally, you want your AC to run for at least 15 minutes before shutting off again, as the start up procedure for the compressor is high strain. Ours was running for like 5 minutes, getting it down to 68, then 15 minutes later running again for 5 minutes, etc…

I needed to fix this.

Enter Home Assistant. The greatest open source project (in my opinion) to ever exist, and just wonderful software to use. Because I have my thermostats connected to HA, I am able to run automations whenever something occurs. Whether it be outdoor temperature, indoor temperature, the sun rising or setting. Anything.

What I ended up doing, is as soon as the AC in our room turns on, I have the thermostat drop the accepted temperature range 10 degrees for 20 minutes, and then bring it back up to the range I want it.

Here’s what that looks like

alias: Master Short Cycle Prevention
description: ""
trigger:
  - platform: state
    entity_id: climate.sensi_1a8016
    attribute: hvac_action
    to: cooling
action:
  - service: input_text.set_value
    target:
      entity_id: input_text.master_hvac_target_low_temp
    data:
      value: "{{ state_attr('climate.sensi_1a8016', 'target_temp_high') }}"
  - service: climate.set_temperature
    target:
      entity_id: climate.sensi_1a8016
    data:
      target_temp_high: "{{ state_attr('climate.sensi_1a8016', 'target_temp_high') | int - 10 }}"
      target_temp_low: "{{ state_attr('climate.sensi_1a8016', 'target_temp_low') | int - 10 }}"
  - delay: "00:20:00"
  - service: climate.set_temperature
    target:
      entity_id: climate.sensi_1a8016
    data:
      target_temp_high: "{{ state_attr('climate.sensi_1a8016', 'target_temp_high') | int + 10 }}"
      target_temp_low: "{{ state_attr('climate.sensi_1a8016', 'target_temp_low') | int + 10 }}"

Another thing to note is that we keep our thermostats set to a range. Basically keep the temperature between 65° and 75°. At night I set the bedroom to be kept between 60° and 68°.

So in practice, as soon as the room temp increases to 69°, the AC turns on and we run the automation above. What it’s doing is decreasing the range by 10 degrees. So the acceptable range is between 50° and 58°. Then after 20 minutes goes by, we reset those back up to 60° and 68°.

The theory is that there is no way in hell my AC is going to drop the temperature 10° to get it to 58° in 20 minutes. Hell even dropping it 2° is a challenge in that time.

So far it’s working great and I haven’t run into any bugs! I will report back if things change, but really proud of this solution so far. Hopefully it extends the life of my AC unit and keeps us more comfortable inside.


I'm Carl and I'm just gonna write about my life

© 2024