Why does Hubitat + HomeKit require a Garage Door to also be a Contact Sensor?

I've built out a custom driver for a garage door. According to my experience and other threads here, the driver has to expose the ContactSensor capability. This makes the garage door show up twice:

image

...and in the Security category...

This seems unnecessary. If I remove the ContactSensor from the driver, it no longer exports as a garage door.

Why is this required?

Mine doesn’t do that. The trick is to make a virtual device of type garage door controller, then a separate physical contact sensor and switch. Then you make a custom App that sets the state of your garage door based on the state of the contact. And you activate your garage based on the switch. Most people use relays to make this work. Tons of threads out there that describe this in detail. The main point is you don’t need a custom device since that causes the issue you are seeing. Here’s my HomeKit screenshot showing that what I described above works. I can post my custom App if there is interest.

Not sure if this helps, but you can disable the second “contact sensor” instance from the HomeKit Integration App page.
Click the little minus button under extras.

3 Likes

Yes I think @woodsby has the correct solution. Disable the contact sensor from sharing to Home Kit.

I use the Zooz Garage Door app/driver set which has the contact sensor on the Virtual door and I have the contact sensor blocked from sharing to Homekit (via the Homebridge integration but same concept).

If you still cannot get it to stop sharing it, another option is in HK get into the accessory settings for just the contact sensor part, Turn off Add to Home View if on, go down and tap on Status > turn off Include in Home Summaries. That should hide it everywhere except the room it is in.

3 Likes

Ah, perfect! Thank you! It does still make me wonder about why it is required ... but I can live with that :').

Note that I tested the virtual type, it still exposed a contact sensor and so it still showed up twice. But, hiding it helped.