HomeKit Ecobee current mode doesn't work

I use the HomeKit integration to talk to my Ecobee thermostat. I think changing the current mode is broken.

I run this command in the Developer Tools - Services:

service: select.select_option
data:
  option: away
target:
  entity_id: select.ecobee_hk_current_mode

The thermostat transitions from Home to Away mode as expected. However, the state of select.ecobee_hk_current_mode never changes, it just remains Home, at least for the 15 minutes that I waited. I think that’s not correct behavior.

The dropdown in the Overview page also remains Home.

If I use the dropdown to change the state then everything works as expected. If I use the Ecobee integration (the cloud one, not HomeKit) to set_preset_mode or if I use the Ecobee’s screen to change the mode then the select.ecobee_hk_current_mode does get updated. The communication path seems to be there, it just doesn’t work with its own select.select_option.

The Ecobee is a model EB-STATE5-01. HA is fully updated as of Jan 2, 2023.

3 Likes

I have been dealing with the same issue, through HomeKit as it is set up today you can change the temperature but it will not accept the mode change. To do that you have to go through the Ecobee cloud app which is a bummer.

Most likely culprit would be how Ecobee was integrated into HomeKit Controller, but haven’t identified why.

Anyone out there have this experience?

2 Likes

Running into this as well. Also not seeing any errors in the HASS logs

I appear to have gotten the Ecobee Homekit Controller working and able to set the current mode.
I had to remove my existing Ecobee Homekit devices from Home Assistant, re-add them as ‘Homekit Controller’ devices, and then adjust my automations so that they reference the device ID’s instead of the climate entities. I got the device id’s by going to UI Mode on the Services tab, selecting my Thermostat and then switching back to YAML mode.

      - service: climate.set_preset_mode
        data:
          device_id:
            - 16166b0d12ec11ebb4aa0d1dc809f4e5 'upstairs
            - 4efaa87512ec11ebb82bf3b3a0afc829 'boys room
            - 9bca9ac812ec11eba32769781aee81f3 'downstairs
          preset_mode: away

Hmm… maybe it’s not working. It doesn’t seem to be working now. But perhaps my comment above will get someone further along in the troubleshooting.

2 Likes

Well done! I will have to try this!

I’ve been attempting to do this today. Although the service does trigger without error in the services tab, it does not do anything. I’ve been able to force it to change using the state of select.xxxx_current_mode, the normal schedule of the thermostat overrides the command and changes it back to what ever the thermostat schedule is set for. (home/away/sleep)

@copekyle, I was able to get it to not override my set mode by changing the hold action in preferences in the ecobee settings menu. I have not however been able to get home assistant to properly report what the current mode is on my thermostat.

This looks like this has also been reported on github.

Someone reported a list of issues they saw with the ecobee 3 lite homekit integration in this thread.

1 Like

I was wondering why I couldn’t get HA to update the HVAC state when I changed the HVAC on my thermostat. I’ll have to keep an eye on this thread.

I just installed my ecobee “enhanced” thermostat and then added it to HA via homekit.

I was having similar problems as listed previously. I did find an action that would set away mode that I could use in automations.

action: select.select_option
data: 
  option: away
target:
  entity_id: select.thermostat_current_mode