home-assistant / architecture

Repo to discuss Home Assistant architecture
315 stars 99 forks source link

New device class doorbell needed to resolve homekit issue #435

Closed mikebsec closed 1 year ago

mikebsec commented 3 years ago

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.

frenck commented 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