Looking to collaborate on improving the HomeKit bridge in HA

I have been a HA user since 2014 and it is unequivocally one of the best open source projects that has been created. It’s amazing how improved and polished it has become (especially the UI) over the last few years.

However I think there the way users manage and configure the HomeKit bridge is one of the weakest elements of HA at this time. As background, I am a full time business analyst, consultant and rookie programmer (specifically TypeScript and Python).

Objective:

The objective of this post is not just to complain, but to put forward some actionable steps on improving this element, mostly around the UI so it could be incorporated into a future HA update.

Why this matters:

iPhone has a market share of 60% or more in a lot of countries including Norway, Canada, Denmark and Sweden, and over 50% in UK, Australia, and USA. The ‘Home’ app on iOS enjoys first-party app status (for better or worse), so even if its not used by the majority of HA users (i.e. power users), it may be exclusively used by other family members.

Overview:

The weaknesses, I feel, are outlined below:

A) Unintuitive way of managing entities

I find it very cumbersome how new entities are added or removed from the bridge. Users need to do the following:

  1. Open the “HomeKit Bridge” integration
  2. Press the cog icon
  3. Read the large block of text
  4. Choose the ‘domain’ for your entity. I find this quite confusing as it can be quite ambiguous which entities belong to which domain. I find this especially difficult for new users who might be clueless on this step.
  5. Choose the entity - this makes sense, it’s a simple picker. I think the risk, however, is the important detail from the help text “The include will cover the entire domain if you do not select any entities for a given domain.” Many users have hundreds of entities, and very often this floods HomeKit with all the entities in a domain, if a single entity wasn’t selected. The Home app on iOS does not have the greatest UX, and handles large numbers of entities poorly, making it cumbersome to clean up.
  6. There’s no back button, so if you can’t find the entity in the domain you selected, you have to start the process again.

B) Lack of visibility and transparency of which entities are being exposed

Because entire domains can be exposed easily (either internationally or accidentally, as above) - it’s hard to know which entities are the ones being exposed without checking the Home app. To me it results in a frustrating UX, it ends up with yelling at the app “where is this entity coming from??”

Suggestions:

It would be great to get some constructive feedback on how people feel like this can be improved from a UI perspective. I think backend improvements could be raised too if there are some good ideas. I just want to throw some ideas out below:

  1. Keep HomeKit mode as the first selection, as it does affect how it handles media players (as per the documentation). This makes sense, defaulting to ‘bridge’ it probably what most users want and they can leave it as-is.
  2. Move ‘inclusion mode’ and the ‘Domains to include’ to an ‘Advanced configuration’ collapsable panel, above the ‘Submit’ button. Instead, bring across the Entity picker from the second page to have it simply as “Choose the entities to expose to HomeKit”. I feel this is more appropriate as (in my opinion) most users want to only expose a curated list of entities to HomeKit.
  3. The advanced options panel can be collapsed by default but allow users who want to include/exclude domains to maintain this functionality if they wish to do so.
  4. I think, ideally, the advanced config could potentially be used in parallel with the ‘basic’ entity picker. For example, I could choose a single camera entity, but then include the “climate” domain if I wanted.

Personally, I think the HomeKit Bridge (and potentially other smart home standards like Matter, keep it modular) should sit in its own dedicated page in Settings, as I think this is a more intuitive approach for new users and elevates HomeKit to a core platform component in the wider smart-home ecosystem, which HA is a component of.

Please leave your suggestions, comments and ideas below - it would be great to hear them all!

1 Like

I’ve recently had the same thoughts as you. I agree with you on the chunkiness of the entity-inclusion process and that it could/should be done in a more intuitive way, and when you also present the idea of giving HomeKit and Matter their own places in the settings menu I got an idea. It always bothered me that you have to go into the HomeKit Bridge integration to add entities and not also be able to go to the entity itself and choose what integration it should be a part of. My idea was that wouldn’t everyone be better off if all “forwardings” to other platforms (HomeKit and Matter in this case) had an API that made it possible to go to a desired entity and choose from a menu which platform you want it exposed to? We can of course keep the way it is done now as well (maybe clean it up a bit), but also make it possible to choose what platform a specific entity is exposed to from that entity’s page. I would also like to have a better understanding of how entities are exposed to HomeKit as certain entities exposes their functionalities in unpredictable ways, but that is for another topic😜 Let’s hope this resonates with anyone important and that our voices are heard😁 Thanks for bringing it up

1 Like