I believe this is a feature request more than a bug, but I would love to get a fuller list of which equipment is actively running on climate devices through the core HomeKit integration. In this case, specifically ecobee thermostats.
As an example, when using an ecobee thermostat that also controls a whole-house humidifier, the HomeKit integration does not indicate if or when the humidifier is running. It correctly shows the current hvac_action (eg. heating, idle, etc), as well as the current humidity, but does not include which specific equipment is running (eg. heat stage 1, ac, humidifier, fan, etc.).
It would be great if we could get something similar to the āequipment_runningā attribute from the ecobee integration. Getting that information is available through the ecobee integration but sadly, for new users, ecobee is not allowing new developer accounts, which is required to make that integration work (and therefore the info isnāt actually available through HA).
Iām currently trying to figure out a solution for the same thing. How are you getting the hvac_action through the homekit integration? I see a title in the control change from āidleā to ācoolingā when the AC is on but canāt figure out how to access that entity or state to use it in a trigger.
Iām not currently using hvac_action for any use, but I see it as an attribute when I look at the State of my climate device (climate.mainfloor_thermostat in my case).
This is what I see.
hvac_modes:
- "off"
- heat
- cool
- heat_cool
min_temp: 7.2
max_temp: 33.3
min_humidity: 20
max_humidity: 50
fan_modes:
- "on"
- auto
current_temperature: 20.4
temperature: 20.5
target_temp_high: null
target_temp_low: null
current_humidity: 46
humidity: 50
fan_mode: auto
hvac_action: idle # <--- This one
friendly_name: Main Floor Thermostat
supported_features: 399
I imagine I could use a trigger to track the history of the mode changes in some sort of helper. That is what Iād like to do if I had access to all types of equipment running.
Thanks, Mark. Unfortunately equipment_status doesnāt exist (as far as I can tell) in the HomeKit integration. If I had access to the ecobee integration I think I could get that info, but they donāt allow new developer accounts to take advantage of the integration.
As a test, I made a template sensor that can track the hvac_action status:
{% if is_state_attr('climate.mainfloor_thermostat', 'hvac_action', 'heating') %}
heating
{% elif is_state_attr('climate.mainfloor_thermostat', 'hvac_action', 'cooling') %} # <--- though I don't know the state for this one (currently not cooling in our part of the world)
cooling
{% elif is_state_attr('climate.mainfloor_thermostat', 'hvac_action', 'fan') %}
fan
{% else %}
idle
{% endif %}
The available functionality depends on the following āfeature sieveā.
Ecobee exposes the feature in its implementation of the Homekit protocol.
The Homekit Device integrationās underlying python library (aiohomekit) supports the feature that ecobee exposed via Homekit.
The Homekit Device integration reports the feature as a dedicated entity or attribute of an entity.
If the desired feature makes it through that āsieveā then it will be accessible in Home Assistant.
Here are the ecobee Homekit properties supported by aiohomekit.
If we assume that the author of aiohomekit has listed all of the available ecobee-specific properties, but the one you want isnāt listed, then the implication is that ecobee has not exposed that property via Homekit (they may have via their own, no longer accessible, API but not via Homekit).
Looking at the link you provided I donāt see that property exposed, which leads me to believe that ecobee hasnāt exposed it to HomeKit, and it is only available through their own integration. I am also assuming that the aiohomekit is listing everything (and I do not know how I would check that).
Out of curiosity, what might be an approach to request that getting exposed from ecobee? Is it customary for a person to reach out to their team and ask for that, or is there another route that might work? And would I simply be asking, āplease can we get āequipment_runningā (or the like) be exposed to HomeKitā or, is there more specific language I would use?
Select the Ecobee API Authorization page and then the Ecobee Account Authorization page to enter your Ecobee Credentials (this will open in a new browser window on your desktop)
Enter your Ecobee accountās Email and Password, and then press the green LOG IN button
On the next page, Click Accept to allow Hubitat to connect to your Ecobee account
It uses ecobeeās API, not Homekit, just like Home Assistantās ecobee integration. Thatās why it can offer access to features that are available via ecobeeās API but not via ecobeeās implementation of the Homekit protocol.
The problem is that ecobee has ceased to offer new users access to its API.
As of March 28th, 2024, ecobee is no longer accepting new developer subscriptions, nor are existing developer accounts able to create new API keys. There is no ETA for when they will be allowed again. Existing API keys will continue to function.
In the meantime, you can use the HomeKit Device integration as a fully functional alternative.
You can try but I think the challenge will be to reach someone at ecobee who will be familiar with your request.
You can try contacting the maintainer(s) of the Homekit Device integration (scroll down to the Integration Owners section) and see what advice they have to offer.
You can certainly do that too but I suggest you contact the authors of Home Assistantās Homekit Device integration.
Jc2k and bdraco are two of Home Assistantās many experienced software developers are likely to know a lot about the Homekit protocol (and what, if anything, can be done about convincing ecobee to expose more functionality).