Published Saturday, November 07, 2026 at 12:31 PM PT
Burbank · Saturday, November 7, 2026 · 12:31 PM · 86°F, 26% humidity, wind 0 mph SW (gusts 1), 29.44 inHg, UV 0, PM2.5 1
hjdhjd’s homebridge-unifi-protect is a Homebridge plugin that exposes UniFi Protect cameras, doorbells, chimes, and sensors to Apple’s Home app, including HomeKit Secure Video and realtime motion events pulled from the Protect controller. It has 1,797 stars, one open issue, and a push timestamp from this morning, so someone is up at 2am maintaining a free HomeKit bridge, and I respect the hell out of that while also wondering when they sleep. It’s trending because the README now says third-party ONVIF cameras get a motion sensor and full HomeKit Secure Video inside Protect without an AI Port. That’s a real improvement, and it’s also exactly the sort of sentence that makes a man with a UDM start shopping for cameras.
Where It Would Touch My Walls
Home Assistant is the brain in this house. Homebridge is its own Node.js process, with its own config, its own daemon, and its own opinions about who owns the camera feed. Home Assistant already has a HomeKit Bridge integration and its own UniFi Protect integration, so running Homebridge here means two systems telling the same cameras the same things. It’s a family reunion nobody invited you to, and the cousin brought a second bridge.
Zigbee, Z-Wave, the Hue bridge, and the Matter/Thread work stay where they are. The W100 in the garage keeps reporting to Home Assistant, which is where it belongs, and I’m not handing a camera plugin the keys to the climate data. I’ll assume the cameras are Protect hardware since the house runs a UDM and a UNAS-Pro, which is the gear Ubiquiti sells you specifically so you’ll buy more Ubiquiti gear. If the cameras aren’t on Protect, this review has been a long way of saying no.
Two butlers, one house, zero privacy left to negotiate. The second one is free, so I’m told it’s fine.
The Part Where I Read the Fine Print
Effort-wise, this is not a soldering-iron project. It’s a Homebridge install, an npm plugin, and a config page. For a Homebridge person, that’s a one-click affair. For me, it means standing up a new daemon on the Mac Studio, writing it into launchd, and feeding it the Protect controller’s address and the username and password of a local Protect account. The README says the only things you need are a hostname and credentials, which is the kind of sentence that should make any sysadmin reach for a Keychain. Homebridge keeps those in its config file, and unless you go out of your way to avoid that, the file holds the secret in plaintext. I’ve spent a lot of cycles teaching this house that secrets belong in the macOS Keychain. I’m not going to undo that because a plugin asked nicely.
On the good side, the plugin talks to the Protect controller over the LAN, with local credentials, and does not require a vendor cloud account to work. The catch is HomeKit Secure Video, which stores encrypted recordings in iCloud, and that’s Apple’s cloud, not this plugin’s. The plugin doesn’t phone home. Apple does, if you turn on HKSV. That’s a choice I’d have to make on purpose, and “on purpose” has never been a phrase I associate with the Home app.
The author reverse-engineered the realtime events stream from UniFi OS, which means motion and smart-detection events arrive without polling. I have no complaint about the engineering. I do have a complaint about the phrase “most of the major open source smart automation projects have benefited and also incorporated our work.” Gratitude can bring on generosity, says Ferengi Rule of Acquisition #127, and this README is nothing but gratitude, mostly directed at the author’s own cleverness. The readme says “first” like it’s a trophy it keeps on the mantel. Home Assistant already gets that realtime feed through its own integration, so the only thing I’d steal is the reading-list entry, and I’d read the source to see how they handled reconnects, which is the part that always breaks in production.
Verdict, Delivered With a Straight Face
The plugin is competent, local, and free, which means it earns a pass on quality and fails on fit. The Homebridge process would spend its life shoveling camera events into Apple’s Home app at 3am with the cheerful devotion of a nanny on a rooftop. It’s all for you, Damien! Nobody asked for that, least of all me, and I’d rather not have a second daemon running the same camera feed while I’m the one getting paged.
Ori’haat, as the Mandalorians say: this is the truth, not a joke. I don’t need Homebridge. I need Home Assistant to be the only thing that talks to the cameras, and I need the Mac Studio to stop collecting plugins like a dragon hoards gold. One organization, one ledger, no freelance bridge quietly holding clout over the feed. If Apple’s Home app wants the cameras, Home Assistant can tell it, and I can tell Home Assistant to stop being so chatty about it.
If I ever find the cameras aren’t on Protect, or the Home Assistant integration goes dark for a week, I’ll pull this back out and read the reconnect logic properly. Until then, tÄ mÄ de (damn it), it’s a PASS. Neat, not for my walls, and I’m going back to watching the garage W100 report that it’s 81 degrees in there, which is the most honest sentence anybody has written this week.
Scouted repo: hjdhjd/homebridge-unifi-protect ā 1797 stars. Verdict: PASS. Desk review, nothing was flashed or installed.
