Thermostat Scheduler [RELEASED]

1 Like

This uncovered a problem in Rule Machine that deserves some attention. When first creating a rule that uses %value% (the last event value), it doesn't like that the value is null. I'd go so far as to say this is a bug. It's easy to get around, but shouldn't do what it does.

Thanks...one block at the start is that my thermostat doesn't seem to include the setTemperature function...there is a "SensorCal" option but no idea if that's possibly related to setting the temp...

image
image

So I can make this rule (thanks to your guide!) but only for the virtual thermostat I created (below). My actual thermostat won't accept the set temperature action.

Looks like I'm going to have to directly manage control the thermostat activity from RM.

Yes, that's right. A real thermostat sets its own temperature from its own sensor. That's why we need the virtual thermostat go-between.

Now, you need to have rules that map commands from the virtual thermostat to the real one. This gets a little tricky. You are essentially usurping all of the logic of the real thermostat. For example, when the virtual thermostat calls for cooling, you are going to want the real one to do the same thing. To cause that to happen you're going to have to change the cooling setpoint on the real thermostat to low enough to make it call for cooling, etc.

Like this:

In a similar way, when the virtual thermostat operating state goes to idle, then you need to force the real thermostat to follow suit by putting the setpoint up.

Maybe you can see why this isn't something that most people want to mess with. This literally removes the Honeywell thermostat functionality, and turns it into a dumb device to turn on/off the HVAC system.

I've messed with something like this before at our factory in Scottsdale. It was frustrating to the point that I eventually gave up on it, and just allow the real thermostat to do its thing.

Ah, OK, thanks, that part (obviously) escaped me. So set Virtual Thermostat settings to my actual desired setpoint settings, etc.

Then when (VT) says to cool RM tells T6 to cool. Then when VT says enough, stop, RM tells T6 to stop. Regarding your command about changing the T6 setpoints - so you change the setpoint each time you start a heating or cooling session, and change the setpoint back to a range where there will be no action from the T6 when when you are in the desired temperature range? Or ?

Yes, that's how you have to do it. But, don't set it too far away, just in case. Like I said, you are taking control of the HVAC system by manipulating the setpoints in the T6.

Sequence is idle -> cooling -> idle .... etc. Each of those changes in the virtual thermostat has to 'command' the T6 to follow.

Missed your follow-up reply while I was typing my other reply to you.

Yeah, this is a lot of work and flogging of the Honeywell to manage this way. Really glad I only paid $60 for it, and realize now that any Zwave thermostat would have worked if I want to do it this way.

I run my smoker this way - I have an external PID controller that manages temps by turning the smoker on/off constantly to keep it at the desired temp. That's easier as the smoker's internal temp sense/management has been removed from the circuit, and all it has remaining is an overall safety circuit to keep it from overheating to a dangerous level.

I'll have to spend more time thinking about this...not the sunny pretty world I thought it was going to be. :slight_smile:

Thanks VERY much for your help - clearer and more helpful than any I found on this.

I too had hoped this would be an easy thing to do. But it just isn't. Thermostats are still needed to manage things like waiting before turning an A/C compressor on right after its been turned off, etc. There's decades of R&D and experience that go into thermostats, and it's non-trivial stuff all in.

Ha! And all it really does is a closure relay. Easy peasy.

1 Like

Also, instead of a bunch of rules, what would work better is an app.

1 Like

If I could just feed the damn T6 thermostat an externally sourced temperature I could do that and let it manage the HVAC and call it done...

And yes to an app.

:wink:

An app would not be very hard to do. It would create its own child virtual thermostat, allow you to select the real thermostat and temp sensors, folding in the averaging logic from that public app. Then it would just manage the real thermostat as described above. The virtual thermostat child could be put in Thermostat Scheduler for that purpose...

"...not hard to do."

Do you think my DOS batch file skills from 1985 will be sufficient?

Damn...now I have to dig out that old DOS 2.1 floppy disk, where did I put it?

:smiley:

This is when I wish I had coding skills.

1 Like

I went on a little coding binge last night and implemented this app. "Thermostat Controller". I have some testing to do, but we will put this in our next release (2.2.4). It does what you need.

The app creates a "controller" thermostat, that takes over the real one, adding in temperature sensors to determine when heating or cooling is needed. You can include the controlled thermostat as a temperature sensor as well. It also allows weighting of sensors, and offsets, so you can fine tune it. So far I've been testing it with virtual devices, but need to move to doing it with real devices to make sure it works as expected.

The controller thermostat is the one that would be put into Thermostat Scheduler, as it becomes the boss. If your real thermostat is named Bedroom Thermostat, then the controller thermostat is named Bedroom Thermostat Controller.

6 Likes

Oh wow...the power to create is pretty awesome, and using to do good, is really, really awesome! Thanks so much for doing this! I think this one will be a winner. :smiley:

If I can help by sending you my T6 to play/test with while you're working on this, I'm happy to do that. I won't be using it in the meantime, so it's just sitting on the table next to me looking sad. Just send it back when you're done and don't need it any more.

So cool...it is people like you that make HE a different and better world to smart home autmate in.

So very sexy... And will it support and having set points defined by particular time periods? as in you know from 7:00 in the morning until 11:00 I want ex-cooling next heat and then from 11:00 to 6:00 I want a different set of set points and then from evening overnight a third set of set points things like that.

That is all functionality of Thermostat Scheduler. What this new app does is give you external temperature sensors for a thermostat that doesn't support them, creating the same effect. Check out the functionality of Thermostat Scheduler in the meantime. You can create a virtual thermostat to play with: On the Devices page, Add Virtual Device, give it a name and then select the Virtual Thermostat as Type. You can then setup Thermostat Scheduler pretending that is the real deal to see it's features....

2 Likes

Doh, yeah, I was a little to excited to think it through. :wink: I've actually aready been playing w/Thermostat Scheduler, which makes my question to you even more embarrassing. LOL...really looking good how this will all come together.

Very nice! I can definitely see this help with keeping the house at the right temp overall.

Any way you can fix the Thermostat tile in the Dashboard, too?

It adds a space in front of some of the fan control commands, so I had to hack the Advanced Honeywell T6 Pro Thermostat driver to get it to work:

@Field static Map SET_THERMOSTAT_FAN_MODE=["auto":0x00,"on":0x01,"circulate":0x06, " auto":0x00, " on":0x01, " circulate":0x06]

The original written by Bryan Copeland wouldn't respond to fan requests because of the extra space. I think the built-in T6 driver also had a problem with that, too.

2 Likes