[Release] vThermostat 0.5 - Intelligent virtual thermostat device / app

vThermostat will allow you to specify one or more temperature sensors (if multiple sensors are used, the temperatures are averaged) and use them to control one or more outlets for heating and/or one or more outlets for cooling.

Features:

  • Creates a virtual thermostat device that can be used just like a real thermostat (via dashboards, etc.) While I have not tested with Google Home / Alexa yet, it should work. Let me know if that is not the case.

  • Supports Heat/Cool/Auto modes. You can set to Auto, define an outlet for heating, and another for cooling it will control both appropriately

  • Includes a safety 'kill' in case the temperature is not being updated (ie. sensor battery dead). This defaults to 65 minutes. You can change this by setting the maxUpdateInterval attribute on the driver. Also has an autorecovery feature that will re-enable in the last mode if/when temperature is updated.

To use this, install the virtual device handler, parent, and child apps' code. Then add the parent app (vThermostat Manager). Open vThermostat Manager and click 'Add vThermostat'. Follow the prompts.

As of now, this should be considered Beta. Please keep an eye on things for a bit to be sure it's not doing stupid stuff. I will add better documentation as time permits.

https://github.com/josh208/hubitat/tree/master/vThermostat

Enjoy!

11 Likes

Thanks for this app. I'm actually using it to simply get a temperature sensor to update a virtual thermostat. I appreciate that you have not made the outlets required entries in the app. [I realize that RM and perhaps other apps can do this too. I just found your app an easy solution for my use case.]

1 Like

Hello,
This app works great for my application, controlling a pool heater w. sonoff TH16. Also working perfectly with google home. Thank you for putting this together!

One request..If it wouldn't be too difficult, could you add an option to turn off the debug logging?

1 Like

I'm seconding that request. It's really clouding up my logs too.

Hi, i tried to use it with an aqara zigbee temp sensor and a shelly 1 as switch for my heating boiler (alone the shelly 1 works) but i have two types of problems: n.1 the degrees are in F and but i live in Italy, and in EU we use C degrees (so i have modified the driver and changed to C scale but i'm not sure i made it right), and n. 2 the commands seems not sended to the shelly and the aqara temp sensor seems not send temperature data to the virtual device.
Anyone can help me?

If you really don't need it you can try to disable it manually with modification to the driver, search and comment this lines with a //:
line 94: log.debug "now=$now, lastUpdate=$lastUpdate, maxInterval=$maxInterval, heatingSetpoint=$heatingSetpoint, coolingSetpoint=$coolingSetpoint, temp=$temp"

line 135: log.debug "evaluateMode() : threshold=$threshold, actingMode=$mode, origState=$current, newState = $callFor"

Waiting for the developer to add the option to disable logs

2 Likes

Need to get working in Celsius not farenheit please how can I do that my sensor and my country we all metric here :slight_smile:

Another request for Celsius, please! I suspect you'll get a lot of these as most of the rest of the Planet uses Celsius...

@josh208 Any chance of making this work in Celsius ?

Thanks

I'm using 2 iris v2 button for temp sensor but they seem to only update my thermostat temp about once and hour or more or when I hit refresh on the button device page wondering if my buttons are the problem or if I gotta create a rule to make it update more often gets way to hot before the eater shuts down

The “Set for specific mode(s)” does not work for me. I have to manually turn on and off. ?

@josh208 I just noticed a possible typo in the code

vThermostat Device
line 156: setCoolingSetpoint(defreesF.toDouble())

I'm guessing that defreesF should be degreesF.

Another request for Celsius, please!

I don´t think this is still active. If you look at @josh208, it seems he has not been active on the forum since January 2020.

I am interested in this and have been lurkin

I just went through and modified the code to use Celsius. I have no idea if this is going to work and I don't have enough knowledge of groovy, smart apps, and drivers to fix it if it doesn't.

https://github.com/Derakkon/vThermostat-Celsius-

Please let me know if this works for you. Cheers!

So I decided to take on the project to make this app what it should have been, I will be releasing in a week or two a new take on this app.

Looking for a few testers.

It will have these major changes as asked in this thread:

  • Log level preferences (TRACE / DEBUG / INFO / WARN / ERROR / NONE)
  • Use hub units to determine C° or F°
  • Simplify the settings in the device driver by hiding less common settings
  • Auto-learning for rooms that heat or cool faster to limit overshoot and undershoot

As soon as the Logs have been modified I will give a link to those that want to try it out, next on the list will be the Temp Units based on Hub Settings. After these changes, I will officially release it in it's own thread.

Any more ideas on how to make this app better are welcome. Should the name change or do I keep the original name?

3 Likes

If you put this up in GitHub, I will happily test and update this app. I was on the point of making a fork of it myself to do the same thing.

Should have the first "less chatty" version up in a day or two (don't have that much time to work on it these days). Then have the Celcius /Fahrenheit based on the hub settings ready a few days later.

I'll PM you when I have something to test.

1 Like

I played with his version, and decided it was easier for me to go use the built in vThermostat that has a lot of these things done. I am willing to share if someone wants to make it usable by the masses, but right now I am swamped.

Thanks for the offer, could take a look at what you got, but I'm well into having a workable version in a few days. This thing was a nightmare how chatty it was, I get it when you are debugging or tracing what it's doing, but not for use from general public. Almost done with the logs and then I'll attack the fact that it's degrees F only and make it universal like it should have been in the first place.

1 Like