-
Notifications
You must be signed in to change notification settings - Fork 157
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reolink Argus ECO #170
Comments
This is a battery powered camera right? These aren't currently supported, because the protocol is very different than the Ethernet cameras. (See #91 ) |
Is there another project that is working on them?
From: George Hilliard ***@***.***
Sent: Wednesday, June 23, 2021 2:08 PM
To: thirtythreeforty/neolink
Cc: Seth Goldstein; Author
Subject: Re: [thirtythreeforty/neolink] Reolink Argus ECO (#170)
This is a battery powered camera right? These aren't currently supported, because the protocol is very different than the Ethernet cameras.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub<#170 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AUSSA7XEZZNLROFJPATZDRLTUIPILANCNFSM47EFSX3A>.
|
@sgoldstein78 you could try this : |
The Reolink Argus ECO seem to use the BAICHUAN protocol over UDP. I have left a pcap trace (don't worry, the password is now changed) in google drive. It contains low and high-res images and some actions against the camera through the reolink app. The wireshark dissector applies very nicely on the packages. The port however, seems to change all the time. |
@slogen thanks to your pcap and me having a bit of spare time I've managed to get UDP to work. Would you be willing to test it? It's on my fork in the udp_proto branch The last build artifacts for download are here There are some other changes in the program such as subcommands. To get rtsp it is neolink rtsp --config=config.toml To get a UDP camera to connect you need to give it the UID of the camera in the toml on the same place you would usually put the IP address It seems that my E1 supports both TCP and UDP but prefers TCP. Using your packets I was able to replicate the initial handshake and force my camera to talk over UDP. It's working on my E1 but I would like it tested on an actual battery camera as there may be more differences. |
Hi @QuantumEntangledAndy. Awesome you made progress. I am having issues testing it out. I suspect it's because I was running it under podman, and the networking is restricted. While I am a programmer (comp. sci., mostly C, Java, C#, F#, lisp,...) I am new to rust and don't currently have an environment outside podman where I can test. I get the following output:
Which seems to to come from mod.rs in the camera connect. I can follow the code to the "camera.login" function-call, but not locate where that is declared :) I can't see how I can enable any more tracing? Did I get the way to set the address correct? My config file is:
|
I see you then testing my UDP branch. I don't think you will be able to use the docker for this. Udp requires dynamic ports and broadcasts while the docker image uses a single fixed port. I think its possible by setting the docker network to host or an appropriate bridging mode. if you are testing please use the binary instead so we can eliminate docker as a source of issue. |
If you really want to use docker try adding the option This answer is suggested by this docker issue. Which seems to suggest that UDP broadcasts are not forwarded properly from inside the container to outside while in bridging mode. |
You could just use my binaries here and intall gstreamer. Dependencies for neolink on linux can be grabbed with: apt install \
libgstrtspserver-1.0-0 \
libgstreamer1.0-0 \
libgstreamer-plugins-bad1.0-0 \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad |
Thanks for your efforts! I found an old laptop and installed ubuntu, DL your binaries. Same result:
I have verified that the broadcasts goes through the router, out on the right WLAN interface:
The reolink app is causing lots of traffic on there:
I tried changing the PW through the app, so I am absolutely certain its correct. As you can see, there is some kind of cloud traffic to: 35.180.210.74.58200 If I block that traffic while already having video open from reolink, the video continues and I can operate the controls in the reolink app.. If I completely block traffic to 35.180.210.74, the client cannot connect. Looks like some form of cloud service is involved. I can PM you a trace of the communication if you want? |
Sure you can send me the capture and I'll look when I can. can you make sure that the wireshark dumo starts from the very beginning of the connectio. Could you also ensure that your firewall is off on the Linux box I just had an issue with my rpi not working and it turned out to be because of my firewall. Also can you see if this project works https://github.com/vherrlein/camera_proxy/tree/develop it uses the same basic principle I am using and it reports support for Argus pro and eco. |
P.s. could we move this discussion to #91 I have a few more people testing there and Id rather not keep repeating myself on 2 threads. Also I think I'm going to need those packets it the middle man server you suggested. Please send them to my email (which you can find in my git commits) |
@QuantumEntangledAndy. Nice of you to put efforts into this! I am be establishing a completely external net for one of the cams. Then I should be able to join the phone to that and capture all traffic. I could give you PW & OpenVPN access to that on an OVPN bridge, then you can experiment and test all you want! It may take a few days as I am really busy at the moment. |
Beforehand thank you for this great project @thirtythreeforty! I have a Argus 3 Pro since today and just installed the docker image (tag udp_proto) of @QuantumEntangledAndy on my Unraid server. Unfortunatly i get this error With UID as address:
With IP:
The password and user is correct. I just read this thread more than once and couldn't find any solution. Do you have an idea how to solve this? Or could this be an issue with docker itself? |
So first off this branch is still experimental and not merged yet. Cavet Emptor and all that. Configuration and functionality may change before final merge in PR #199. In #199 it was discussed that the UID should be specified with a seperate field so your config should be: [[cameras]]
name = "Safe"
username = "username"
password = "pass"
uid = "youruid"
stream = "mainStream" |
Also with docker you will need to use --net=host otherwise the UDP broadcasts will fail. |
Yeah I know, that this branch is fully experimental. So its only to help you to support those cams in the future. I gonna test the UID field.
Docker is already running on the host network :) |
The PR #199 merged and I test it today. Still can't connect to Argus camera. I tried on both Docker (with host network) and Ubuntu server without any luck. Here is the logs from debug mode:
|
@sanglt Please open a new issue and we an discuss it there. You seem to have a working connection that fails later on in the stream due to a parsing error. |
@QuantumEntangledAndy @sgoldstein78 This issue seems to be fixed? I can run the current docker against my Argus ECO fine now. Well, of course:
|
Is this running @thirtythreeforty's or @QuantumEntangledAndy's [2023-05-31T16:53:37Z WARN neolink::rtsp] poczta: Retryable error: poczta: Could not connect to camera
Caused by:
0: Failed to connect to camera poczta at UID: 9******** on channel 0
1: Cannot contact camera at given address
[2023-05-31T16:53:45Z INFO neolink_core::bc_protocol] poczta: Trying local discovery
[2023-05-31T16:53:50Z INFO neolink_core::bc_protocol] poczta: Trying remote discovery
[2023-05-31T16:53:50Z INFO neolink_core::bc_protocol] poczta: Trying map discovery
[2023-05-31T16:53:55Z INFO neolink_core::bc_protocol] poczta: Trying relay discovery
[2023-05-31T16:53:56Z INFO neolink_core::bc_protocol] poczta: Discovery failed
[2023-05-31T16:53:56Z WARN neolink::rtsp] poczta: Retryable error: poczta: Could not connect to camera |
Do it on my fork. And specify both the addr and the uid. That should work. |
Hello, Does anyone have the Argus Eco working? I've tried a few different configurations but I get:
with configuration:
Device firmware "v3.0.0.1981_23040606" Many thanks |
any update ? :) |
@enoquefcd Please go read #370, try it on the maintained fork not this one |
Describe the bug
C:\gstreamer\1.0\msvc_x86_64\bin>neolink --config config.toml
[2021-06-22T17:51:29Z INFO neolink] Neolink fc6573e release
[2021-06-22T17:51:32Z ERROR neolink] Error streaming from camera Safe, will retry in 1s: Timeout
continues indefinately
To Reproduce
camera is currently DMZ'd to allow for troubleshooting this issue
See above
Expected behavior
No definative error given other than listed above
Versions
NVR software: going to use blue iris but haven't gotten to that step yet as neolink does not connect
Neolink software: See above
Reolink camera model and firmware: Reolink Argus Eco firmware 1030_671_488_41
The text was updated successfully, but these errors were encountered: