zxdavb / evohome-async

An asyncio Python client to access the Evohome web service
http://evohome-client.readthedocs.org/en/latest/
Apache License 2.0
11 stars 11 forks source link

Evohome presets - Setting 'Home' mode actually activates 'Day Off' #16

Open benwillcox opened 9 months ago

benwillcox commented 9 months ago

Hi there, I've had EvoHome integrated into HA for some time just to monitor temperatures. I've recently been trying to change modes via HA, and have found that if I select 'Home' then it actually activated the 'Day Off' mode in Evohome.

benwillcox commented 9 months ago

Not that I have any idea what I'm doing, but looking through the code I found in climate.py the following:

TCS_PRESET_TO_HA = { EVO_AWAY: PRESET_AWAY, EVO_CUSTOM: PRESET_CUSTOM, EVO_AUTOECO: PRESET_ECO, EVO_DAYOFF: PRESET_HOME, EVO_RESET: PRESET_RESET, } # EVO_AUTO: None,

perhaps this has something to do with it?

smarthomefamilyverrips commented 9 months ago

@benwillcox yes that is expected behaviour, preset home within Home Assistant calls for preset Day Off on your evohome system .... probably the code owner did had the feeling calling the preset home inside of Home Assistant made more sense as calling it DayOff 👍

benwillcox commented 9 months ago

Thanks I suppose in some ways I can see the logic there, as in if you are 'Home' then treat it as a day-off as far as EvoHome is concerned. However there doesn't seem to be any way to select 'Auto' mode from HA which is the main problem.

As you can see from the screenshot here, when 'Auto' is selected directly on the Evohome controller I get the icon shown, but it doesn't appear in the dropdown list of modes that I can activate from HA:

evohome

smarthomefamilyverrips commented 9 months ago

@benwillcox Reset will bring it back to your automated schedule set in the evohome controller.... if that is what you are trying to achieve

smarthomefamilyverrips commented 9 months ago

Another option is to use servicecall evohome set mode, there are all the modes available

benwillcox commented 9 months ago

I tried that but it's not quite the same. I have a number of zones that are set on a permanent override to low temperature, i.e. rooms that are infrequently used. Usually I just cancel the override on the controller when I need to have them then follow the preset schedule again. If I use the 'Reset' option then it cancels all the overrides so all rooms start to follow their schedules, which isn't what I'm after.

However I've just found another card 'lovelace-climate-mode-entity-row' which allows me to add 'preset_mode: auto' which does work, and has the same effect as pressing 'Home' on the Ecohome controller. I can then see the icon within the standard HA climate card change back to the correct icon shown in my screenshot above, i.e. the one that it won't let me select from it's own dropdown. (Adding 'auto' to the list of preset modes with the HA climate card doesn't add this option to the drop-down unfortunately).

So, I think this restriction is related to the HA default climate card not allowing the 'auto' preset rather than a limitation with the evohome integration.

smarthomefamilyverrips commented 9 months ago

Good to hear you found a work around for your use case using a custom card. Myself I actually never use climate control manual within HA as I have no need for it all I use is the several available evohome service calls within automations.

benwillcox commented 9 months ago

Thank you and thanks for the tip on the service calls, I'm relatively new to HA and didn't know about this, more to explore!

smarthomefamilyverrips commented 9 months ago

With pleasure!

johnl commented 5 months ago

I'm having a similar problem though I don't happen to see a reset option on mine, but I don't think that's the correct solution here anyway.

I think this is a bug in home assistant and not evohome-async so I've filed a ticket there: https://github.com/home-assistant/core/issues/115979

I think this ticket should probably be closed here.