[RELEASE] Advanced vThermostat - Virtual Thermostat HVAC control

Curious about the learning/algorythm aspects of this virtual thermostat. I have a notification setup to tell me each time the receptacle turns on/off so I know when the heater is on/off.
It seems that the heater comes on for only about a minute each time, perhaps to have a minor adjustment/maintain approach but I'm curious about the long-term health of a switch that is turning on/off so frequently.

Thoughts? Opinions?

This has not been implemented yet.

Please set logging on the virtual thermostat to at least info, and post a snapshot of this behavior, this is very strange and should not happen.

Check out this post. I saw the same thing, I updated the driver code myself and it now works as I want it to. There was another poster after that that basically posted the same thing. I don't think it was ever updated. I can't recall there ever being a update in HPM. I use the app code but I updated and made another copy of the driver code with my updates. So even if it had been updated since I am using a different driver I don't know if the update fixed the issue or not.

1 Like

ok, I'll check it out, I might have missed it (or not).

so it was a combination of my RM that turns the thermostat mode from 'off' to 'heat' (as I only want this to run if:

  • Ryan is present
  • Within working hours
  • Weekday
  • Outside Temp is cold enough to warrant even thinking about it
  • Same floor level HVAC is NOT in cooling mode

So that rule is triggered with presence change, ext temp change.

The rule was triggering the heating mode, your thermostat was turning on as requested, but then turning off after a minute because...... You're smart. The Honeywell App was once again unauthorized (grr!) and bc the remote temp sensor I'm using for this thermostat hadn't reported in 3 days, it was shutting off for safety. Kudos sir, well done execution of all aspects!

I went into the honeywell app, re-authenticated and all is happy again. :slight_smile:

2 Likes

Thanks for updating me/us on the situation!

2 Likes

First, thanks for developing this app/driver combo. It's allowed be to offload a good chunk of one of my HVAC rules onto your virtual device.

I wouldn't say its "extremely common" but some modern digital thermostats do have this feature. My basic centralite has the ability to change this setting. You can't do it via HE, instead you have to use the device interface. I installed this in my shop where comfort is less important than extending runtimes and maximizing efficiency.

I'm curious how the "differential" is handled in your app/driver. Normally, on a thermostat with a 1 degree differential (or deadband) I would expect the following heating behavior:

Setpoint: 70 F.
Heat Turns on: Temp falls to 69.5 or lower.
Heat Turns off: Temp rises to 70.5 or higher.

If I'm seeing what I think I'm seeing, it appears that your virtual thermostat is turning the heat on at 69.0 and off at 69.1. Does that sound correct? That could be a possible source of the "short-cycling" issue reported by @terminal3 (and others?) earlier in the thread. If his interpretation of your code is correct, then your differential may be acting more like an offset. Either way, I've noticed that my virtual thermostats never actually achieve setpoint before they go idle.

That is what the original code was doing. In my case the temp sensor I was using, a combination of the average of 5 sensors, would fluctuate back and forth above and below the off setpoint. So I would see very short cycle times.

Trying to use this for heating of a room and also hot water. I have a relay that turns on a pump for water for the heat and the hot water. manually the relays work fine. The room heat will turn red in heat mode but it won't trigger the relay. The log shows the device switching from idle to heating, but no relay activity. For the Hot water will not go into heating mode, the log shows that it is ignoring the temp requested. My low hot water temp is 140 and the high we would wet to 160. In this case the thermostat does not change to heating from idle. I think I set both up correctly. Any ideas why they don't work? Thanks

I have two thermostats working, both for room heating. The last bit is for my hot water, it appears there is a upper limit that the app will stop at. I need to keep the temp at 140 and occasionally bump it up to 160F Is there a line in the code I can change to make this work?

Sorry for the delay, I saw you started another thread and it finally came back to my app and got help from @thebearmay with the mods, I have been struggling to get free time to work on a new revision of this app out but I could place these upper limits user settable in the future for cases where it's used for other things than just room heating like you do.

Thanks I look forward to seing how it turns out. My situation was / is different. My boiler does my domestic hot water and also hot water to heat two rooms. So having thermostats that can handle the higher temps is pretty important to me. Changing from a C4 to a C7 and having them break left me with manually turning on the relay to make Hot water. At some point I want to control my boiler / in floor hot water heat, which runs the first floor. That is going to be controlled by a separate Hub and an arduino. Stay tunred I might need some more help! :))

You could use the basic HE virtual thermostat. You would need to write RM rules to actually put control behind it. The RM rules are not too difficult if you use the state of the virtual thermostat for triggers.

Thanks that is what I am working on now.

It looks like this was around line 236, and may only apply when the virtual device is in AUTO mode (but I know nothing of groovy coding) . Any idea if there are other changes that should be made for the other possibilities?

Did this ever get implemented? The git still seems to show the code that does not include the proposed changes. I'll put in a pull request for this code if it helps.

Using this app a lot - many thanks.

  1. Would it be possible that when averaging temps that we could have the decimal positions truncated, maybe to 2. Currently it's 10 decimal positions (in degrees C anyway) - don't look great on a dashboard tile.
    image

Thanks, Simon

2 Likes

Before I try this, are these alexa voice commands possible?

  1. Set to specific temperature: ("Set the temperature to 75")
  2. Increase/decrease temperature target (eg: 1 degrees increment): ("Raise the temperature")
  3. Get current temperature target setting ("What is temperature set to?")
  4. Turn off/disable thermostat, which will turn off related heating/cooling unit ("Turn off thermostat")
  5. Turn on/enable thermostat, which try to achieve current temperature target ("Turn on thermostat")
  6. How about snooze/sleep options? ("Turn off in 30 minutes")

1-3 work with regular thermostats, and should with this. 4 and 5 I believe can be done by “set thermostat mode to,,.”. 6 don’t know, but I suspect you might be able to use a custom Alexa routine to do something close.

hello, please look at this bug i encountered here

Please update your code, then click Configure (if using HPM, please use the repair feature).