2.2.4 - New App: Thermostat Controller

Make your dumb smart thermostat smarter

Thermostat Controller allows more control of a smart thermostat. It does this by creating a child virtual thermostat device, the controller thermostat. This device has the same name as the controlled thermostat, but with the word Controller appended to the name. This controller thermostat replaces the controlled thermostat, and becomes the means of establishing setpoints for the system.

Added Features

  • Supports additional temperature sensors
  • Allows control of thermostat hysteresis
  • Brings auto mode to the controlled thermostat


In many, if not most circumstances, a well placed thermostat will do a good job of maintaining comfortable temperatures within the conditioned space. For these cases, there is no point or value to this app. There are, however, some circumstances where left to its own capabilities, a thermostat will do a poor job at maintaining comfortable temperatures. This could be due to a number of factors, including poor thermostat placement location, or unusual heat gain or loss in portions of the conditioned space. Some thermostats lack an auto mode setting, causing difficulties in 'shoulder' season when both heating and cooling may be needed depending on conditions.

For these circumstances, Thermostat Controller can provide an improvement over the existing smart thermostat functionality. It does this by completely taking control over the in place thermostat, This added level of control allows for averaging of multiple temperature sensors within the conditioned space, by allowing specific control of hysteresis, and support for auto mode.

Additional Temperature Sensors

It may be desirable to average the temperature of more temperature sensors in the conditioned space than just the one built-in to the existing thermostat. If the existing thermostat is not positioned well, this may be necessary to maintain comfortable temperatures consistently. Thermostat Controller allows any number of sensors, averages their readings. It offers the ability to offset a given sensor's readings, or place more or less weight in the average for each sensor. This average temperature becomes the controlling value for determining when to call for heating or cooling, replacing the sensor built-in to the thermostat itself. In most cases, the built-in temperature sensor of the controlled thermostat will be one of the sensors used in the average.

Control of Hysteresis

Hysteresis is the amount of temperature swing that must occur between calling for heat or cool, and the system having satisfied that demand. Using cooling as an example, and the default hysteresis value of 1.0 degrees F, with a setpoint of 75°, cooling will be called for when the temperature exceeds the setpoint plus half the hysteresis -- in this example, 75.5°. Once cooling begins, it will remain on until the average temperature has been reduced to the setpoint minus half the hysteresis value, or 74.5°. By careful setting of the hysteresis value, the efficiency of the HVAC system can be optimized while ensuring comfort in the conditioned space. With a narrow hysteresis (lower value), the HVAC system will cycle more frequently, and the temperature swings in the conditioned space will be lower. With a wider hysteresis, the HVAC will cycle less frequently, and there will be correspondingly larger swings of temperature in the conditioned space.

Auto Mode Thermostat

Once Thermostat Controller takes control of a thermostat, its operation becomes auto as to heat versus cool mode. The determination of whether to call for heating or for cooling becomes entirely automatic and dependent on the setpoints established for the controller thermostat. It is important to maintain an adequate setpoint separation between heating and cooling, typically at least 3° F. While the temperature of the conditioned space falls between these two setpoints, the HVAC system will be idle, neither heating or cooling. Once the average temperature falls below the heating setpoint (less half the hysteresis), heating will be called for. Should the temperature rise above the heating setpoint (plus half the hysteresis), the system will return to idle. If the temperature continues to rise, when it reaches the cooling setpoint (plus half the hysteresis), cooling would be called for. Etc.

If one does not want auto mode, and only wants the system to work for cooling or for heating, this can be accomplished by setting the setpoint for the unwanted mode well out of meaningful range.

How It Works

Thermostat Controller manipulates the setpoints of the controlled thermostat to control its operation. This usurps most of the functionality of the controlled thermostat. To call for cooling, for example, Thermostat Controller will set the cooling setpoint of the controlled thermostat to a level well below the current temperature, thus forcing the controlled thermostat into cooling operation. The amount by which the setpoint is set below is determined by the Control Offset, a settable number of degrees. When the demand for cooling has been met, the controlled thermostat's cooling setpoint will be set well above the current temperature, thus forcing it to idle, and again using the Control Offset. The Control Offset defaults to 2° F, and should be set high enough to cover any difference between the average temperature of all of the sensors, and the temperature reported by the controlled thermostat itself.


Bear in mind that this app usurps the control and most safeguards of the existing thermostat. Avoid setting the Control Offset higher than needed for successful control. The Control Offset should be kept low so that should the hub fail, the real thermostat will not be in a run-away condition. Be careful in establishing a proper Hysteresis setting.

Use with Thermostat Scheduler

To add scheduling to the controller thermostat, it may be selected in Thermostat Scheduler. Do not use Thermostat Scheduler with the controlled thermostat, once it is under control of Thermostat Controller.

Thermostat Fan Mode

The created controller thermostat inherits the supported thermostat fan modes, if any, from the controlled thermostat. The thermostat fan mode may be set for either thermostat, controller or controlled, and that setting will be set for the other. Thermostat fan mode may be set by Thermostat Scheduler, acting on the controller thermostat, and such a setting would be passed on to the controlled thermostat.

Basic Instructions

When you first set up Thermostat Controller, the controlled thermostat is not yet put under the control of the controller thermostat. The first section of the app UI shows the current setting of the controlled thermostat. These can be adjusted by opening that page. On that page is a setting called "Free/Controlled", and it starts out as Free. This means that the controlled thermostat is Free from being controlled. Only when you switch that selection to Controlled, does the actual control function of the app kick in.

Screen Shot 2020-10-31 at 9.01.33 AM


Thermostat Controller was updated recently (get update), so that it uses thermostat modes 'auto' and 'off' for the controller thermostat. This allows the controller thermostat to be used in a Dashboard, where the setpoints can be set. It also allows the controlled thermostat to be put in an off mode, by setting the controller thermostat mode to 'off'.