Zone control logic

Dec 30, 2008 at 4:43 PM
Edited Mar 26, 2009 at 6:54 PM

The Zone class considers its ideal temperature range to be one degree above its low set point and one degree below its cool set point. For example, if low/high set points are 68/72, then the ideal temperature range is between 69 and 71.

Each zone has a SatisfySetting that determines what happens when its temperature is outside of its ideal range. Only zones with a value of MustSatisfy, the default, will start the HVAC system's heating or cooling mode. Zones with a value of ShouldSatisfy cannot turn on the system, but will keep it running until their temperature is in the ideal range. Zones with a MaySatisfy setting will attempt to get to their ideal temperature range while the system is running, but have no authority to turn on the system or to keep it running while it is on. A zone with a setting of DoNotSatisfy is effectively off and will not request heating or cooling.

The design of the Zone class allows a MustSatisfy zone's temperature to vary by as much as one degree below the low set point and one degree above the high set point before starting the HVAC system. For example, if the zone's low set point is 68, it waits until the temperature falls to 67 before calling for heat. When it does call for heat, it attempts to heat the room to one degree above the low set point, which in this example is 69. This temperature swing, or hysteresis, allows the system to cycle on and off less frequently increasing the overall efficiency of the HVAC system. Cooling works similarly, for example, if the high set point is 72, call for cooling will occur when the temperature reaches 73 and the call will stop when the temperature reaches 71. Note that once any MustSatisfy zone turns on the system, all zones (except DoNotSatisfy zones) will attempt to reach their ideal temperature range.

Should the Zone class be more flexible to allow for different behaviors? Possible examples:

  • Allow a smaller/larger hysteresis value
  • Use the low set point as the temperature floor instead of low-set-point minus 1