QuantumEntangledAndy / neolink

An RTSP bridge to Reolink IP cameras
GNU Affero General Public License v3.0
257 stars 41 forks source link

Reolink Argus 3 PRO - Does Neolink cause connection losses? #112

Closed Veuchez closed 1 year ago

Veuchez commented 1 year ago

Describe the bug I have noticed that with Neolink active, the cameras experience intermittent connection losses. Although the cameras appear connected to the access points, they are not accessible through the Reolink app, and pinging them does not work. After a few minutes of apparent disconnection, they reconnect. It is possible that Neolink is causing an overload on the camera's network card, leading to instability in the Wi-Fi connection. This issue seems to occur regardless of the set bitrate.

Versions NVR software: Frigate 0.12.1-367d724 Neolink software: 0.5.13 Reolink camera model and firmware: Argus 3 PRO firmware version v3.0.0.1462_22102900

QuantumEntangledAndy commented 1 year ago

Not sure really, could be one of many things including a bug in the camera firmware when certain or too many commands are received. Or an issue with failing hardware, I had an E1 that died after about a year with worsening connections until it stopped connecting and no idea what caused it

Unless I can get something more concrete to identify the cause I will close this as its not a bug I can actually address

Veuchez commented 1 year ago

I wrote to Reolink these days describing the problem. They said they are making changes to my cameras UID connections. I have no idea what in particular, I asked for clarification, maybe they can come in handy.

QuantumEntangledAndy commented 1 year ago

Kinda of an odd think for reolink to say.

The UID for local is handled between the camera and the client. Which depends solely on the firmware version of the camera and the client version. As long as those don't change then nothing is happening.

For a remote connection via roelink servers e.g. map or device discovery the only information to get from reolink servers is some simple text data such as ip address and device id. Then it is all local with direct comms so again camera firmware and client version are all that matter here

For a remote connection over relay where reolink servers handle the actual data after the connection has been establised (via similar text data to map/device) the reolink servers job is to pass on without alteration the client data onto the camera. Again all that will matter is the firmware version and the client version.

There is nothing really to change about the UID its just an ID to get the ip and device id needed for a connection.

If they are changing something fundamental to the protocol with the connection then unless the firmware and client versions are also changed then the client and camera won't be able to use this new protocol....

QuantumEntangledAndy commented 1 year ago

Also nothing they do with changing the UID will effect local ping. Sounds like the device crashed or the hardware is failing or some local network issues

Veuchez commented 1 year ago

And what I thought too is in fact for this reason that I asked for explanations on what they do to the UID. The disconnection only happens to cameras connected to Neolink with Neolink active, if I disable Neolink I never find them disconnected, so I was perhaps thinking of an excessive traffic problem. In reality they don't really disconnect because for my access points they are connected, but they no longer transmit and receive, and on the reolink app they are not reachable. This problem occurs only after some time with active neolink. I also wrote to Ubiquiti and sent the logs to see if there are any compatibility issues with Reolink.

Veuchez commented 1 year ago

I'm still conducting tests, but for the past two days, Neolink and Frigate have been turned off, and I haven't experienced any camera disconnections. Now I'm going to try turning on Neolink only without starting Frigate, and let's see what happens.

Veuchez commented 1 year ago

With Neolink turned on, the cameras go offline in less than an hour. I would like to understand why. When I stop Neolink, the cameras immediately come back online.

Veuchez commented 1 year ago

@QuantumEntangledAndy I noticed something by leaving a continuous ping on the cameras. After a certain period, one of the cameras started to have high response times of 150/250ms and expired requests. I checked the official app, and the camera was connected, and the video was visible. As soon as I entered the camera's app to view the live feed, the response times returned to 1/2ms. Once I closed the live feed from the official app, the response time went back to 150/250ms. This keeps happening. How can the Reolink app improve the response times in the camera's ping? The same thing happens with Neolink. If it is active, the response times are low, but if it is turned off, the response times increase.

QuantumEntangledAndy commented 1 year ago

No idea. If your curious try looking at the packets with wireshark and read the documentation on the reverse engineered protocol.

I really have no time to pursue something like this atm. I'm busy with work things for the next few months. Just have some minor things planned that I could maybe release but REing something new that I can't even be sure is a thing is not something I have time for.