Homebridge UniFi Protect
January 12, 2026 ยท View on GitHub
homebridge-unifi-protect is a Homebridge plugin that provides HomeKit support to the UniFi Protect device ecosystem. UniFi Protect is Ubiquiti's video security platform, with rich camera, doorbell, and NVR controller hardware options for you to choose from, as well as an app which you can use to view, configure and manage your video camera and doorbells.
Configuration Reference
This is a complete reference of the HBUP settings JSON. The defaults should work well for almost everyone and configuration of this plugin should be done exclusively within the HBUP webUI and not manually editing JSONs which can be error-prone and lead to undesired behavior.
"platforms": [
{
"platform": "UniFi Protect",
"videoProcessor": "/usr/local/bin/ffmpeg",
"verboseFfmpeg": false,
"ringDelay": 0,
"options": [
"Enable.Motion.Switch"
],
"controllers": [
{
"name": "My UniFi Protect Controller",
"address": "1.2.3.4",
"overrideAddress": "a.b.c.d",
"username": "some-homebridge-user (or create a new one just for homebridge)",
"password": "some-password",
"doorbellMessages": [
{
"message": "Be right there.",
"duration": 90
}
],
"mqttUrl": "mqtt://test.mosquitto.org",
"mqttTopic": "unifi/protect"
}
]
}
]
| Fields | Description | Default | Required |
|---|---|---|---|
| platform | Must always be UniFi Protect. | UniFi Protect | Yes |
| address | Host or IP address of your UniFi Protect controller. | Yes | |
| username | Your UniFi Protect username. | Yes | |
| password | Your UniFi Protect password. | Yes | |
| overrideAddress | Override the address used when HBUP accesses camera URLs. | No | |
| doorbellMessages | Configure doorbell messages for your UniFi Protect controller. | [] | No |
| ringDelay | Delay between doorbell rings. Setting this to a non-zero value will prevent multiple rings of a doorbell over the specified duration. | 0 | No |
| videoProcessor | Specify path of ffmpeg. HBUP uses it's own ffmpeg version, and in general you should not specify a different one unless there is a specific need. | builtin or falling back to "ffmpeg" in your PATH. | No |
| options | Configure plugin feature options. | [] | No |
| name | Controller name to use for homebridge logging purposes. | UniFi Protect controller name | No |
| mqttUrl | The URL of your MQTT broker. This must be in URL form, e.g.: mqtt://user:password@1.2.3.4. | No | |
| mqttTopic | The base topic to use when publishing MQTT messages. | "unifi/protect" | No |
| verboseFfmpeg | Enable additional logging for video streaming. | false | No |