[RELEASE] Thermostat Manager

Hello everybody,
I've been working for some time now on this app. It is still in the works but it has been working pretty well in my home now for enough of a long time so I thought it was ready to share.

What this app can do:

  • Manage one thermostat (one at a time)
  • Manage the temperature in your room based on a secondary sensor or an array of sensors
  • Set the desired temperature based on a virtual dimmer input
  • Or work simply without a dimmer and still learn from your inputs
  • Decision making using multiple algorithms themselves based on several math functions (linear and logarithmic mostly but it goes beyond that).
  • Or Decision making based on simpler criteria set during settings
  • Decisions making based on outside/inside humidity
  • Power saving features
  • Windows management (as switch capables devices so they can also work with fans).
  • Windows opening level based on outside conditions
  • Button management for differentiated conditions (like when you're going to bed and would like a higher or lower temperature in your room as when you're awake, or when you're working out...)
  • Bed sensor management - works in conjunctions (or not) with button management - buttons taking precedence in case bed sensor is not reliable (I have not been able to find nor build a 100% reliable bed sensor so the button can come as a complement that compensate for my bed sensor unreliability, giving an overall complete satisfaction: The app knows when I'm up or sleeping...)
  • Antifreeze alerts and safety management
  • failed devices management: if your thermostat controls a furnace or an HVAC that you can plug to a power meter plug, then you can have the app double control that current consumption is consistent with needed mode (off, heating, cooling, etc.).
  • Other consistency controls: the app will "deduce" that your thermostat is or is not responding well and try different strategies to have it refreshed, polled and resend commands if needed at regular intervals
  • overall device polling to verify consistency even further
  • Manage temperature and states of the thermostat depending on whether or not your doors are opened or closed
  • motion management and alternate motion sensors for when doors are opened
  • another array of contact sensors for windows and power saving management
  • it will probe, analyse and define some of your devices (sensors, contacts, windows...) capabilities and adapt its behavior accordingly.
  • It will, finally, make some coffee and poor it in a cup and bring it to you in the morning or when it notices you're tired... :smiley:

WARNING: Many bugs are to be expected as I was not able to test all possible scenarios so much this app is complex. Please, do not hesitate to let me know, I usually respond and update the code accordingly quite quickly.

6 Likes

@elfege Thank you for sharing this application, it looks like something I was searching for in the last few months! :slight_smile:

Is there a chance that in a future version update you could include a Fahrenheit to Celsius conversion option?

I tried to make myself the F->C conversions directly into the code, but I can't pass through the '...outside temperature reference' and the 'safety temperature' validation check.... :frowning:

BR!

2 Likes

Really interested in this, going to check it out :+1:

This sounds really awesome! I have a RM that does some of this, but an app sounds like a much better way to go!

Out of curiosity, do you mean opening/closing window coverings, or would it connect to a device that will allow opening actual windows? If so, I didn’t know these existed...

I have finally managed to get the app running.... .. not sure if all the manual corrections that I made in order to convert the Celsius readings and all the temperature constants inside the code are OK.

Blockquote

I am trying to get it running with an eTRV (Fibaro), that obviously does not simulate fully all the 'standard' thermostat commands, which makes the task rather difficult.

1 Like

Definitely something I intended to look into at some point, especially knowing that I'm myself a European citizen (living in the U.S.). I'll let you know when this is done.

3 Likes

I don't know those thermostats but it looks like, indeed, it is not receiving the thermostatMode commands... I see 49 attempts. Did it eventually switched from heat to cool?

Let me know.

They do exist but are incredibly expensive so I built my own, using ESP8266 chips, @ogiewon 's St_anything libraries, some coding of my own and several pieces of hardware such as 12V linear actuators found on amazon. Also am working on some new versions using 3D printers step motors for better precision and, most of all, silent operation.

It looks like you're French, SĂ©bastien (or maybe Canadian). Being French myself, I can tell that if you have the type of windows we use in France, it might not be of much use to you, although I'm pretty sure something could still be worked out. If you're in Canada, however, I think you might have the same sliding windows as the ones we use here in the U.S., so that would work.

I am indeed Canadian, but we have crank style windows at my place. Sounds like what you have is for sliding windows, so it probably wouldn’t work...

I have been thinking for a long time that it would be nice to have a system that could open/close windows... But I haven’t spent much time investigating it. :slight_smile:

Crank type windows would work perfectly with already existing windows actuators:

https://www.amazon.com/Electric-Window-Opener-SD500-Distance/dp/B07H4GYS14/ref=sr_1_3?dchild=1&keywords=window+opener+electric&qid=1609352867&sr=8-3

The link I've just shared points to an IR remote control. It's not too difficult to get the IR codes and then build a controller that could pair with hubitat. I did it with my old split AC and it works like a charm. But you can also attach an ESP8266 to the builtin controller, that would work too and would probably be less time consuming to build.

What I have is different... The crank part may not be to difficult, but not sure about the locking mechanism...


But this is a bit off-topic for this thread...

The reason for the errors is because the electronic Thermostatic Radiator Valves usually do not support 'cool' thermostatMode and do not report 'cooling' thermostatOperatingState...

Of course, this is not a problem in your application, as it is was never intended to work with eTRV's, but I will keep trying... just as an exercise working on my experimental eTRV z-wave driver.

The Thermostat Manager app seems to be working OK when I use the 'Virtual Thermostat' driver!

@elfege is this app in Hubitat package manager?

I thought this might be for blinds as well but its for opening windows to let out heat. What i was hoping for and my use case is something to close the blackout blinds when it's bright in the room (sunlight bright) and the temperature is rising quickly/ hot outside. At that point I want it to start closing the blinds to reduce the LUX and minimise the solar heat gain. I had a rule that kind of did it but it far too complex to do in RM.

Feature request: configuration of an optional humidity sensor to be used for the indoor humidity measurements, as not all thermostats have this capability.
@elfege what are the thermostats that you are using?

@BorrisTheCat f your blinds are switch capable, I have an app that does just that, among other things. It's called Eternal Sunshine. However, its main purpose is to work with dimmers.

That being said, I don't see how RM couldn't handle such a task. What is so complicated about it? You'd just have the rule to read a lux sensor and maybe even a temperature sensor (like outside temperature) and ask it to close your blinds when lux>threshold (your threshold would have to be a local or global variable of your chosing) and when temperature>tempThreshold and turn them back on otherwise, making sure this runs only during your Day location mode.

It's a great idea. I will soon push an update that will make sure the thermostat is tested for humidity capability before checking it out. I had falsely assumed for a long time that it was within all thermostats capability... I will add an optional humidity sensor soon too.

With the upcoming update, if the app detects that your thermostat doesn't have RelativeHumidity capability, then it'll read if from your outside sensor/weather station directly, so humidity can be taken into account at all times.

This is done now, I've just pushed an update with this new feature and other important bug fixes.

1 Like

The built in driver doesn't have switch capabilities in it, some do but the dedicated one doesn't, I have asked for it to be added as it usefull.

I'll take a look though thanks.

Yeah I may look at it again as new functions have come out since I originally did it. The reason it wasn't working well is i didn't just want to open and close the blinds. I wanted it to keep shutting abit as it got brighter/ hotter then try and open again when it could. Also as my bedroom is on the top floor I have front and back windows so I wanted it to go with the seasons. Then it would pick a master window depending on where the sun was coming from. It just seemed to shut mostly and never open again, or have no dead pan. I will look at it again.