Purpose: Adjust thermostat(s) to heat/cool and setpoint based on an outside/near outside temperature sensor and the locations current mode. Allow temporary manual adjustment.
Reason: I was tired of my thermostat (CT100) not handling auto temp very well. This piston takes over the auto functions by setting the proper mode (Heat/Cool) and temp to keep the home comfortable. 69 in the Summer is different than 69 in the Winter so we’ll use the outside/near outside thermostat to find out if we need to be heating/cooling. I also want others to be able to adjust the temperature temporarily to knock off the chill/heat but get back to proper temp/mode on a set interval.
Configure the components in the “define” section as commented:
TempMonitor: Typically, Window/Outside temp monitor, only 1 device expected. Use an outside or near outside (window) temperature sensor to determine if we need to be heating/cooling inside the home/location.
TempMode: Don’t adjust. Used to hold current thermostat mode desired (Heat/Cool) based on TempMonitor and location mode.
DesiredHeatDay: Temperature to set during Home mode, when heating is needed
DesiredHeatNight: Temperature to set during Night mode, when heating is needed
DesiredHeatAway: Temperature to set during Away mode, when heating is needed
DesiredCoolDay: Temperature to set during Home mode, when cooling is needed
DesiredCoolNight: Temperature to set during Night mode, when cooling is needed
DesiredCoolAway: Temperature to set during Away mode, when cooling is needed
Thermostat: Thermostat(s) to adjust
CheckIntervalMinutes: Tolerance to allow manual override. Thermostat(s) is/are checked at this interval for compliance
counter: Don’t adjust. Used to determine if CheckIntervalMinutes has been reached
lastmode: Don’t adjust. Used to determine if location’s mode has changed (from home to night, etc)
(Released at Build 18)