homebridge-dafang
Homebridge Plugin for Xiaomi Dafang / Wyze Camera
Installation
- Install ffmpeg on your device
$ brew install ffmpeg --with-openh264 --with-fdk-aac
- Install the plugin using:
$ npm install -g --unsafe-perm homebridge $ npm install -g --unsafe-perm homebridge-dafang
- Install CFW on camera and set up MQTT. Refer to Setup Readme
- Edit config.json and add the plugin. Refer to
config-sample.json
in repository. - Run Homebridge
- Add extra camera accessories in Home app. The setup code is the same as in homebridge.You can go into ->
+ -> Add New Accessory -> Add Manually -> Add Homebridge Pin -> Select Camera -> Add
Supported Cameras :
Name | Picture |
---|---|
Xiaomi Dafang | |
Xiaomi Xiaofang 1S | |
Wyzecam Pan | |
Wyzecam V2 | |
Sannce I21AG, MixSight HX-I2110T2, WanScam HW0036, Escam G02, Digoo BB-M2 | |
Any other Device with Ingenic T10/T20 Device |
Todo :
- Timelapse Switch
- Intercom 2 Way Audio **
Accessories :
Accessory | Type | Description | Config |
---|---|---|---|
Motion Sensor | motionSensor |
Alerts if Motion is Detected | threshold(optional) => In ms. |
Rich Motion Sensor | richMotionSensor |
Alerts if Motion is Detected (Rich Notifications) | threshold(optional) => In ms. |
Night Vision Sensor | nightVisionSensor |
Alerts if Night Mode is Detected | threshold(optional) => In ms. |
Night Vision Switch | nightVisionSwitch |
Toggles Night Mode on Camera => IR_LED ON IR_CUT OFF | None |
Brightness Lux Sensor | brightness |
Brightness Lux Sensor | None |
Automatic Night Mode Toggle Switch | autoNightVisionSwitch |
Toggles Automatic Night Mode on Camera | None |
Automatic Motion Tracking Switch | autoMotionTrackingSwitch |
Toggles Automatic Motion Tracking on Dafang | None |
Move/Rotate Camera Motor | moveCamera |
Moves Dafang Camera Horizontal/Vertical right/left up/down Motor | axis(required) => horizontal/vertical, direction(required) => left/right for horizontal and up/down for vertical |
Record Video+Audio | recordVideo |
Records Video + Audio Toggle Switch. Video(mp4) files are saved in local machine running homebridge | None |
Record Audio Only | recordAudio |
Records Audio Toggle Switch. Audio(aac) files are saved in local machine running homebridge | None |
Capture Image | captureImage |
Captures Image from Camera and saves to configured folder | None |
Recorded Media Storage Sensor | storageSensor |
Alerts when recorded media folder storage is full on the system due to recordings. You can set custom disk space in MB in config | None |
Clear Storage Switch | clearStorage |
Clears All Recordings | None |
Reset FFMEPG Switch | resetFFMPEG |
Kills all FFMPEG Zombie Scripts. Audio/Video Recordings will restart recording. | None |
Motion Detection Switch | motionDetection |
Enables/Disable Motion Detection. Turning off this switch will stop sending motion detection alerts. | None |
RTSP Server Switch | rtspSwitch |
Debug Switch to turn on/off RTSP H264 Stream Server. | None |
MJPEG Server Switch | mjpegSwitch |
Debug Switch to turn on/off MJPEG Server | None |
Recalibrate Motor Switch | recalibrateSwitch |
Debug Switch to Re-Calibrate Camera Motor. | None |
Restart Camera Switch | restartSwitch |
Debug Switch to restart Camera. | None |
Re-Mount SD Card RW Switch | remountSwitch |
Debug Switch to re mount sd card with RW permission. It prevents SD Card Failures like stuck RTSP Stream. | None |
Threshold => Lesser Threshold, More Accuracy. Dafang Motion detection is sensitive, and it toggles very quickly, to keep the state of sensor more stable little threshold will delay frequent alerts
## Demo :
Sorry for crappy quality. Tested on Rpi + Slow Network
Advanced Demo :
Simple Demo :
Rich Notifications :
Plugin Config :
Config | Type | Description | Config |
---|---|---|---|
mqtt.hostBroker | bool | Set true to host MQTT Locally, set false to connect to external MQTT Broker. | Required |
cameras | Array (Object) | Can add Multiple Cameras | Required |
Camera Config :
Config | Type | Description | Config |
---|---|---|---|
cameraRTSPStreamUrl | string | RTSP Stream Url e.g. rtsp://192.168.1.2:8554/unicast |
Required |
disableStream | bool | Set true to stream camera, set false to disable camera view | Optional |
mqttTopic | string | Each Dafang Device must have a unique topic. Topic should match for each corresponding camera accessory | Required |
folder | string | Absolute path of directory where recordings/images will be saved | Required |
segmentLength | number | Length of each video file. (in seconds). Each recording will be saved in segmented videos. Default : 60 (1 minute) | Optional |
maxDirSize | number | Max Size of folder (in mb) where recordings will be saved. Default : 2048 (2GB) | Optional |
checkStorageSizeInterval | number | Time in seconds to re check recording folder size for storageSensor . Default : 300 (5 min) |
Optional |
recordingDirectoryPathFormat | string | DateTime format for Recordings Directory Path. Default : MMM-Do-YY |
Optional |
recordingFilenameFormat | string | DateTime format for Recordings Filename. Default : YYYY-M-D-h-mm-ss |
Optional |
Refer to https://momentjscom.readthedocs.io/en/latest/moment/04-displaying/01-format/ for custom DirectoryPath/FileName formats for recordings..
Lint
$ npm run lint
Need Help ?
Get Slack Invite => https://slackin-znyruquwmv.now.sh/
Slack Channel => https://homebridgeteam.slack.com/messages/homebridge-dafang
Slack User => @sahilchaddha
Author
Sahil Chaddha