homebridge-dahua-alerts
Version:
Routes motion alerts for Dahua, Alhua and Lorex camera streams to `homebridge-camera-ffmpeg`
142 lines (121 loc) • 5.4 kB
Markdown
# homebridge-dahua-alerts
[](https://github.com/homebridge/homebridge/wiki/Verified-Plugins) [](https://www.npmjs.com/package/homebridge-dahua-alerts) [](https://www.npmjs.com/package/homebridge-dahua-alerts)
Routes motion alerts for Dahua, Alhua, Amcrest and Lorex camera streams to homebridge-camera-ffmpeg
Like this plugin? -> [Buy me a ☕coffee☕](https://www.buymeacoffee.com/kusha)
### This plugin **only** supports **VideoMotion** alerts, not any SmartMotion detection. You must disable those features in order for this plugin to work correctly. [Please check issue #15 if you have compatible hardware and would like to contribute SmartMotion dectection](https://github.com/kushagharahi/homebridge-dahua-alerts/issues/15)
---
Confirmed working with:
| Dahua DVR | Dahua/Amcrest Standalone Camera | Lorex DVR |
| - | - | - |
| - | IP3M-943B | - |
| - | IP5M-B1186EB | - |
| - | DH-IPC-HDW3641TMP | - |
| NVR4208-8P | - | - |
| - | -| LHV1004 DHV |
| DHI-HCVR4116HS-S3 | - | - |
| DH-XVR5116HS-X | - | - |
| - | DH-IPC-HDBW4631R-S | - |
| DHI-NVR4104HS-P-4Ks2 | - | - |
| - | - | NR818 |
| - | N43AJ52-B | - |
but lots of Dahua/Lorex NVRs and standalone cameras share this VideoMotion api.
## Installation
1. Install Homebridge using the [official instructions](https://github.com/homebridge/homebridge/wiki).
2. Install [`homebridge-camera-ffmpeg`](https://github.com/Sunoo/homebridge-camera-ffmpeg)
3. Configure your RTSP streams in `homebridge-camera-ffmpeg`
1. Configure `"porthttp": 8088` for `Http-based Automation`](https://sunoo.github.io/homebridge-camera-ffmpeg/automation/http.html)
2. Configure `"motion": true` for the camera streams you want motion detection
3. Configure `"motionTimeout": 0` to disable automatically resetting the motion after 1 second default
4. (Optional) Configure `"localhttp": true` to ensure HTTP automations only work from same device (for enhanced security)
4. Install [`homebridge-dahua-alerts`](https://www.npmjs.com/package/homebridge-dahua-alerts).
5. Configure your NVR and camera settings.
- Ensure you have enabled `https` or port 443 on your device if you're getting `ECONNREFUSED` in the debug logs. Not required by all.
## Sample config.json
* Configuration for one NVR with multiple cameras
### homebridge-camera-ffmpeg
```javascript
{
"name": "Camera FFmpeg",
"porthttp": 8088,
"localhttp": true,
"cameras": [
{
"name": "Driveway",
"motion": true,
"motionTimeout": 0,
"videoConfig": {
"source": "-i rtsp://admin:<snip>@192.168.1.XX:554/cam/realmonitor?channel=1&subtype=1"
}
},
{
"name": "Porch",
"motion": true,
"motionTimeout": 0,
"videoConfig": {
"source": "-i rtsp://admin:<snip>@192.168.1.XX:554/cam/realmonitor?channel=2&subtype=1"
}
},
{
"name": "Backdoor",
"motion": true,
"motionTimeout": 0,
"videoConfig": {
"source": "-i rtsp://admin:<snip>@192.168.1.XX:554/cam/realmonitor?channel=4&subtype=1"
}
}
],
"platform": "Camera-ffmpeg"
}
```
### homebridge-dahua-alerts
```javascript
{
"cameras": [
{
"index": 0,
"cameraName": "Driveway"
},
{
"index": 1,
"cameraName": "Porch"
},
{
"index": 3,
"cameraName": "Backdoor"
}
],
"homebridgeCameraFfmpegHttpPort": 8088,
"host": "XX.XX.XX.XX",
"user": "admin",
"pass": "XX",
"platform": "dahua-alerts"
}
```
- `homebridgeCameraFfmpegHttpPort` must match the `porthttp` config in the `homebridge-camera-ffmpeg` config
- `host` is the IP of the NVR or camera
- `user` is username of the NVR or camera
- `pass` is the password of the NVR or camera
- `useHttp` (optional) use HTTP instead of HTTPS to connect to host
For each camera you want to monitor, add a new entry to the `cameras` array.
- `index` if the camera's channel number substracted by 1 (the index starts from 0, the camera channel starts from 1)
- `cameraName` must match the `name` of the camera specified in the `homebridge-camera-ffmpeg` config
#### Override Camera Connection Credentials
This is useful if you have standalone IP Camera(s) (not going through an NVR), a mix of IP Cameras and NVR(s), or multiple NVRs.
To define a host/user/pass on a camera simply add the `cameraCredentials` object. If you have a top level host/user/pass defined, this object will override it.
```javascript
"cameras": [
{
"index": 0,
"cameraName": "Driveway"
"cameraCredentials": {
"host": "XX.XX.XX.XX",
"user": "admin",
"pass": "XX"
}
},
```
* If using a standalone camera, the index will always be `0`
### Local development
- `npm run build` to get JS output in `dist`
## Credits
Referenced [nayrnet/node-dahua-api](https://github.com/nayrnet/node-dahua-api) for the Dahua/Lorex motion alerts API.