WebCoRE Piston: TempThing An intelligent thermostat controller

thermostat
webcore

(Brian S. Lowrance) #1

Piston: TempThing
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.
WebCoRE community link/discussion

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)

image

(Released at Build 18)


#2

Brilliant. I was going to do the same for my CT101, but I’ve been too lazy to script it since the ruleset is so overly complex for me. I’m waiting to get some Keens to help with the guest bedrooms and prevent over heating/cooling when guest zones are vacant.


(Brian S. Lowrance) #3

Update. Build #25.
Some logic corrections.
Detect if a contact sensor is open (door/window) for a nice day outside and turn off the thermostat(s) accordingly.
Import code: 0kbd2


(JM Binette) #4

Great !
Will have a look to it

Do you have a mode where the thermostat would go OFF below a certain point ?
My heat pump is not efficient below -15C … I rely only on my baseboards from that point

Thanks !


(Brian S. Lowrance) #5

No but you could add your own condition to each of the if tempmonitor statements.
(example, will need some adjustments to make work, specifically the -15C piece I presume as I deal in Fahrenheit)

if
    {TempMonitor}'s temperature is less than {DesiredHeat...}
and
    {TempMonitor}'s temperature is greater than xxx}
then
    .....
end if;

if {TempMonitor}'s temperature is less than -15C
then
   {Thermostat}'s turn off