dgreif / ring

Unofficial packages for Ring Doorbells, Cameras, Alarm System, and Smart Lighting
MIT License
1.21k stars 163 forks source link

Strange error when viewing live streaming from "Home" app #1395

Closed redeemer666 closed 7 months ago

redeemer666 commented 8 months ago

Is there an existing issue for this?

Describe The Bug

Every time I open the live streaming, on homebridge appears continuously this error

[homebridge-ring] { body: { doorbot_id: 76172224, session_id: 'REDACTED', radar_data: [ [Object] ] }, dialog_id: 'e3fc669a-d1af-4eb0-a073-745b02c991ab', method: 'timed_metadata' }

I think this is because the radar data that the camera sends (I have the latest ring pro doorbell 2 with Movement radar). This is causing stuttering on the image and on the audio I send and receive.

Can you please look into it

To Reproduce

Just open the live stream on video doorbell pro 2 when someone is in front of the camera

Expected behavior

No error at all

Relevant log output

[homebridge-ring] {
  body: {
    doorbot_id: 76172224,
    session_id: 'REDACTED',
    radar_data: [ [Object] ]
  },
  dialog_id: 'e3fc669a-d1af-4eb0-a073-745b02c991ab',
  method: 'timed_metadata'
}

Screenshots

Removed because I don't know if the "session ID" is personal information

Homebridge Ring Config

No particular configuration. Standard one with a reduced waiting time for images (10 seconds). Everything else is default

Additional context

No response

OS

Raspbian

Node.js Version

20.11

NPM Version

10.2.4

Homebridge/HOOBs Version

1.7.0

Homebridge Ring Plugin Version

12.1.0

Operating System

Raspbian

tsightler commented 8 months ago

This is not really a bug or even an error. Ring uses a websocket based control channel with their own protocol for the WebRTC connection. The code as currently written logs "UNKNOWN MESSAGE" and then the raw message if it receives any message with a method type that it doesn't know about, but this doesn't cause any actual problem as it is unrelated to the video stream itself, which is handled completely by WebRTC.

The "fix" would just be an additional case statement the "timed_metadata" method type that returned without logging the message to the console as my guess is that it is just coordinate data for the birds eye view thus ring-client-api wouldn't do anything with it anyway. This is almost certainly not related to any video/audio stuttering as those are handled directly by the WebRTC stream.

As it appears you are running on an RPi, more likely it is overrunning the UDP buffers as those devices struggle to keep up with the bursty bitrates output from newer Ring cameras. You can try increasing rmem_max/rmem_default on your host and see if that helps. Also, ring-client-api currently has no support for dynamic bitrate, so you get the maximum bitrate at all times which means it has high expectations of your network equipment.