Generic thermostat presets#56080
Conversation
e706f86 to
49d22c7
Compare
| PRESET_BOOST, | ||
| PRESET_COMFORT, | ||
| PRESET_ECO, | ||
| PRESET_HOME, |
There was a problem hiding this comment.
I haven't reviewed other implementations of the climate component but does it make sense?
It seems confusing to me to have the PRESET_HOME and None because I understand that they are the same use case.
There was a problem hiding this comment.
Completely different. Consider None like manual or hold. None is the only preset you can't set.
2103f00 to
fa46857
Compare
This comment has been minimized.
This comment has been minimized.
|
Added documenation PR home-assistant/home-assistant.io#20264 |
|
hello? |
|
Everyday I'm hopeful this will get merged |
|
I'm struggling to see the value here. How is this different than an automation to set a specific temperature ? |
Correct me if I'm wrong, but I think that the main advantage is the frontend control. Currently generic thermostat lacks preset selection. With presets you will get Eco mode, boost mode and you will be able to select them from thermostat control. This will also aligh generic thermostat with many other thermostats |
What is the advantage over simply selecting the temperature ? |
The advantage is I can have a routine set every thermostat to 'Away' when I leave the house. This works for my wall ACs, my Ecobees and even my woodburning stove. Same thing for Night mode. These temperatures are different for different rooms in the house. The 'Night' temperature for the bedrooms is higher than for the office. Further, when the thermostat is running in a preset, you can assume it's on a schedule, but when it's changed up/down, it is not on a present and is on a hold. So I can have a routine which says turn all thermostats which are set to away to home when the house cleaners arrive, and when they leave set them back to away. The automation will skip my office because it's not in away mode, not adjust the temperature when they arrive or when the leave. |
|
That's makes sense for everything except boost and eco. Those look more like modifiers vs schedule overrides. Is there a strong reason for keeping them? |
|
I don't use either boost or eco, but there are about 19 other integrations which use boost and 25 which use eco. I think there is value in being able to set all thermostats to the same preset, which is why this PR adds all of them. Some heating systems use two stages, so boost means to enable both stages. For an AC, eco usually means don't run the fan when it's not cooling. For the generic thermostat, boost or eco would just translate to a different temp. |
Co-authored-by: J. Nick Koston <nick@koston.org>
|
Not sure what went wrong with the CI, but I went ahead and restarted it |
I can accept that as a good reason to add them, but I don't think we should add them all since that doesn't justify boost or eco mode. I am not comfortable approving this PR with them for that reason. If you feel strongly about it, I can ask another dev for a second opinion. |
|
The CI is failing because of https://status.docker.com/pages/history/533c6539221ae15e3f000031 I'll restart it later once it clears up |
|
Looks like the docs need a small adjustment and this should be good to go |
Proposed change
Generalized the
awaypreset to suppose all listed presets in the climate const file. *Does not break anything - does not require any changes to yaml. *Type of change
Additional information
The generic thermostats only supports one preset: away. This is sad. An abandoned PR attempted to refactor the whole class. This PR simply extends it to the other presets.
Checklist
black --fast homeassistant tests)If user exposed functionality or configuration variables are added/changed:
If the code communicates with devices, web services, or third-party tools:
Updated and included derived files by running:
python3 -m script.hassfest.requirements_all.txt.Updated by running
python3 -m script.gen_requirements_all..coveragerc.The integration reached or maintains the following Integration Quality Scale:
To help with the load of incoming pull requests: