home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
71.39k stars 29.9k forks source link

Ecobee Heat mode disappeared #26547

Closed zetvio closed 4 years ago

zetvio commented 5 years ago

Home Assistant release with the issue:

0.98.4

Last working Home Assistant release (if known): Don't remember exactly, but I'm pretty sure it worked for a little while after the big climate cleanup.

Operating environment (Hass.io/Docker/Windows/etc.):

Hass.io on RPi3

Component/platform:

Ecobee climate https://www.home-assistant.io/components/ecobee/

Description of problem: I have an ecobee Smart SI thermostat to control a Daikin heat pump. Before, I was able to switch modes between Heat, Cool, Auto and Off. Now, I only see Cool and Off in the dropdown list. From the dev tools / states, I can see this attribute on my ecobee climate component: hvac_modes: cool,off. So there is no way to set the heat mode...

Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):

ecobee:
  api_key: !secret ecobee_api_key

Traceback (if applicable): N/A

Additional information: I'm pretty sure the issue came from this commit. The operation_list is now built dynamically according to thermostat settings. But since my ecobee Smart SI thermostat is an older model, it may not have the same settings than the newer ones. In fact, the thermostat was sold by Daikin and was already configured to work with Daikin heat pumps. So maybe there are some slight differences in the settings.

I'm willing to help if you need to see the content that my thermostat provided for self.thermostat['settings']. I tried to load ecobee as a custom_component and add some debug messages in the log, but it failed to load the component so I'll need some help on how to get this done.

Thanks!

zetvio commented 5 years ago

Ok, I managed to get the data from my thermostat, here are some values that I have in self.thermostat["settings"]:

'coolStages': 1, 
'heatStages': 0,
'hasHeatPump': True,

So, for some reason there are no heat stage, however the hasHeatPump setting may be the key here to recognize that the device supports heating mode.

arigit commented 4 years ago

Same issue. Ecobee 3 + heatpump. HA 100.1 This used to work fine with HA for years.

@setvio where you able to figure out a workaround?

arch | armv7l
-- | --
dev | false
docker | true
hassio | false
os_name | Linux
python_version | 3.7.4
timezone | America/Toronto
version | 0.100.1
virtualenv | false
arigit commented 4 years ago

OK here is that works for Ecobee 3:

sudo docker exec -it home-assistant /bin/bash
vi /usr/src/homeassistant/homeassistant/components/ecobee/climate.py
        * search for ["heatSta
        * Modify the "if" line to:
            * if self.thermostat["settings"]["heatStages"] or self.thermostat["settings"]["hasHeatPump"]:
Restart HA
zetvio commented 4 years ago

@arigit, great to hear that I'm not the only one with this issue. I did exactly the same correction and it fixed the issue for me (temporarily). Thanks for submitting a PR!

arigit commented 4 years ago

@zetvio when you get a chance can you confirm in the PR that the change works for you?