Thermostat Controller I can't change the "Control Offset"

I've just started trying to set this app up. My questions are from the "Controlling Thermostat"

  1. The "Control Offset" could find no info in the documentation. By the name I would assume some offset from the averaged temperature sensors. If so, I would like it to be 0. However I cannot change the "Control Offset" when I click on it the resulting screen lets me type into a number box but it is never accepted. Conversely the Hysteresis has a similar box that allows me to change its number.

  2. The "Controlling Thermostat" Not clear the full function. Should I assume these are the settings from the "Controlled Thermostat" but with the setpoints controlled by the identified temperature sensors?


Read this:

" 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."

1 Like

After you enter a number in either box, click outside the box for it to save the setting.

Not understanding the function I tried to make the Control offset = 0, which it will not accept.

You cannot set it to 0. Minimum is 2. This is the differential the controller t-stat will use to offset the controlled thermostat when it no longer needs to call for cooling or heating. For example, if your cooling set point on the controller t-stat is 73, and 73 is reached, the controller t-stat will set the controlled t-stat to 75 (the offset amount) so that it no longer needs to cool. You need to have the option for Idle Method set to offset rather than Mode Off. Also, set the controller t-stat to Cool or Heat mode. Don't leave it on Auto.

Thank you. I didn't fully understand the operation. Now I have to think if this is how I what it to want.

Actually the minimum is 0.1 , not sure this would be good for how the app operates but it will accept 0.1

You don't want that. You need 2 or higher, so that the controller t-stat can set the controlled t-stat to no longer cool or heat. I find that 3 works well in my situation.

What I believe you are looking for is the Hysteresis setting. This determines by what temp differential the controller t-stat will stop heating or cooling. The default is 1.0. So given the default, if your cooling is set for 73 on the controller t-stat, it will cool until it reaches 72.5 degrees. For heating, if your controller t-stat is set to 70 degrees, it will heat to 70.5. You can adjust this setting to determine how much of a temperature swing you want in either direction when heating and cooling.

I now understand how the app works. My response was to state the "Control Offset" could be set to any non zero value. I realize this setting it to a negative or much below +2.0 would be detrimental to the function, but the app will accept other values.

@bravenel You might want to eliminate negative values in the input box for "Control Offset". And maybe even limit the positive values to 0.5 or 1.0 as a minimum value.

1 Like

"Thermostat Controller uses the Control Offset to set the Controlled Thermostat degrees above or below the desired setpoint for the Controller Thermostat, thus forcing it into heating or cooling. When the Controller Thermostat demand is satisfied, it sets the Controlled Thermostat setpoint the opposite direction to force it to stop heating or cooling."

These values don't provide enough differential in either direction for the controller t-stat to call for heating/cooling or stop heating/cooling. This is why the default value is 2.

Hi guys, this is an interesting discussion.

I have found that setting Control Offset to zero IS possible via a workaround (see below).
And I would like to point out that there is a situation, when setting Control Offset to 0 zero makes good sense:

  • your radiators are equipped with smart TRVs that are pretty good at measuring the room temperature and are not covered (by a curtain or such) - in my case POPP Zigbee TRVs (clone of Danfoss Ally). Especially if you have several such radiators in one room.
  • you have unreliable external temp sensor(s) in the room - or no external temp sensors. In my case Sonoff temp sensors - good for non-critical monitoring, but I learned not to rely on them as a data source for the Thermostat Controller
  • you want to group the TRVs under one Thermostat Controller for each room - for easy manipulation via dashboard or external tools (Apple Home+Siri). This way you set temperature to one virtual thermostat per room and not 2 or 3 separate TRVs.
  • you want to use Thermostat Scheduler to program Thermostat Controllers for each room (and not for each TRV).

Essentially - setting TC Control Offset to 0 allows you to manage and schedule smart TRVs grouped per room, but without hijacking their internal thermostat logic (and thus turning smart TRVs into dumb valves). I believe this also cuts down the Zigbee traffic and saves batteries on the devices.

BUT: It is not possible to set the Control Offset directly in the Thermostat Controller app - as you have already found out - 0 is not an allowed temp setting there.
To do this, you have to change Control Offset to zero directly on the Device page of each Thermostat Controller device.
Once you do that, the Thermostat Controller will mirror the TRV heating setpoints to it's own heating setpoint and hold steady until it's own setpoint is changed again. Note that the Thermostat Controller app will keep reporting your previous (and hence incorrect) Control Offset on its page, but it will not have an impact on the functionality of the actual Thermostat Controller.

Hope this helps.

1 Like

@sburke781: Simon, perhaps you would know - would the small problem I described above (can only set Control Offset to 0 in the TC device and not TC app) be something that we should raise an issue for? Feature? Bug?

I'll admit my main experience is with writing a thermostat driver rather than using the various apps available. Skimming over the conversation here and Bruce's description of the app, it feels like it has a clear set of features to satisfy specific scenarios that some thermostats can't handle either individually or as a group.

So I think it is more a feature request, not a bug. The likelihood of it being taken up, I can't say.

Got it - thank you for the speedy answer Simon. How do I raise a feature request actually - could you point me to the right place?

I would normally just create a new topic here under the feature request category.

I wanted to ask questions to clarify this statement " 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."

For simplicity I'm assuming a thermostat and one remote temperature sensor.

When a Thermostat Controller calls for heat, it takes the current Thermostat sensor temperature and adds the Control Offset?

Remote temperature sensor 64
Thermostat 70
Heating Setpoint 68
Control Offset 2

In this example would the thermostat be set to 72 degrees?
It appears that setting the thermostat is a one time event. Is that correct or does it get periodically reset based on the current temperature and controll offset?
If it is a one time event, then I need to set my Control Offset to something much bigger (say 6 degrees).

This is example is from a real world experience where I built a fire in the main house, which raised the temperature of the thermostat. But the remote sensor is in a closed of part of the house (AirBnB). In this case, the thermostat goes off after 2 degrees, but the Thermostat Controller is still asking for heat but since the thermostat is still set to 72 degrees it never gets that heat and the remote stays at 66 degrees. "

Could we add functionality to periodically reset the thermostat sensor so we don't get caught like this. This would be a better solution than setting the control offset to something like 6 degrees to cover cases like this.

Could be. As the instructions say, it has to be set high enough to keep the controlled thermostat calling for heat. The 2 degree default assumes that all of the sensors are within that amount from the setpoint. There's nothing sacred about 2 degrees, it's just a starting point.

Are you really talking about the "thermostat sensor"? It returns a temperature event whenever the temperature changes. If it doesn't change, then no event. But that shouldn't matter to how the app works. Either sensor changing temperature will cause the app to evaluate where things are, and react accordingly.

So if the thermostat temperature goes from 70 to 71, generating a temperature event, the controller would re-evaluate and set the thermostat to 73 (71 + 2 control offset)?

The control offset is how much above the controller thermostat heating setpoint the controlled thermostat is set in order to force it to call for heat. Sensor temperatures determine whether or not heating is demanded.

Create for yourself a Virtual Thermostat, and setup a Thermostat Controller with it. Then you can play around to see what it does, by forcing certain scenarios on it. You could also create a Virtual Temperature Sensor, and add that in. Using these, you can play out all of the situations...

1 Like