Closed mikebsec closed 1 year ago
This architecture issue is old, stale, and possibly obsolete. Things changed a lot over the years. Additionally, we have been moving to discussions for these architectural discussions.
For that reason, I'm going to close this issue.
../Frenck
Context
As discussed in home-assistant/core#40052 - the 0.114 addition of homekit doorbells has taken on the assumption that all devices that have a binary_sensor with DEVICE_CLASS_OCCUPANCY are doorbells. There are devices with this class that are not doorbells (Nest Cameras are one example), that are now sending doorbell notifications by the hundreds to users through homekit every time there is motion.
Proposal
With the addition of a new
DEVICE_CLASS_DOORBELL
the logic in homekit at https://github.com/home-assistant/core/blob/0c077685b6f74179cbaecde31577b0da4f975ad6/homeassistant/components/homekit/__init__.py#L682 could explicitly grab doorbells for this functionality, rather than incorrectly grabbing other devices.Consequences
Homekit integration can now understand what is a doorbell rather than assuming non-doorbells are doorbells as well. The current integration has broken existing user behavior, and adding this device class was suggested by the homekit maintainer. I am not aware of any downsides but I admittedly don't know of other doorbell functionality throughout home-assistant widely.