Thermostat control sugggestion - Anticipator feature

In a thermostat, a feature caller an "Anticipator" has been included in most of them for many years. Even the old reliable, mercury filled round Honeywell thermostat had one in it.

In Control Theory terms, it is called a "feed forward" element. It lets the controller know that the device under control has built up a considerable amount of energy but has yet to release it. This feature allows the controller to turn the controlled device off prior to reaching set point so that the release of stored up energy does not cause significant overshoot.

There are a number of ways to include an Anticipator feature. I am in the process myself of trying to improvise one by putting a second temperature sensor right in front of a heat register and playing with the weighting feature to try to reduce overshoot. There are issues with this method though. A true feed forward algorithm only feeds forward change, and does not feed forward the value that the change is referenced to .

One way to implement it in the app, for whoever wrote it, would be to have a virtual thermometer included with the ap. The virtual thermometer would be set to the exact same value as the value of the main thermometer, or the value of the average of the rest of the thermometers if there is more than one in the system. Them the value of this "virtual thermometer" could be incremented over time... say every 10 seconds, by some user setable amount (maybe with .01 degree resolution). This "virtual thermometer" could be averaged in with the rest of the thermometers by the thermostat app. The weighting of the averaging would of course be variable by the user as well, just as it is now for all temp sensors

So, what would happen is that as soon as the app turns on the furnace, this virtual anticipator thermometer would start incrementing every 10 seconds or so at a rate based on the value set by the user. The furnace of course puts out no heat immediately, but is building up and storing heat almost instantly. The anticipator would over time make the room temperature appear to the App to be warmer than it really is. It would shut the furnace heat cycle down prior to reaching the actual set point. The furnace would continue to release remaining stored energy to actually bring it up to the desired set point. By setting the anticipator settings appropriately (usually by trial and error), system overshoot would be minimized... making for a more comfy room.

It can sometimes be helpful to clearly state your desired feature request. I am not sure from reading your post, what exactly your feature request is. I assume it is one of these possibilities:

  1. Add your requested feature into the abilities of the virtual thermostat driver.
  2. Add your requested feature into all drivers written for a thermostat.
  3. Add your requested feature to the built-in app called "Thermostat Scheduler"
  4. Have a new custom app created that has your requested feature built-in.

Modern thermostats have many built-in features that make control of HVAC equipment safer and more efficient. That is why I use a thermostat with these features to control my HVAC equipment. The thermostat is connected to my HE, so HE controls the thermostat schedule (Heating and Cooling setpoints, shutdown when fire alarm is active), but the thermostat controls the logic for things like hysteresis, cycles per hour, minimum compressor restart interval, etc...

I haven't seen a lot of users mimicking all the control logic a thermostat has built into it using RM. It is simply easier to buy a zigbee or zwave thermostat with all this control logic already built into it and connect it to HE.

If you are using the virtual thermostat driver and desire this feature, it can be implemented by the temperature sensing device(s) you are using for the virtual thermostat and Rule Machine. Make this temperature sensing device a virtual temperature sensor. Then have RM continually adjust this temperature based on the time your furnace has been running in combination with another sensor(s) that is/are reading actual room temp. Adjust to your desired parameter and done.

The way that Hubitat controls a thermostat, if the thermostat has an Anticipator feature built into it (most do), it would be deactivated. The only way to add it back would be in the Hubitat App itself.

I will look into doing what you suggest though. It would be a cool though if it was built into the App in a future release, as it is a fairly rudimentary necessity for a thermostat function. Even the 70 year old Honeywell Round thermostat had an Anticipator built into it.

That is blatantly incorrect for any of the thermostats that I have seen that integrate with hubitat (I personally use a Honeywell T6). Hubitat simply sets the heating setpoint on the thermostat. This is exactly the same as physically standing in-front of your thermostat and setting this setpoint manually. Hubitat may automatically change this set-point several times per day based on things like mode and presence. But these changes to the set-point or no different than what would happen if you disconnected Hubitat and manually changed the setpoint at the thermostat. The underlying control logic that is embedded in the thermostat itself is not disabled or changed by HE.

Would you care to elaborate on the thermostat you are using and how when HE sets its heating setpoint, the anticipator feature that is built into the thermostat becomes disabled?

Are you possibly confusing the two apps called: Thermostat Scheduler and Thermostat Controller? What you are referring to could take place while using the app "Thermostat Controller". But this is not the usual app that users use to integrate their thermostat. The thermostat scheduler app is the typical one and the one I imaging 95% of HE users use. Both these apps control the smart thermostat, but only the "Thermostat Controller" app would, in essence, disable the embedded logic of the actual thermostat. This app is purposely designed to do this, for the rare users who would like this logic controlled by HE.

You make a good suggestion to add this anticipator function to the Thermostat Controller app. By definition using this app results in some (but not all) of the thermostat's built-in logic being, in essence, disabled and replaced by HE. Might as well replace as much of this lost logic as possible.

You are missing that @rick_kay is talking about the Thermostat Controller app. This app does take full control of a thermostat, and does thereby effectively disable its Anticipator function.

1 Like

exactly. It forces temp set values that are way too high or way too low in order to trick the thermostat into turning the furnace on or off. Any integral anticipator feature built into the thermostat does not get used.