Skip to content
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

Open
sgoldstein78 opened this issue Jun 22, 2021 · 26 comments
Open

Reolink Argus ECO #170

sgoldstein78 opened this issue Jun 22, 2021 · 26 comments
Labels
hardware support Support additional hardware

Comments

@sgoldstein78
Copy link

sgoldstein78 commented Jun 22, 2021

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

  1. Create this configuration file:
bind = "0.0.0.0"

[[cameras]]
name = "Safe"
username = "****"
password = "****"
address = "****:9000"
stream = "mainStream"
  1. Launch Neolink:
    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

@sgoldstein78 sgoldstein78 added the bug Something isn't working label Jun 22, 2021
@thirtythreeforty
Copy link
Owner

thirtythreeforty commented Jun 23, 2021

This is a battery powered camera right? These aren't currently supported, because the protocol is very different than the Ethernet cameras. (See #91 )

@thirtythreeforty thirtythreeforty added hardware support Support additional hardware and removed bug Something isn't working labels Jun 23, 2021
@sgoldstein78
Copy link
Author

sgoldstein78 commented Jun 23, 2021 via email

@twistedddx
Copy link
Contributor

@slogen
Copy link

slogen commented Aug 9, 2021

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.

@QuantumEntangledAndy
Copy link
Collaborator

QuantumEntangledAndy commented Aug 15, 2021

@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.

@slogen
Copy link

slogen commented Aug 15, 2021

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:

hej@ad.slog.home@host2:~/src/neolink$ podman run -P --rm -t -i --volume="/home/SLOGHOME/hej/src/neolink/config.toml:/etc/neolink.toml"  2e8a96ca2f0b ./target/release/neolink rtsp --config=/etc/neolink.toml
[2021-08-15T22:20:12Z INFO  neolink] Neolink 0.4.0 (unknown commit) release
[2021-08-15T22:20:18Z ERROR neolink::rtsp] Error streaming from camera cam-garage, will retry in 1s: ConnectionError(Timeout)
[2021-08-15T22:20:18Z ERROR neolink::rtsp] Error streaming from camera cam-garage, will retry in 1s: ConnectionError(Timeout)

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:

bind = "0.0.0.0"

[[cameras]]
name = "cam-garage"
username = "XXXXXXXXX"
password = "YYYYYYYYY"
address = "95270001MPV97XLX"
stream = "both"

@QuantumEntangledAndy
Copy link
Collaborator

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.

@QuantumEntangledAndy
Copy link
Collaborator

QuantumEntangledAndy commented Aug 15, 2021

If you really want to use docker try adding the option --net=host To the docker part of the command. This will not create a virtual ethernet for the image and allow it to connect to the network more directly.

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.

@QuantumEntangledAndy
Copy link
Collaborator

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

@slogen
Copy link

slogen commented Aug 16, 2021

Thanks for your efforts!

I found an old laptop and installed ubuntu, DL your binaries. Same result:

hej@host3:~/Downloads/release-ubuntu-18.04$ ./neolink rtsp --config=config.toml
[2021-08-16T17:22:17Z INFO  neolink] Neolink 528f4d0bb70017dede691822d4e3cf482a7269e3 release
[2021-08-16T17:22:22Z ERROR neolink::rtsp] Error streaming from camera cam-garage, will retry in 1s: ConnectionError(Timeout)
[2021-08-16T17:22:22Z ERROR neolink::rtsp] Error streaming from camera cam-garage, will retry in 1s: ConnectionError(Timeout)
^C

I have verified that the broadcasts goes through the router, out on the right WLAN interface:

root@rt1:~# tcpdump -n -i br-CAM host 10.251.224.110 or host 255.255.255.255
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on br-CAM, link-type EN10MB (Ethernet), capture size 262144 bytes
19:24:14.516615 IP 10.251.224.181.53622 > 255.255.255.255.2018: UDP, length 206
19:24:14.517029 IP 10.251.224.181.53506 > 255.255.255.255.2018: UDP, length 205
19:24:15.016847 IP 10.251.224.181.53622 > 255.255.255.255.2018: UDP, length 206
19:24:15.017053 IP 10.251.224.181.53506 > 255.255.255.255.2018: UDP, length 205
19:24:15.517133 IP 10.251.224.181.53622 > 255.255.255.255.2018: UDP, length 206

The reolink app is causing lots of traffic on there:

root@rt1:~# tcpdump -n -i br-CAM host 10.251.224.110 or host 255.255.255.255
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on br-CAM, link-type EN10MB (Ethernet), capture size 262144 bytes
19:25:49.806620 ARP, Request who-has 10.251.224.110 tell 10.251.224.1, length 28
19:25:50.846558 ARP, Request who-has 10.251.224.110 tell 10.251.224.1, length 28
19:25:51.499407 ARP, Reply 10.251.224.110 is-at 10:08:2c:5e:b1:3b, length 42
19:25:51.499638 ARP, Reply 10.251.224.110 is-at 10:08:2c:5e:b1:3b, length 42
19:26:00.288731 IP 35.180.210.74.58200 > 10.251.224.110.52019: UDP, length 311
19:26:00.829914 IP 35.180.210.74.58200 > 10.251.224.110.52019: UDP, length 311
19:26:01.372080 IP 35.180.210.74.58200 > 10.251.224.110.52019: UDP, length 311
19:26:01.635393 IP 10.251.224.110.57849 > 35.180.210.74.57850: UDP, length 67
19:26:01.671265 IP 10.251.224.110.53223 > 35.180.210.74.57850: UDP, length 342
19:26:01.719112 IP 10.251.224.110.52019 > 35.180.210.74.58200: UDP, length 187
19:26:01.732882 IP 10.251.224.110.52019 > 35.180.210.74.58200: UDP, length 143
19:26:01.735431 IP 10.251.224.110.52019 > 10.251.1.162.24757: UDP, length 122
19:26:01.735483 IP 10.251.224.1 > 10.251.224.110: ICMP 10.251.1.162 udp port 24757 unreachable, length 158
19:26:01.738645 IP 10.251.224.110.52019 > 5.186.56.164.24757: UDP, length 120
19:26:01.738704 IP 5.186.56.164 > 10.251.224.110: ICMP 5.186.56.164 udp port 24757 unreachable, length 156
19:26:01.740967 IP 10.251.224.110.52019 > 35.180.210.74.51087: UDP, length 122
19:26:01.794109 IP 10.251.1.162.24757 > 10.251.224.110.52019: UDP, length 123
19:26:01.823645 IP 35.180.210.74.51087 > 10.251.224.110.52019: UDP, length 123
19:26:02.240986 IP 10.251.224.110.52019 > 35.180.210.74.58200: UDP, length 143
19:26:02.241578 IP 10.251.224.110.52019 > 10.251.1.162.24757: UDP, length 122
19:26:02.241836 IP 10.251.224.110.52019 > 5.186.56.164.24757: UDP, length 120
19:26:02.241894 IP 5.186.56.164 > 10.251.224.110: ICMP 5.186.56.164 udp port 24757 unreachable, length 156
19:26:02.244824 IP 10.251.224.110.52019 > 35.180.210.74.51087: UDP, length 122
19:26:02.282351 IP 10.251.224.110.52019 > 10.251.1.162.24757: UDP, length 158
19:26:02.437379 IP 10.251.1.162.24757 > 10.251.224.110.52019: UDP, length 1350
19:26:02.437645 IP 10.251.1.162.24757 > 10.251.224.110.52019: UDP, length 546
19:26:02.742375 IP 10.251.224.110.52019 > 35.180.210.74.58200: UDP, length 143
19:26:02.787677 IP 10.251.224.110.52019 > 10.251.1.162.24757: UDP, length 158
19:26:02.816619 IP 10.251.224.110.52019 > 10.251.1.162.24757: UDP, length 28
19:26:02.839606 IP 10.251.224.110.52019 > 10.251.1.162.24757: UDP, length 28
19:26:02.866834 IP 10.251.224.110.52019 > 10.251.1.162.24757: UDP, length 28
19:26:02.889612 IP 10.251.224.110.52019 > 10.251.1.162.24757: UDP, length 28
19:26:02.912842 IP 10.251.224.110.52019 > 10.251.1.162.24757: UDP, length 28

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?

@QuantumEntangledAndy
Copy link
Collaborator

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.

@QuantumEntangledAndy
Copy link
Collaborator

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)

@slogen
Copy link

slogen commented Aug 18, 2021

@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.

@Disane87
Copy link

Disane87 commented Sep 20, 2021

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:

[2021-09-20T18:37:48Z INFO neolink] Neolink 0.4.0 (unknown commit) release
[2021-09-20T18:37:51Z DEBUG neolink::rtsp::gst] Permitting anonymous to access /Garten, /Garten/mainStream
[2021-09-20T18:37:51Z DEBUG neolink::rtsp::gst] Permitting anonymous to access /Garten/subStream
[2021-09-20T18:37:51Z ERROR neolink::rtsp] Error streaming from camera Garten, will retry in 1s: Failed to connect to camera Garten at Address: ****** on channel 0

With IP:

[2021-09-20T18:42:31Z INFO neolink] Neolink 0.4.0 (unknown commit) release
[2021-09-20T18:42:31Z DEBUG neolink::rtsp::gst] Permitting anonymous to access /Garten, /Garten/mainStream
[2021-09-20T18:42:31Z DEBUG neolink::rtsp::gst] Permitting anonymous to access /Garten/subStream
[2021-09-20T18:42:31Z DEBUG neolink_core::bc_protocol] Trying address 192.168.10.71:9000
[2021-09-20T18:42:31Z DEBUG neolink_core::bc_protocol] Trying address 192.168.10.71:9000

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?

@QuantumEntangledAndy
Copy link
Collaborator

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"

@QuantumEntangledAndy
Copy link
Collaborator

Also with docker you will need to use --net=host otherwise the UDP broadcasts will fail.

@Disane87
Copy link

Disane87 commented Sep 21, 2021

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"

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.

Also with docker you will need to use --net=host otherwise the UDP broadcasts will fail.

Docker is already running on the host network :)

@sanglt
Copy link

sanglt commented Nov 1, 2021

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:

[2021-11-01T01:13:34Z INFO  neolink::rtsp] outdoor: Camera reports firmware version v3.0.0.307_21051100
[2021-11-01T01:13:34Z INFO  neolink::rtsp] outdoor: Starting video stream Main Stream (Clear)
[2021-11-01T01:13:34Z DEBUG neolink_core::bc::xml] Struct: start to parse "body"
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(body, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"})
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(AlarmEventList, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}, [version -> 1.1])
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(AlarmEvent, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}, [version -> 1.1])
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(channelId, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"})
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched Characters(0)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(channelId)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(status, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"})
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched Characters(none)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(status)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(AItype, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"})
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched Characters(none)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(AItype)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(recording, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"})
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched Characters(0)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(recording)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(timeStamp, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"})
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched Characters(0)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(timeStamp)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(AlarmEvent)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(AlarmEventList)
[2021-11-01T01:13:34Z DEBUG neolink_core::bc_protocol::connection::bcconn] Ignoring uninteresting message ID 33
[2021-11-01T01:13:34Z DEBUG neolink_core::bc::xml] Struct: start to parse "body"
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(body, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"})
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(AlarmEventList, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}, [version -> 1.1])
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(AlarmEvent, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}, [version -> 1.1])
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(channelId, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"})
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched Characters(0)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(channelId)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(status, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"})
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched Characters(none)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(status)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(AItype, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"})
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched Characters(none)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(AItype)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(recording, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"})
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched Characters(0)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(recording)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(timeStamp, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"})
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched Characters(0)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(timeStamp)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(AlarmEvent)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(AlarmEventList)
[2021-11-01T01:13:34Z DEBUG neolink_core::bc_protocol::connection::bcconn] Ignoring uninteresting message ID 33
[2021-11-01T01:13:34Z DEBUG neolink_core::bc::xml] Struct: start to parse "body"
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(body, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"})
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(AlarmEventList, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}, [version -> 1.1])
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(AlarmEvent, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}, [version -> 1.1])
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(channelId, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"})
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched Characters(0)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(channelId)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(status, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"})
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched Characters(none)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(status)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(AItype, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"})
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched Characters(none)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(AItype)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(recording, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"})
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched Characters(0)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(recording)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(timeStamp, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"})
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched Characters(0)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(timeStamp)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(AlarmEvent)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(AlarmEventList)
[2021-11-01T01:13:34Z DEBUG neolink_core::bc_protocol::connection::bcconn] Ignoring uninteresting message ID 33
[2021-11-01T01:13:34Z DEBUG neolink_core::bc::xml] Struct: start to parse "body"
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(body, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"})
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(AlarmEventList, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}, [version -> 1.1])
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(AlarmEvent, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}, [version -> 1.1])
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(channelId, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"})
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched Characters(0)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(channelId)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(status, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"})
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched Characters(none)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(status)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(AItype, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"})
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched Characters(none)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(AItype)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(recording, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"})
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched Characters(0)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(recording)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched StartElement(timeStamp, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"})
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched Characters(0)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(timeStamp)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(AlarmEvent)
[2021-11-01T01:13:34Z DEBUG yaserde::de] Fetched EndElement(AlarmEventList)
[2021-11-01T01:13:34Z DEBUG neolink_core::bc_protocol::connection::bcconn] Ignoring uninteresting message ID 33
[2021-11-01T01:13:35Z DEBUG neolink_core::bc::xml] Struct: start to parse "Extension"
[2021-11-01T01:13:35Z DEBUG yaserde::de] Fetched StartElement(Extension, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}, [version -> 1.1])
[2021-11-01T01:13:35Z DEBUG yaserde::de] Fetched StartElement(binaryData, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"})
[2021-11-01T01:13:35Z DEBUG yaserde::de] Fetched Characters(1)
[2021-11-01T01:13:35Z DEBUG yaserde::de] Fetched EndElement(binaryData)
[2021-11-01T01:13:37Z DEBUG neolink_core::bc_protocol] Dropping camera
[2021-11-01T01:13:37Z DEBUG neolink_core::bc_protocol::connection::bcconn] Shutting down BcConnection...
[2021-11-01T01:13:37Z DEBUG neolink_core::bc_protocol::connection::bcconn] Shutdown finished OK
[2021-11-01T01:13:37Z ERROR neolink::rtsp] Error streaming from camera outdoor, will retry in 1s: Error while streaming outdoor

    Caused by:
        0: Media Deserialization error
        1: Parsing error
[2021-11-01T01:13:37Z ERROR neolink_core::bc_protocol::connection::udpconn] Udp read poll aborted
[2021-11-01T01:13:37Z ERROR neolink_core::bc_protocol::connection::udpconn] Udp write poll aborted
[2021-11-01T01:13:38Z DEBUG neolink_core::bc_protocol] Trying uid 9527xxxxxxxxBS74A
[2021-11-01T01:13:38Z DEBUG neolink_core::bc_protocol::connection::udpconn::discover] Broadcasting to: [(255.255.255.255, 2015), (255.255.255.255, 2018), (192.168.10.255, 2015), (192.168.10.255, 2018)]

@QuantumEntangledAndy
Copy link
Collaborator

@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.

@sanglt
Copy link

sanglt commented Nov 1, 2021

@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.

Thanks, I open the issue #218

@slogen
Copy link

slogen commented Jul 26, 2022

@QuantumEntangledAndy @sgoldstein78

This issue seems to be fixed? I can run the current docker against my Argus ECO fine now.

Well, of course:

  1. PIR events + local-vid retrieval as in Rtsp stream and at the same time locally record video files #209 would be really nice to allow reactive/immediate retrieval of video for off-camera storage
  2. I am testing Minimize battery usage on UDP cameras #204, but having issues. Will report separately there :)

@psipika
Copy link

psipika commented May 31, 2023

This issue seems to be fixed? I can run the current docker against my Argus ECO fine now.

Is this running @thirtythreeforty's or @QuantumEntangledAndy's neolink?
I've got an Argus ECO that's blocked from accessing the internet and trying both (the latter with local discovery) and not having luck:

[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

@QuantumEntangledAndy
Copy link
Collaborator

Do it on my fork. And specify both the addr and the uid. That should work.

@nworbneb
Copy link

nworbneb commented Jul 28, 2023

Hello,

Does anyone have the Argus Eco working? I've tried a few different configurations but I get:

[2023-07-28T06:59:16Z INFO  neolink] Neolink 8c6776607b93302d63340ad4087f01361ee30c79 release
[2023-07-28T06:59:18Z INFO  neolink::rtsp] Wireless: Connecting to camera at UID: 9527**********2Q
[2023-07-28T06:59:18Z INFO  neolink::rtsp] Wireless: Logging in
[2023-07-28T06:59:18Z ERROR neolink_core::bc_protocol::connection::udpconn] Camera requested disconnect
[2023-07-28T06:59:18Z ERROR neolink_core::bc_protocol::connection::udpconn] Udp read poll aborted
[2023-07-28T06:59:18Z ERROR neolink::rtsp] Error streaming from camera Wireless, will retry in 1s: Failed to login to Wireless
    
    Caused by:
        Dropped connection
[2023-07-28T06:59:18Z ERROR neolink_core::bc_protocol::connection::udpconn] Udp write poll aborted
[2023-07-28T06:59:19Z INFO  neolink::rtsp] Wireless: Connecting to camera at UID: 9527**********2Q
[2023-07-28T06:59:19Z INFO  neolink::rtsp] Wireless: Logging in
[2023-07-28T06:59:19Z ERROR neolink_core::bc_protocol::connection::udpconn] Camera requested disconnect
[2023-07-28T06:59:19Z ERROR neolink_core::bc_protocol::connection::udpconn] Udp read poll aborted
[2023-07-28T06:59:19Z ERROR neolink::rtsp] Error streaming from camera Wireless, will retry in 2s: Failed to login to Wireless
    
    Caused by:
        Dropped connection
[2023-07-28T06:59:19Z ERROR neolink_core::bc_protocol::connection::udpconn] Udp write poll aborted

with configuration:

bind = "0.0.0.0"

[[cameras]]
name = "Wireless"
username = "admin"
password = "password"
stream = "subStream"
uid = "9527**********2Q"

Device firmware "v3.0.0.1981_23040606"

Many thanks

@enoquefcd
Copy link

any update ? :)

@QuantumEntangledAndy
Copy link
Collaborator

@enoquefcd Please go read #370, try it on the maintained fork not this one

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
hardware support Support additional hardware
Projects
None yet
Development

No branches or pull requests

10 participants