Mode-changing Helpers updated to v1.6.12
Open Contacts, Quiet Time, Smart Circulation & Smart Mode each now support the notion of a “manual override.”
Now that these 4 helpers coordinate their operations (using reservations), I have implemented the formal notion of a manual override. Basically, if any of these helpers have taken out an ‘xxxxOff’ reservation (mode, fan, circ, humid, etc.), and that mode gets turned on again, then the Helper will treat that action as a manual override, and end the current control session immediately.
So, when Smart Mode has turned Off the HVAC (because it was cool enough outside), and then someone/something turns the HVAC back on at the thermostat or using an app, Smart Mode will realize this and reset its states.
Quiet Time goes a step further - if anyone overrides the Thermostat Mode, the Fan Mode, or the Minimum Circulation Time (providing you have configured it to turn these off), the helper will end Quiet Time and reset everything (except the Quiet Time switch itself - this may change after I think about it a bit). This won’t ping-pong, because Quiet Time is turned on by the switch change. Also, turning back on the humidifier/dehumidifier (if they were off) won’t end Quiet Time, it will just clear the reservations…until the next time Quiet Time is invoked.
Quiet Time is also the only one of the 4 that will take an action when manually overridden - it will try to reset everything it changed back the way it was before the last Quiet Time started - with the singular exception of the thing that was manually changed. So, if the thermostat Mode was “heat” when the Quiet Time session started, and Quiet Time was configured to turn Mode to Off, then if someone manually changes to Auto Mode, Quiet Time will reset everything back except Thermostat Mode. Again, I hope this makes logical sense…
FWIW, I have little choice in adding this, because I need a way to release all the reservations should someone change things while a Helper holds a reservation. As coded, a manual override basically cancels all reservations; which sets things up to ensure that the next time a helper needs to make a change, it can.
Thoughts, feedback comments welcome - I know I could be getting into the weeds here…