Have HomeKit list currently running climate equipment (specifically with ecobee)

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.

See if this helps for figuring out what to look for.

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.

1 Like

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.

Unless I’m missing what you’re pointing out.

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ā€.

  1. Ecobee exposes the feature in its implementation of the Homekit protocol.

  2. The Homekit Device integration’s underlying python library (aiohomekit) supports the feature that ecobee exposed via Homekit.

  3. 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).

1 Like

Thanks, Taras! That makes a lot of sense.

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?

Thanks again!

I see now @gordieh . I’m getting all of that granular info from a connection to Hubitat. Sorry for adding to the confusion.

No worries, Mark! Good to know that’s a possible way to do it too.

@gordieh Maybe reach out to the developer of the Hubitat app and see if by any chance he could be helpful for getting something similar for Home Assistant. GitHub - SANdood/Ecobee-Suite: Ecobee Suite is for integrating Ecobee thermostats & sensors with the Hubitat home automation platform

Having access to this level of data is helpful.

1 Like

From SANdood’s documentation:

  1. 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)

  2. Enter your Ecobee account’s Email and Password, and then press the green LOG IN button

  3. 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.

From the ecobee integration’s docs:

Warning

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.

Thanks, Taras. That’s what I found as well. I sent a post to SANdood to see if there’s any other advice they have.

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).

1 Like

Just messaged them. Thank you again!

1 Like