Strange HomeKit issue in log

I just noticed this in my log. What’s this “create and pair” a separate HomeKit instance all about? Is there any documentation available?


Logger: homeassistant.components.homekit
Source: components/homekit/__init__.py:536 
Integration: HomeKit (documentation, issues) 
First occurred: 12:52:17 PM (2 occurrences) 
Last logged: 12:52:17 PM

The bridge Home Assistant Bridge has entity lock.garage_door. For best performance, and to prevent unexpected unavailability, create and pair a separate HomeKit instance in accessory mode for this entity
The bridge Home Assistant Bridge has entity lock.touchscreen_deadbolt_z_wave_plus. For best performance, and to prevent unexpected unavailability, create and pair a separate HomeKit instance in accessory mode for this entity

1 Like

Please read this. I don’t use homekit, but i believe this will explain things. :smile:

Very interesting, I what the technical reason is that this is necessary.

All accessories on a bridge share the same connection. Every request has to wait for the previous one to finish.

Locks and garage doors require timed writes to prevent replay attacks so they should have their own dedicated HAP connection.

If the bridge is tied up doing something else, a timed write can fail and your door or garage won’t unlock/open.

2 Likes

Should we be doing this for garage doors also? The docs only mention splitting out media_player, remote, lock, and camera

Yes. Anything that provides physical access to the home should not be bridged since HomeKit will use timed writes for these devices if the protocol version is 1.1 or later. (Protocol version 1.0 is vulnerable to replay attacks)

We should probably update the integration warn about garage doors and gates as well.

1 Like

Ok got it, very helpful thank you @bdraco. Related: is there a way to see which accessories are slowing the HomeKit bridge down? I enabled DEBUG logging a few months ago but didn’t see any timing info.

Enable debug logging for pyhap.

But the answer is almost always camera snapshots or the put requests to subscribe to events on the initial connection after moving from cell to wifi

This is kind of things user should not care about and integration should do it automatically.

Its not possible since the user has to pair each one separately which requires user interaction.