Virtual thermostat controls physical thermostat

I started creating some rules to control a physical thermostat (PT) using the inputs of a virtual thermostat (VT) and a temperature sensor (TS):

  • Update VT current temperature and "current temperature" variable (CT) when TS temperature changes
  • Update "target temperature" variable (TT) when VT set point temperature is changed
  • If TT > CT (for cooling) or TT < CT (for heating) then increase (for cooling) decrease (for heating) set point temperature of PT by 2 degrees - checked every 15 minutes if that room is occupied

While this should work fine, expanding this to several rooms is very time consuming and I was wondering if something like this already exists in the form of a virtual thermostat that can be connected to a physical thermostat and temperature sensor and activated either by a motion sensor of specific mode?

Can you fill us in on what you are trying to accomplish with these rules?

Control the temperature of a room based on a temperature sensor that's located in that room, rather than the temperature sensor of the physical thermostat.

Did you ever get a simple resolution to this? I want to do something similar.

Did you try using Thermostat Controller new built in app introduced in 2.2.4

I think that is what you need!

So funny after I posted I kept looking and stumbled across Thermostat Controller. It seems to do exactly what I needed. Thanks!

1 Like

I am very happy that this kind of app is now available. I just wished there was an easier way to "disable" the "Auto Mode". Disabling "Auto Mode" by setting the setpoints requires a settings change every time the season changes. A practical example why auto mode may not be desirable is that when I leave the house in the summer I'd like to allow an increase in the temperature by setting the setpoint higher - without triggering the heating mode of the thermostat (and of course the opposite in the winter).

Another nice addition would be to add "On" (rather than having to specify "heat" or "cool"). That "On" command would just restore the thermostat's mode before it was set to "off". Again, that would simplify the rules: Turn thermostat off when you leave the house. Turn on when you return.

You could look at adding Thermostat Scheduler (built in app), this I believe will help, I use it to set a Hold mode or you might look an the ECO mode in there.

As for the thermostat itself, it is built to mimic a real thermostat with the exact same modes, so ON is actually HEAT or COOL or AUTO, nothing else. These are also the built in capabilities if you look in the documentation...

Sorry but that will be the only modes I will be supporting so that it's as universal as it can be. You are welcome to modify the code to your liking to "make it easier" if you want.

As suggested, use Thermostat Scheduler to control the controller thermostat created by Thermostat Controller. Rule Machine can in turn set Thermostat Scheduler with respect to seasonal changes in setpoints as required. The entire thing can be scheduled and controlled automatically, if that's your goal.

So why not also have "heat" and "cool" - like a real thermostat.

??? It does have heat and cool ??? Not sure I follow you there.

The "Thermostat Controller" app only has "Auto" and "Off".

Please check the device page and see if you can change it to heat, cool or whatever other state.

I will check the "Thermostat Controller" app tonight and see if I find something, might be just that app that does not let you do anything else, I have no idea since I never played with it. I have only used the "Thermostat Controller" app.

You can't change it to "heat" or "cool":
image

Even the documentation states that it only supports "auto":

ok, so looks like Thermostat Controller really takes over the actual thermostat or virtual thermostat mode system. Not sure what else you could do. I guess this is the way it is built.

The additional functionality of being able to connect a temperature sensor to a physical thermostat is a great addition. Not sure what the purpose is to curtail the functions of the physical thermostat by removing the explicit heat/cool modes.

I looked at the Thermostat scheduler, but it doesn't have all the functions that I want, so I'm sticking with creating my own rules.

I think I did find a bug in the Thermostat Controller: When you change the mode on the controller from "Off" to "Auto" the controlled thermostat does not change mode unless you also change the setpoint.

Any chance to add heat and cool modes to the controller???

This is fixed in the next release.

Please explain what this means from your use case perspective. Heat and cool modes as to the controller thermostat don't really mean anything, only setpoints do. They do mean something for the controlled thermostat (for dual mode thermostats). So through manipulation of the controller thermostat setpoints you control the controlled thermostat modes.

For example, if you want the controlled thermostat to be and stay in heat mode, the cool setpoint of the controller thermostat would be set to a value that would not call for cooling by the controlled thermostat (i.e., a high value).

Looking forward to that fix.

E.g. when I leave the house in the winter, I want to let the house cool down to a certain temperature by setting the heating setpoint to a lower value. I had my aircon switch to cooling mode to bring the temperature down. I know this was caused by my cooling/heating setpoints not being separated enough.

I understand that, but I am setting some of my setpoints in my rules. That means that I have to change my rules every time the seasons change. For me it would be much simpler, if I can control the mode of the thermostats rather than artificially inhibiting the different modes with the setpoints.

Whoa, either way you have a rule that has to run seasonally. So you're talking about the difference between a rule that sets the cooling setpoint high and one that sets thermostat mode to heat? That's basically the same rule with different options selected. How is one any easier than the other?

That being said, the difference in the app is significant additional complexity.