New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Set evohome temperature, mode, preset doesn't behave as expected #25984
Comments
[EDITED] In summary, there are two issues when changing the target temperature for a Zone. Firstly, if you make a change, and immediately make another change, the first change may get lost, or other unexpected changes may occur. This is a convergence problem (an issue with all internet-polled components). It has been greatly ameliorated with #26042 (the convergence was minutes before), but there remains a window of approx 3-5 seconds where these issues can still occur. I have a solution in mind, but it is Secondly (fixed in #26810), things are not behaving as expected when a Zone's preset mode is not Permanent (known as
The expected behaviour would be it to behave as per the Vendor's UI/UX:
Note that HA only allows you to set a target temperature, and not a duration (there is currently no means to do this in HA). To be clear, there is currently (HA v0.100) no way to set a target temperature for a set duration of time and have the Zone automatically revert to the scheduled target temperature. [ORIGINAL POST] @bennealon thanks for submitting this very useful post - I will look at it ASAP, probably after I come up with a solution for #25400. I am sure I tested this - will have another look and get back to you here. |
Work on this is on hold until after #26042 is merged, as resolving this issue will be made easier by that PR. |
@bennealon The async PR is now part of 0.99 beta, would you mind re-checking/confirming this is still an issue. |
@zxdavb ive changed my local install to run Hass.io through docker (running on Buster), do you know how i can update to get the beta to give this a try? |
@zxdavb Hi David,
After this change, when the UI next updates it updates the I'm presuming here that the call to the evohome API also contains the incorrect Manually changing the EDIT: I tried the above steps again, changing the temperature first then immediately changing the |
I've also just noticed that we now get green-shading under the graphs whilst the system is heating, you just made me a happy chappy 😁 👍 |
This is a convergence problem (an issue with internet polled components). I have a solution in mind, but it is This other issue is a tricky one, for boring reasons I won't go into... I think a fully correct solution is a bit too much like hard work...
async def async_set_temperature(self, **kwargs) -> None:
until = kwargs.get("until")
if until:
until = parse_datetime(until)
await self._set_temperature(kwargs["temperature"], until)
async def async_set_temperature(self, **kwargs) -> None:
if self._evo_device.setpointStatus["setpointMode"] == EVO_PERMOVER:
until = kwargs.get("until")
else:
until = kwargs.get("until", self.setpoints["next"]["from"])
await self._set_temperature(kwargs["temperature"], parse_datetime(until)) This won't be perfect, but I feel a fair balance. |
--SNIP--
this seems fair David 👍 |
I have edited my first post, above - please refer to that. |
* address issues #25984, #25985 * small tweak * refactor - fix bugs, coding erros, consolidate * some zones don't have schedules * some zones don't have schedules 2 * some zones don't have schedules 3 * fix water_heater, add away mode * readbility tweak * bugfix: no refesh after state change * bugfix: no refesh after state change 2 * temove dodgy wrappers (protected-access), fix until logic * remove dodgy _set_zone_mode wrapper * tweak * tweak docstrings * refactor as per PR review * refactor as per PR review 3 * refactor to use dt_util * small tweak * tweak doc strings * remove packet from _refresh * set_temp() don't have until * add unique_id * add unique_id 2
Fixed by #26810. |
Home Assistant release with the issue: 0.97.2
Last working Home Assistant release (if known): Unknown, new user.
Operating environment (Hass.io/Docker/Windows/etc.): Python Virtual Environment on Raspberry Pi 3 B+: Raspbian Buster
2015 Honeywell Evohome Connected thermostat WiFi, including 4 HR92UK Radiator Controllers, and the Hot Water Kit.
Component/platform: honeywell evohome
Description of problem:
When you try to simultaneously set
Target temperature
,Preset
and/orOperation
using the HA interface for a Honeywell Evohome Connected thermostat: as you change each value in turn an individual request appears to be sent to the Honeywell API. The value on the UI then immediately jumps back to the old one, and the relevant update is sent to the thermostat.UI example work through for changing temperature and preset:
temperature
, it also submitted a fauxPreset=permanent
, when the UI was showing asPreset=None
. Then changing the Preset on the UI submitted the correct Preset, but the incorrect temperature got sent due to the UI reverting back.Preset=temporary
contains the correct temperature.Adding a
Submit/Send
button, rather than making the UI automatically send on change would improve the User Experience for a multiple field submission.It would also be nice to have the default
Preset
mimick what the evohome controller (through the API) is reporting, ie if it is currently following a schedule, the default evohome behaviour on setting a new temperature (through their app) is to set the temperature on a temporary basis, ie until the next set point.Problem-relevant
configuration.yaml
entries and (fill out even if it seems unimportant):Traceback (if applicable): No error's logged.
Additional information:
Related to #25400
The text was updated successfully, but these errors were encountered: