kushagharahi / homebridge-dahua-alerts

Routes motion alerts for Dahua and Lorex camera streams to homebridge-camera-ffmpeg
27 stars 13 forks source link

homebridge-dahua-alerts

verified-by-homebridge npm version npm total downloads

Routes motion alerts for Dahua, Alhua, Amcrest and Lorex camera streams to homebridge-camera-ffmpeg

Like this plugin? -> Buy me a ☕coffee☕


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.
  2. Install 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.
  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

homebridge-camera-ffmpeg

{
    "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

{
    "cameras": [
        {
            "index": 0,
            "cameraName": "Driveway"
        },
        {
            "index": 1,
            "cameraName": "Porch"
        },
        {
            "index": 3,
            "cameraName": "Backdoor"
        }
    ],
    "homebridgeCameraFfmpegHttpPort": 8088,
    "host": "XX.XX.XX.XX",
    "user": "admin",
    "pass": "XX",
    "eventTypes": 
        {
        "VideoMotion": true
        },
    "platform": "dahua-alerts"
}

For each camera you want to monitor, add a new entry to the cameras array.

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.

    "cameras": [
        {
            "index": 0,
            "cameraName": "Driveway"
            "cameraCredentials": {
                    "host": "XX.XX.XX.XX",
                    "user": "admin",
                    "pass": "XX"
            }
        },

Local development

Credits

Referenced nayrnet/node-dahua-api for the Dahua/Lorex motion alerts API.