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"
      }
    ]
  }
]
FieldsDescriptionDefaultRequired
platformMust always be UniFi Protect.UniFi ProtectYes
addressHost or IP address of your UniFi Protect controller.Yes
usernameYour UniFi Protect username.Yes
passwordYour UniFi Protect password.Yes
overrideAddressOverride the address used when HBUP accesses camera URLs.No
doorbellMessagesConfigure doorbell messages for your UniFi Protect controller.[]No
ringDelayDelay between doorbell rings. Setting this to a non-zero value will prevent multiple rings of a doorbell over the specified duration.0No
videoProcessorSpecify 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
optionsConfigure plugin feature options.[]No
nameController name to use for homebridge logging purposes.UniFi Protect controller nameNo
mqttUrlThe URL of your MQTT broker. This must be in URL form, e.g.: mqtt://user:password@1.2.3.4.No
mqttTopicThe base topic to use when publishing MQTT messages."unifi/protect"No
verboseFfmpegEnable additional logging for video streaming.falseNo