Exposes Dafang Hacks Features as HomeKit Accessories

Usage no npm install needed!

<script type="module">
  import homebridgeDafangMqttRepublish from 'https://cdn.skypack.dev/homebridge-dafang-mqtt-republish';



npm npm verified-by-homebridge

This plugin handles MQTT messages from Dafang Hacks to allow control of many features from within HomeKit.

The "republish" in the name is because this started as a way to to republish motion MQTT messages for homebridge-camera-ffmpeg, but that plugin now can handle MQTT messages from Dafang Hacks directly when properly configured, so that functionality has been removed from this.


More detailed setup instructions available in the wiki.

  1. Install Homebridge using the official instructions.
  2. Install homebridge-camera-ffmpeg using sudo npm install -g homebridge-camera-ffmpeg --unsafe-perm.
  3. Install this plugin using sudo npm install -g homebridge-dafang-mqtt-republish.
  4. Update your configuration file. See configuration sample below.


Edit your config.json accordingly. Configuration sample:

"platforms": [
       "platform": "dafangMqtt",
       "server": "",
       "port": 1883,
       "cameras": [
               "name": "Cat Food Camera",
               "dafang_topic": "dafang/catcam"
  • server: The address of your MQTT server. (Default:
  • port: The port of your MQTT server. (Default: 1883)
  • tls: Use TLS to connect to the MQTT server. (Default: false)
  • cameras: (Required) Array of Dafang Hacks camera configs (multiple supported).
    • name: (Required) Name of your camera. (Needs to be the same as in homebridge-camera-ffmpeg config)
    • dafang_topic: (Required) MQTT topic that your camera publishes to. (Must be unique per camera)
    • manufacturer: Manufacturer for exposed accessories.
    • model: Model for exposed accessories.
    • serialNumber: Serial number for exposed accessories.
    • firmwareRevision: Firmware revision for exposed accessories.
    • accessories
      • blueLed: Exposes blue LED as a lightbulb.
      • yellowLed: Exposes yellow LED as a lightbulb.
      • irLed: Exposes IR LED as a lightbulb.
      • irCut: Exposes IR filter as a switch.
      • brightness: Exposes brightness as a light sensor. Can be set to either hw or virtual and should match what your camera is configured to use. virtual is experimental and the values are unlikely to be accurate or useful.
      • nightMode: Exposes night mode as a switch.
      • motionTracking: Exposes motion tracking as a switch.
      • motorsVertical: Exposes tilting up and down as switches.
      • motorsHorizontal: Exposes panning left and right as switches.
      • motorsCalibrate: Exposes calibration as a switch.
      • recording: Exposes video recording as a switch.
      • snapshot: Exposes snapshot as a switch.
      • rtsp_mjpeg_server: Exposes RTSP MJPEG server as a switch.
      • rtsp_h264_server: Exposes RTSP H264 server as a switch.
      • remount_sdcard: Exposes remounting SD card as a switch.
      • reboot: Exposes rebooting as a switch.