Hysteresis instead of deadband in Heater #2252
Replies: 2 comments 4 replies
-
I am thinking in a different way. Adding a new parameter called For example, you have a deadband of With this way, system is more configurable, because you could have setups like |
Beta Was this translation helpful? Give feedback.
-
Added with v12.12.5: https://github.com/RavenSystem/esp-homekit-devices/releases/tag/HAA_12.12.5 |
Beta Was this translation helpful? Give feedback.
-
Hi,
first of all thank you for that marvelous piece of software! Thank's for the hours you must have spent researching and then implementing all things related to Apples ecosystem.
Maybe I’m missing something obvious, but it seems currently we can’t configure HeaterCooler accessory to heat with hysteresis. Only deadband is possible, but these two are not the same.
What I want to achieve is:
set point 30 degrees
hysteresis 3 degrees
When the temperature drops below 27 degrees heating action starts. When the temperature reaches 30 degrees heating action stops.
If I set a deadband to 6 degrees, a heating action starts at 27 degrees, but it continues to heat past the set point and stops at 33 degrees.
In auto mode it may be a very good approach, but in single action (heat or cool, humid or dehumid) mode it's super counter intuitive IMHO.
Currently, I’m using a negative ds value. So I set my deadband to 6 and soft on temperature to -3. By doing so, I get kind of „never go below” logic. So when I set 27 degrees as my set point, then the heating action starts at 27 degrees and go up until it reaches 30 degrees. It’s better than pure deadband, but still raises questions among my family members. You know, „Why if i set it to 30 it heats up past that temperature? Is it broken?"
I looked at the code, and it seems that it might be possible to achieve that simple logic in question just by allowing negative df here:
esp-homekit-devices/HAA/HAA_Main/main/main.c
Line 2147 in 0fb9e33
by changing the condition to
!= 0.f
and by moving this whole
else if
esp-homekit-devices/HAA/HAA_Main/main/main.c
Line 2146 in 0fb9e33
to the second place above that one:
esp-homekit-devices/HAA/HAA_Main/main/main.c
Line 2121 in 0fb9e33
Or to the very top, as it’s the only one that checks for => value.
Then it should be possible to (ab)use df and set it to minus half of the deadband to achieve hysteresis logic.
Also it seems, the very same can be achieved in cooler, humidifier and dehumidifier.
What do you think ?
Beta Was this translation helpful? Give feedback.
All reactions