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
73.54k stars 30.72k forks source link

Ecobee AUX setting support #85716

Closed InstigatorX closed 1 year ago

InstigatorX commented 1 year ago

The problem

Ecobee support setting a discrete AUX mode, but is not settable with HA. There was an issue and subsequent PR generated, but never completed and CLOSED. I have a wood boiler that heats a hydronic coil in HVAC. I set AUX mode on the Ecobee directly when I've got it fired up during colder months. I'd like to set AUX or HEAT mode based on outside temp. e.g., AUX when its < 30F and HEAT when its < 30F. It's more energy efficient to use the heat from boiler vs heat pump.

Per the integration documentation you can call climate.set_hvac_mode with auxHeatOnly as the mode. This results in error

value must be one of ['auto', 'cool', 'dry', 'fan_only', 'heat', 'heat_cool', 'off'] for dictionary value @ data['hvac_mode'] If you try to enable the aux heat toggle on the thermostat entity, it is dissabled and I see in logs

Original Issue: https://github.com/home-assistant/core/issues/64043 PR: https://github.com/home-assistant/core/pull/64222

What version of Home Assistant Core has the issue?

2023.1.2

What was the last working version of Home Assistant Core?

Never

What type of installation are you running?

Home Assistant OS

Integration causing the issue

ecobee

Link to integration documentation on our website

https://www.home-assistant.io/integrations/ecobee

Diagnostics information

No response

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

No response

home-assistant[bot] commented 1 year ago

Hey there @marthoc, mind taking a look at this issue as it has been labeled with an integration (ecobee) you are listed as a code owner for? Thanks!

Code owner commands Code owners of `ecobee` can trigger bot actions by commenting: - `@home-assistant close` Closes the issue. - `@home-assistant rename Awesome new title` Change the title of the issue. - `@home-assistant reopen` Reopen the issue. - `@home-assistant unassign ecobee` Removes the current integration label and assignees on the issue, add the integration domain after the command.

(message by CodeOwnersMention)


ecobee documentation ecobee source (message by IssueLinks)

cmaglio commented 1 year ago

Can confirm I see this issue as well... the "AUX" toggle in the HA climate device will show the status correctly if "AUX" mode is enabled via the ecobee thermostat (or ecobee app) itself. However, "AUX" mode cannot be enabled/disabled by HA itself, the existing "AUX" toggle button does not work.

InstigatorX commented 1 year ago

Thx, @conway220 !!!

mcaminiti commented 1 year ago

This change now breaks status of aux heat running for heat pumps and geothermal use cases where I need to know if both heat and aux is running at same time. Is there a way to get the status back working now that the toggle was repurposed for limited use cases?

Lash-L commented 1 year ago

@mcaminiti

I only handled this issue because I saw someone else had already done it, but never finished the tests, so I thought I would help out.

I don't own any type of aux heat in my ecobee setup. That being said, I only made a hand full of changes, so I'm not sure what would be causing your issue.

The changes basically boil down to if the thermostat api call has "hasHeatPump", then aux_heat is enabled. Then the previously unused aux_heat toggle is enabled and aux heat can be turned on and off. Right now is_aux_heat is based off of if "hvacmode" is auxHeatIOnly, it used to be based on if "auxHeat" was in the api's "equipmentStatus". Perhaps that needs to be added back in and just split up

All this being said, again I don't own a heat pump, nor do I fully understand the use cases. I simply just revived a dead PR to solve this issue. actually adding any functionality would be rather difficult for me to do without having results to api calls and a unit to test with. You should create a new issue and link this issue and the PR I created. Potentially, I can try to handle it, but it would probably be best if someone who owns a heatpump could try to solve the problem.

mcaminiti commented 1 year ago

So it originally was a status indicator more then action, but I just did some testing and I will be able to rewrite some templates and just look at equipment running attribute to figure out the condition that previously worked. Heat pumps are more complicated especially with aux heat. The more common use case is not an aux only but heat stage 2 and aux running at the same time. So the change actually repurposed the old attribute of aux status to now a mode change, while disabling the mode of heat call. I will try and look at it and see if something can be blended to cover both scenarios but I dont think it will because ecobee controls the aux heat much smarter then a toggle which is why the mode couldn't be done today. I would be curious how other thermostat integrations handle it too. Thanks!

So this is 2023.2 version when Aux heat is running, if I understand correctly the update would actually show Aux heat off now even though it is running in this scenario because it's not AUX only running. I figured it should be modeled like the fan. If the fan is running it says fan on, even if in auto or on mode. It's more status.

Aux