for the corresponding heating stage 145 150 and 155 for example if heating stage one 145 is set to five cph then it runs at twelve minute cycles with a variable duty cycle preferably there are ten cph options 1 10 for each heating state 145 150 and 155 the user also sets a number of cycles per hour for each of the cooling stages 160 and 165 the number of cycles per hour divides an hour into a number of cycles for the corresponding cooling stage 160 and 165 preferably there are five cph options 1 5 for each cooling stage 160 and 165 a temperature differential is set by the user with the user interface 175 or permanently stored in the controller 170 a heating temperature differential is the temperature range between the heating set point minus the temperature differential and the heating set point plus the temperature differential a cooling temperature differential is the temperature range between the cooling set point minus the temperature differential and the cooling set point plus the temperature differential preferably the temperature differential is permanently stored as 1 u00b0 f 0 5 u00b0 c a heating cycling control algorithm is used to control the heating source 110 when the sensed temperature is within the heating temperature differential the heating cycling control algorithm runs the heating source 110 according to the number of cycles per hour with a variable duty cycle the heating cycling control algorithm includes a proportional integral pi loop that uses the sensed temperature and the heating set point as inputs a pi loop is a feedback control algorithm which drives the system to be controlled with a weighted sum of the error the difference between the output u2014 here the sensed temperature u2014 and the desired.