seydx / homebridge-camera-ui

Homebridge plugin for RTSP Cameras with HSV, motion detection support, Image Rekognition, Web UI to manage/watch streams and WebApp support
MIT License
638 stars 92 forks source link

HSV Inconsistent Recording or Notifications #404

Closed nskrotzki closed 2 years ago

nskrotzki commented 2 years ago

Describe the bug I'm running a 2 Wyze Cam v3's on my Raspberry Pi 4B 4GB and when I was testing with one camera, I was getting consistent notifications and recordings saved to HSV. I added a second camera to my instance and now neither camera gives me consistent notifications or recordings to HSV. Thinking my cameras may be overloading my Pi, I only left my 1 camera to record and upload to HSV, Front Door Cam, as ultimately that's the one I care most about getting recordings for. This didn't seem to have any impact.

Original issue from my Reddit.

Environment

camera.ui.log (1).txt

seydx commented 2 years ago

@nskrotzki

can you post your config.json pls and if possible also a screenshot from the cameras own settings (like fps, resolution, bitrate etc)

nskrotzki commented 2 years ago

@seydx I've copied in my config.json from CameraUI. image

And I do apologize, if you can guide me to find the camera's settings if it's in CameraUI, I can gladly give you those. the Wyze v3 should do 1920x1080 and 20fps during day 15fps during night according to the product page. I had left resolution etc as the defaults during setup.

seydx commented 2 years ago

@nskrotzki

Instead of a screenshot, can you please copy the config and paste it here? I would then customize it

nskrotzki commented 2 years ago

@seydx gotcha, here you go:

{ "debug": true, "port": 8081, "atHomeSwitch": false, "options": { "videoProcessor": "ffmpeg" }, "ssl": { "active": false }, "http": { "active": false, "port": 1883, "localhttp": false }, "smtp": { "active": false, "port": 2727, "space_replace": "+" }, "ftp": { "active": false, "useFile": false, "port": 5050 }, "mqtt": { "active": false, "tls": false, "port": 1883 }, "cameras": [ { "name": "3D Printer Cam", "manufacturer": "Wyze", "model": "V3", "serialNumber": "25466-WYZEC3", "motion": true, "motionTimeout": 15, "unbridge": true, "hsv": true, "prebuffering": true, "prebufferLength": 4, "videoConfig": { "source": "-i rtsp://username:password@192.168.1.2/live", "subSource": "-i rtsp://username:password@192.168.1.2/live", "stillImageSource": "-i rtsp://username:password@192.168.1.2/live -vframes 1 -r 1", "maxStreams": 2, "forceMax": true, "vcodec": "copy", "acodec": "libfdk_aac", "audio": true }, "smtp": { "email": "3D Printer Cam" }, "videoanalysis": { "active": true }, "mqtt": {} }, { "name": "Front Door Cam", "manufacturer": "Wyze", "model": "V3", "serialNumber": "25467-WYZEC3", "motion": true, "doorbell": false, "switches": false, "motionTimeout": 15, "motionDoorbell": false, "unbridge": true, "hsv": true, "prebuffering": true, "prebufferLength": 4, "videoConfig": { "source": "-i rtsp://username:password@192.168.1.3/live", "subSource": "-i rtsp://username:password@192.168.1.3/live", "stillImageSource": "-i rtsp://username:password@192.168.1.3/live -vframes 1 -r 1", "maxStreams": 2, "forceMax": true, "vcodec": "copy", "acodec": "libfdk_aac", "audio": true }, "smtp": { "email": "Front Door Cam" }, "videoanalysis": { "active": true }, "mqtt": {} } ] }

seydx commented 2 years ago

@nskrotzki

try this one

{
  "debug": true,
  "port": 8081,
  "atHomeSwitch": false,
  "options": {
    "videoProcessor": "ffmpeg"
  },
  "ssl": {
    "active": false
  },
  "http": {
    "active": false,
    "port": 1883,
    "localhttp": false
  },
  "smtp": {
    "active": false,
    "port": 2727,
    "space_replace": "+"
  },
  "ftp": {
    "active": false,
    "useFile": false,
    "port": 5050
  },
  "mqtt": {
    "active": false,
    "tls": false,
    "port": 1883
  },
  "cameras": [
    {
      "name": "3D Printer Cam",
      "manufacturer": "Wyze",
      "model": "V3",
      "serialNumber": "25466-WYZEC3",
      "motion": true,
      "motionTimeout": 15,
      "unbridge": true,
      "hsv": true,
      "prebuffering": true,
      "prebufferLength": 4,
      "videoConfig": {
        "source": "-i rtsp://username:password@192.168.1.2/live",
        "subSource": "-i rtsp://username:password@192.168.1.2/live",
        "stillImageSource": "-i rtsp://username:password@192.168.1.2/live -vframes 1 -r 1",
        "rtspTransport": "tcp",
        "maxStreams": 2,
        "vcodec": "copy",
        "acodec": "libfdk_aac",
        "audio": false
      },
      "smtp": {
        "email": "3D Printer Cam"
      },
      "videoanalysis": {
        "active": true
      },
      "mqtt": {}
    },
    {
      "name": "Front Door Cam",
      "manufacturer": "Wyze",
      "model": "V3",
      "serialNumber": "25467-WYZEC3",
      "motion": true,
      "doorbell": false,
      "switches": false,
      "motionTimeout": 15,
      "motionDoorbell": false,
      "unbridge": true,
      "hsv": true,
      "prebuffering": true,
      "prebufferLength": 4,
      "videoConfig": {
        "source": "-i rtsp://username:password@192.168.1.3/live",
        "subSource": "-i rtsp://username:password@192.168.1.3/live",
        "stillImageSource": "-i rtsp://username:password@192.168.1.3/live -vframes 1 -r 1",
        "rtspTransport": "tcp",
        "maxStreams": 2,
        "vcodec": "copy",
        "acodec": "libfdk_aac",
        "audio": false
      },
      "smtp": {
        "email": "Front Door Cam"
      },
      "videoanalysis": {
        "active": true
      },
      "mqtt": {}
    }
  ]
}
nskrotzki commented 2 years ago

Loaded that up, but started getting errors a few mins later. Attached logs. Still not getting notifications or recordings. Tried switching from stream and record to stream and back a few times also since I saw that was an issue recently also.

image

camera.ui.log (3).txt

seydx commented 2 years ago

@nskrotzki

Are you using the stream in parallel via another app/plugin?

Too many connections to the camera can cause 400 bad request

Please make sure that no other plugin or app is using the stream and then enter the following in Terminal

sudo killall -9 ffmpeg

and restart Homebridge

nskrotzki commented 2 years ago

It's possible I had too many streams running on like my iPad and computer. I ran sudo killall -9 ffmpeg in the homebridge terminal but it's throwing me an operation not permitted and no process found errors.

image

seydx commented 2 years ago

@nskrotzki

dont use the built in terminal, the user there does not seem to have enough rights

Can you connect to your pi through ssh and type the command.

seydx commented 2 years ago

@nskrotzki

or just restart your pi, that should also kill all processes

nskrotzki commented 2 years ago

@seydx I did a full hardware restart at 14:06 EST if that works also. And at 14:16 EST I got a ping of a person detected and a recording. I'll just monitor for now then?

seydx commented 2 years ago

@seydx I did a full hardware restart at 14:06 EST if that works also. And at 14:16 EST I got a ping of a person detected and a recording. I'll just monitor for now then?

allright

tbelcher commented 2 years ago

Describe the bug I'm running a 2 Wyze Cam v3's on my Raspberry Pi 4B 4GB and when I was testing with one camera, I was getting consistent notifications and recordings saved to HSV. I added a second camera to my instance and now neither camera gives me consistent notifications or recordings to HSV. Thinking my cameras may be overloading my Pi, I only left my 1 camera to record and upload to HSV, Front Door Cam, as ultimately that's the one I care most about getting recordings for. This didn't seem to have any impact.

Original issue from my Reddit.

Environment

  • Node.js Version: v16.16.1
  • Homebridge Version: v1.4
  • Camera UI Version: v5.0.14
  • Operating System: Raspberry Pi 4B 4GB
  • Browser: Chrome

camera.ui.log (1).txt

For what its worth, I'm having a similar issue: HKSV isn't notifying me of the same motion events that the Wyze native app is. My log also shows contstant motion events:

[1/24/2022, 5:29:37 PM] [CameraUI] Wyze: New motion detected, resetting motion in 60s.. [1/24/2022, 5:29:37 PM] [CameraUI] Wyze: Motion data: [{"zone":"region0","percent":1.10546875,"sensitivity":100,"dwell":60,"forceClose":3}]} [1/24/2022, 5:29:37 PM] [CameraUI] Wyze: New motion detected, resetting motion in 60s.. [1/24/2022, 5:29:37 PM] [CameraUI] Wyze: Motion data: [{"zone":"region0","percent":10.484808921813965,"sensitivity":91,"dwell":60,"forceClose":3}]} [1/24/2022, 5:29:38 PM] [CameraUI] Wyze: New motion detected, resetting motion in 60s.. [1/24/2022, 5:29:38 PM] [CameraUI] Wyze: Motion data: [{"zone":"region0","percent":1.0859375,"sensitivity":100,"dwell":60,"forceClose":3}]} [1/24/2022, 5:29:39 PM] [CameraUI] Wyze: New motion detected, resetting motion in 60s.. [1/24/2022, 5:29:39 PM] [CameraUI] Wyze: Motion data: [{"zone":"region0","percent":10.22829818725586,"sensitivity":91,"dwell":60,"forceClose":3}]} [1/24/2022, 5:29:39 PM] [CameraUI] Wyze: New motion detected, resetting motion in 60s.. [1/24/2022, 5:29:39 PM] [CameraUI] Wyze: Motion data: [{"zone":"region0","percent":1.1966146230697632,"sensitivity":100,"dwell":60,"forceClose":3}]} [1/24/2022, 5:29:41 PM] [CameraUI] Wyze: New motion detected, resetting motion in 60s.. [1/24/2022, 5:29:41 PM] [CameraUI] Wyze: Motion data: [{"zone":"region0","percent":10.437933921813965,"sensitivity":91,"dwell":60,"forceClose":3}]} [1/24/2022, 5:29:42 PM] [CameraUI] Wyze: New motion detected, resetting motion in 60s.. [1/24/2022, 5:29:42 PM] [CameraUI] Wyze: Motion data: [{"zone":"region0","percent":1.2391493320465088,"sensitivity":100,"dwell":60,"forceClose":3}]} [1/24/2022, 5:29:42 PM] [CameraUI] Wyze: Stopping stream.. [1/24/2022, 5:29:43 PM] [CameraUI] Wyze: Prebuffer request ended [1/24/2022, 5:29:43 PM] [CameraUI] Wyze: New motion detected, resetting motion in 60s.. [1/24/2022, 5:29:43 PM] [CameraUI] Wyze: Motion data: [{"zone":"region0","percent":10.395833015441895,"sensitivity":91,"dwell":60,"forceClose":3}]} [1/24/2022, 5:29:43 PM] [CameraUI] Wyze: Stream exit (expected) [1/24/2022, 5:29:44 PM] [CameraUI] Wyze: New motion detected, resetting motion in 60s.. [1/24/2022, 5:29:44 PM] [CameraUI] Wyze: Motion data: [{"zone":"region0","percent":1.1050347089767456,"sensitivity":100,"dwell":60,"forceClose":3}]}

Will also restart my raspberry pi and watch this thread for updates.

Tim

seydx commented 2 years ago

@tbelcher

everything works as expected. What you see is the dwell time

Dwell Time

Dwell time means that after a motion sensor is tripped it will need a N-seconds period in which it detects no motion in order to "reset" back to its default detection mode. This prevents the sensor from sending out "multiple alerts". Every time motion is detected again, the dwell time starts over and videoanalysis has to wait again for the entered time before it can send an "OFF" signal

So that the user does not think that the camera does not detect motion anymore, the dwell timer is forced to close after 3 minutes, so that the user can receive a new notification.

But you can change these settings in the camera.ui interface > Settings > Cameras > Videoanalysis