QuantumEntangledAndy / neolink

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

Unable to add Argus 3 Pro & MQTT not connecting #237

Open morrisb74 opened 2 months ago

morrisb74 commented 2 months ago

Describe the bug After adding the UID & IP to the config neolink connects to the camera, logs in but disconnects due to a "Nom Parsing Error" And MQTT drops the connection due to Bad ClientID

To Reproduce Steps to reproduce the behavior. Example:

  1. Create this configuration file:
    
    [mqtt]
    broker_addr = "10.x.y.z" # Address of the mqtt server
    port = 1883 # mqtt servers port
    credentials = ["xxx", "yyy"] # mqtt server login details

[[cameras]] name = "frontdrive" discovery = "local" username = "admin" password = "password" uid = "95xxxxxxxxxxx" address = "10.x.y.z" idle_disconnect = true

[cameras.mqtt] [cameras.mqtt.discovery] topic = "xxxxxxxxxx" features = ["battery"]


3. Launch Neolink:
4. Observe the logs

[2024-04-16T06:58:57Z INFO neolink::mqtt::discovery] Enabled MQTT discovery for frontdrive with friendly name Frontdrive [2024-04-16T06:58:57Z INFO neolink] Neolink d354b90976f3c542cc2bf061e44cc5d06da0b3bc release [2024-04-16T06:58:57Z INFO neolink::rtsp] frontdrive: Rtsp Starting [2024-04-16T06:58:57Z INFO neolink::mqtt] frontdrive: MQTT Starting [2024-04-16T06:58:57Z INFO neolink::rtsp] Starting RTSP Server at 0.0.0.0:8554 [2024-04-16T06:58:57Z INFO neolink::utils] frontdrive: Connecting to camera at Address: 10.x.y.x, UID: 95xxxxxxxxx [2024-04-16T06:58:57Z INFO neolink_core::bc_protocol] frontdrive: Trying TCP discovery [2024-04-16T06:58:57Z ERROR neolink::mqtt::mqttc] MQTT Client Connection Failed: MQTT connection dropped

Caused by:
    Connection refused, return code: `BadClientId`

[2024-04-16T06:59:00Z INFO neolink_core::bc_protocol] frontdrive: Trying local discovery [2024-04-16T06:59:14Z INFO neolink_core::bc_protocol] frontdrive: Local discovery success 95xxxxxxxxx at 10.x.y.x:13135 [2024-04-16T06:59:16Z INFO neolink::utils] frontdrive: Connected and logged in [2024-04-16T06:59:14Z INFO neolink::utils] frontdrive: Logging in [2024-04-16T06:59:18Z INFO neolink::common::camthread] frontdrive: Camera time is already set: 2024-04-16 7:59:16.0 +00:00:00 [2024-04-16T06:59:20Z INFO neolink::common::neocam] frontdrive: Model Reolink Argus 3 Pro [2024-04-16T06:59:20Z INFO neolink::common::neocam] frontdrive: Firmware Version v3.0.0.2527_23072900 [2024-04-16T06:59:21Z WARN neolink::common::camthread] frontdrive: Connection Lost: Nom Parsing error: Nom Error: VerboseError { errors: [([], Nom(MapRes)), ([], Context("Unable to parse Extension XML"))] } [2024-04-16T06:59:21Z INFO neolink::common::camthread] frontdrive: Attempt reconnect in 50ms



**Expected behavior**
That the camera would be available, working & added to MQTT

**Versions**
NVR software: N/A
Neolink software: ``Neolink d354b90976f3c542cc2bf061e44cc5d06da0b3bc release`` running in docker ``Host Mode``
Reolink camera model and firmware: ``Reolink Argus 3 Pro`` ``v3.0.0.2527_23072900`` 
QuantumEntangledAndy commented 2 months ago

Not sure about the BadClientId, this is an upstream error message comming from rumqttc. I'm not enough of an expert on mqtt protocol to know what could cause a BadClientId. Perhaps theres some sort of restrictions on the client ID on your server, we use the ID "Neolink"

QuantumEntangledAndy commented 2 months ago

With regards to the "Unable to parse Extension XML" this is an issue because I have had to swap the xml parser due to upstream changes. The newer parser is more strict and I am still trying to find all the changes I need to make. Please swap your docker image to pull from the v0.6.3-rc2 tag instead of latest until all of the changes for the xml are addressed

QuantumEntangledAndy commented 2 months ago

I don't suppose you can get a packet capture of the failing ExtensionXML parsing? I haven't seen extension XML fail for me yet and I'd like to know which field is not working

morrisb74 commented 2 months ago

I don't suppose you can get a packet capture of the failing ExtensionXML parsing? I haven't seen extension XML fail for me yet and I'd like to know which field is not working

What exactly do you need and how can I produce it ?

About the MQTT CliendID ... Most software use a name and some sort of unique id (Tasmota Devices use dvev-[MACADDRESS] as ClientID for example). It's not used mostly, but is there to quickly identify the client on the server, I use EMQX as MQTT broker which shows a bit more than that little bug called Mosquitto :-D

Maybe add a way to have it in the [mqtt] config :

eg.

[mqtt]
clientid = "MyOwnWeirdClientID"

Sidenote: v0.6.3-rc2 doesn't exist on docker-hub ... i used the rc.1 now and that doesn't barf out any errors (yet ;-) )

QuantumEntangledAndy commented 2 months ago

For the packet dump the proper way is to use wireshark... But I think I added an easier way into neolink by putting debug = true into the [[cameras]] table

[[cameras]]
# Other camera opts
debug = true
QuantumEntangledAndy commented 2 months ago

I'm quite busy tracking the memory leak atm, if you can make a PR for the clientID that would be good

morrisb74 commented 2 months ago

Here is the debug output of 0.6.3.rc.2 (aka latest) Hope this helps debugging

[2024-04-18T13:29:08Z INFO  neolink] Neolink d354b90976f3c542cc2bf061e44cc5d06da0b3bc release
[2024-04-18T13:29:08Z INFO  neolink::rtsp] backgarden: Rtsp Starting
[2024-04-18T13:29:08Z INFO  neolink::rtsp] frontdrive: Rtsp Starting
[2024-04-18T13:29:08Z INFO  neolink::rtsp] Starting RTSP Server at 0.0.0.0:8554
[2024-04-18T13:29:08Z INFO  neolink::utils] frontdrive: Connecting to camera at Address: 10.x.x.y, UID: 9527XXXXXXXXXXXY
[2024-04-18T13:29:08Z INFO  neolink_core::bc_protocol] frontdrive: Trying TCP discovery
[2024-04-18T13:29:08Z INFO  neolink::mqtt] backgarden: MQTT Starting
[2024-04-18T13:29:08Z INFO  neolink::utils] backgarden: Connecting to camera at Address: 10.x.x.x, UID: 9527XXXXXXXXXXXX
[2024-04-18T13:29:08Z INFO  neolink_core::bc_protocol] backgarden: Trying TCP discovery
[2024-04-18T13:29:08Z INFO  neolink::mqtt] frontdrive: MQTT Starting
[2024-04-18T13:29:08Z INFO  neolink::mqtt::discovery] Enabled MQTT discovery for backgarden with friendly name Backgarden
[2024-04-18T13:29:08Z INFO  neolink_core::bc_protocol] backgarden: Trying local discovery
[2024-04-18T13:29:09Z INFO  neolink_core::bc_protocol] frontdrive: Trying local discovery
[2024-04-18T13:29:10Z INFO  neolink_core::bc_protocol] frontdrive: Local discovery success 9527XXXXXXXXXXXY at 10.x.x.y:27970
[2024-04-18T13:29:10Z INFO  neolink::utils] frontdrive: Logging in
[2024-04-18T13:29:10Z INFO  neolink_core::bc_protocol] backgarden: Local discovery success 9527XXXXXXXXXXXX at 10.x.x.x:23120
[2024-04-18T13:29:10Z INFO  neolink::utils] backgarden: Logging in
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<Encryption version=\"1.1\">\n<type>md5</type>\n<nonce>66212024-xxxxElZZcqpkDHTxyyyy</nonce>\n</Encryption>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<Encryption version=\"1.1\">\n<type>md5</type>\n<nonce>66212024-xxxxElZZcqpkDHTxyyyy</nonce>\n</Encryption>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<DeviceInfo version=\"1.1\">\n<firmVersion>00000000000000</firmVersion>\n<IOInputPortNum>0</IOInputPortNum>\n<IOOutputPortNum>0</IOOutputPortNum>\n<diskNum>0</diskNum>\n<type>wifi_solo_ipc</type>\n<channelNum>1</channelNum>\n<audioNum>1</audioNum>\n<ipChannel>0</ipChannel>\n<analogChnNum>1</analogChnNum>\n<resolution>\n<resolutionName>2880*1616</resolutionName>\n<width>2880</width>\n<height>1616</height>\n</resolution>\n<secretCode>000000007f9695a4</secretCode>\n<bootSecret>000000007f9695a4</bootSecret>\n<language>English</language>\n<sdCard>1</sdCard>\n<ptzMode>none</ptzMode>\n<typeInfo>IPC</typeInfo>\n<softVer>50331900</softVer>\n<hardVer>0</hardVer>\n<panelVer>0</panelVer>\n<hdChannel1>0</hdChannel1>\n<hdChannel2>0</hdChannel2>\n<hdChannel3>0</hdChannel3>\n<hdChannel4>0</hdChannel4>\n<norm>NTSC</norm>\n<osdFormat>MDY</osdFormat>\n<B485>0</B485>\n<supportAutoUpdate>0</supportAutoUpdate>\n<userVer>1</userVer>\n<FrameworkVer>1</FrameworkVer>\n<authMode>0</authMode>\n</DeviceInfo>\n<StreamInfoList version=\"1.1\">\n<StreamInfo>\n<channelBits>1</channelBits>\n<encodeTable>\n<type>mainStream</type>\n<resolution>\n<width>2880</width>\n<height>1616</height>\n</resolution>\n<defaultFramerate>15</defaultFramerate>\n<defaultBitrate>3072</defaultBitrate>\n<framerateTable>10,12,15</framerateTable>\n<bitrateTable>1024,1536,2048,3072,4096</bitrateTable>\n</encodeTable>\n<encodeTable>\n<type>subStream</type>\n<resolution>\n<width>896</width>\n<height>512</height>\n</resolution>\n<defaultFramerate>15</defaultFramerate>\n<defaultBitrate>672</defaultBitrate>\n<framerateTable>10,15</framerateTable>\n<bitrateTable>64,128,160,192,256,512,672</bitrateTable>\n</encodeTable>\n</StreamInfo>\n</StreamInfoList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<DeviceInfo version=\"1.1\">\n<firmVersion>00000000000000</firmVersion>\n<IOInputPortNum>0</IOInputPortNum>\n<IOOutputPortNum>0</IOOutputPortNum>\n<diskNum>0</diskNum>\n<type>wifi_solo_ipc</type>\n<channelNum>1</channelNum>\n<audioNum>1</audioNum>\n<ipChannel>0</ipChannel>\n<analogChnNum>1</analogChnNum>\n<resolution>\n<resolutionName>2880*1616</resolutionName>\n<width>2880</width>\n<height>1616</height>\n</resolution>\n<secretCode>00000000a52c8624</secretCode>\n<bootSecret>00000000a52c8624</bootSecret>\n<language>English</language>\n<sdCard>1</sdCard>\n<ptzMode>none</ptzMode>\n<typeInfo>IPC</typeInfo>\n<softVer>50331900</softVer>\n<hardVer>0</hardVer>\n<panelVer>0</panelVer>\n<hdChannel1>0</hdChannel1>\n<hdChannel2>0</hdChannel2>\n<hdChannel3>0</hdChannel3>\n<hdChannel4>0</hdChannel4>\n<norm>NTSC</norm>\n<osdFormat>MDY</osdFormat>\n<B485>0</B485>\n<supportAutoUpdate>0</supportAutoUpdate>\n<userVer>1</userVer>\n<FrameworkVer>1</FrameworkVer>\n<authMode>0</authMode>\n</DeviceInfo>\n<StreamInfoList version=\"1.1\">\n<StreamInfo>\n<channelBits>1</channelBits>\n<encodeTable>\n<type>mainStream</type>\n<resolution>\n<width>2880</width>\n<height>1616</height>\n</resolution>\n<defaultFramerate>15</defaultFramerate>\n<defaultBitrate>3072</defaultBitrate>\n<framerateTable>10,12,15</framerateTable>\n<bitrateTable>1024,1536,2048,3072,4096</bitrateTable>\n</encodeTable>\n<encodeTable>\n<type>subStream</type>\n<resolution>\n<width>896</width>\n<height>512</height>\n</resolution>\n<defaultFramerate>15</defaultFramerate>\n<defaultBitrate>672</defaultBitrate>\n<framerateTable>10,15</framerateTable>\n<bitrateTable>64,128,160,192,256,512,672</bitrateTable>\n</encodeTable>\n</StreamInfo>\n</StreamInfoList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AbilityInfo version=\"1.1\">\n<userName>admin</userName>\n<system>\n<subModule>\n<abilityValue>general_rw, norm_rw, version_ro, uid_ro, autoReboot_rw, restore_rw, reboot_rw, shutdown_rw, dst_rw, log_ro, performance_ro, upgrade_rw, export_rw, import_rw, bootPwd_rw</abilityValue>\n</subModule>\n</system>\n<streaming>\n<subModule>\n<channelId>0</channelId>\n<abilityValue>preview_rw, compress_rw, snap_rw, rtsp_rw, streamTable_ro</abilityValue>\n</subModule>\n</streaming>\n<network>\n<subModule>\n<abilityValue>port_rw, dns_rw, email_rw, ipFilter_rw, localLink_rw, pppoe_rw, upnp_rw, wifi_rw, ntp_rw, netStatus_rw, ptop_rw, autontp_rw</abilityValue>\n</subModule>\n</network>\n<PTZ>\n<subModule>\n<abilityValue>control_rw, preset_rw, cruise_rw, track_rw, decoder_rw, ptzInfo_ro</abilityValue>\n</subModule>\n</PTZ>\n<alarm>\n<subModule>\n<abilityValue>rfAlarm_rw</abilityValue>\n</subModule>\n<subModule>\n<channelId>0</channelId>\n<abilityValue>motion_rw</abilityValue>\n</subModule>\n</alarm>\n<image>\n<subModule>\n<channelId>0</channelId>\n<abilityValue>ispBasic_rw, ispAdvance_rw, ledState_rw</abilityValue>\n</subModule>\n</image>\n<video>\n<subModule>\n<channelId>0</channelId>\n<abilityValue>osdName_rw, osdTime_rw, shelter_rw</abilityValue>\n</subModule>\n</video>\n<security>\n<subModule>\n<abilityValue>user_rw, userOnline_rw, bootPwd_rw</abilityValue>\n</subModule>\n</security>\n</AbilityInfo>\n</body>\n"
[2024-04-18T13:29:11Z INFO  neolink::utils] frontdrive: Connected and logged in
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AbilityInfo version=\"1.1\">\n<userName>admin</userName>\n<system>\n<subModule>\n<abilityValue>general_rw, norm_rw, version_ro, uid_ro, autoReboot_rw, restore_rw, reboot_rw, shutdown_rw, dst_rw, log_ro, performance_ro, upgrade_rw, export_rw, import_rw, bootPwd_rw</abilityValue>\n</subModule>\n</system>\n<streaming>\n<subModule>\n<channelId>0</channelId>\n<abilityValue>preview_rw, compress_rw, snap_rw, rtsp_rw, streamTable_ro</abilityValue>\n</subModule>\n</streaming>\n<network>\n<subModule>\n<abilityValue>port_rw, dns_rw, email_rw, ipFilter_rw, localLink_rw, pppoe_rw, upnp_rw, wifi_rw, ntp_rw, netStatus_rw, ptop_rw, autontp_rw</abilityValue>\n</subModule>\n</network>\n<PTZ>\n<subModule>\n<abilityValue>control_rw, preset_rw, cruise_rw, track_rw, decoder_rw, ptzInfo_ro</abilityValue>\n</subModule>\n</PTZ>\n<alarm>\n<subModule>\n<abilityValue>rfAlarm_rw</abilityValue>\n</subModule>\n<subModule>\n<channelId>0</channelId>\n<abilityValue>motion_rw</abilityValue>\n</subModule>\n</alarm>\n<image>\n<subModule>\n<channelId>0</channelId>\n<abilityValue>ispBasic_rw, ispAdvance_rw, ledState_rw</abilityValue>\n</subModule>\n</image>\n<video>\n<subModule>\n<channelId>0</channelId>\n<abilityValue>osdName_rw, osdTime_rw, shelter_rw</abilityValue>\n</subModule>\n</video>\n<security>\n<subModule>\n<abilityValue>user_rw, userOnline_rw, bootPwd_rw</abilityValue>\n</subModule>\n</security>\n</AbilityInfo>\n</body>\n"
[2024-04-18T13:29:11Z INFO  neolink::utils] backgarden: Connected and logged in
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<FloodlightStatusList version=\"1.1\">\n<FloodlightStatus>\n<channel>0</channel>\n<status>0</status>\n</FloodlightStatus>\n</FloodlightStatusList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<FloodlightStatusList version=\"1.1\">\n<FloodlightStatus>\n<channel>0</channel>\n<status>0</status>\n</FloodlightStatus>\n</FloodlightStatusList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<VideoInput version=\"1.1\">\n<channelId>0</channelId>\n<bright>128</bright>\n<contrast>128</contrast>\n<saturation>128</saturation>\n<hue>128</hue>\n</VideoInput>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<Serial version=\"1.1\">\n<channelId>0</channelId>\n<baudRate>9600</baudRate>\n<dataBit>CS8</dataBit>\n<stopBit>1</stopBit>\n<parity>none</parity>\n<flowControl>none</flowControl>\n<controlProtocol>PELCO_D</controlProtocol>\n<controlAddress>1</controlAddress>\n</Serial>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<FloodlightStatusList version=\"1.1\">\n<FloodlightStatus>\n<channel>0</channel>\n<status>0</status>\n</FloodlightStatus>\n</FloodlightStatusList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<VideoInput version=\"1.1\">\n<channelId>0</channelId>\n<bright>128</bright>\n<contrast>128</contrast>\n<saturation>128</saturation>\n<hue>128</hue>\n</VideoInput>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<Serial version=\"1.1\">\n<channelId>0</channelId>\n<baudRate>9600</baudRate>\n<dataBit>CS8</dataBit>\n<stopBit>1</stopBit>\n<parity>none</parity>\n<flowControl>none</flowControl>\n<controlProtocol>PELCO_D</controlProtocol>\n<controlAddress>1</controlAddress>\n</Serial>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<FloodlightStatusList version=\"1.1\">\n<FloodlightStatus>\n<channel>0</channel>\n<status>0</status>\n</FloodlightStatus>\n</FloodlightStatusList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<BatteryList version=\"1.1\">\n<BatteryInfo>\n<channelId>0</channelId>\n<chargeStatus>charging</chargeStatus>\n<adapterStatus>adapter</adapterStatus>\n<voltage>3954</voltage>\n<current>27</current>\n<temperature>36</temperature>\n<batteryPercent>78</batteryPercent>\n<lowPower>0</lowPower>\n<batteryVersion>2</batteryVersion>\n</BatteryInfo>\n</BatteryList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<BatteryList version=\"1.1\">\n<BatteryInfo>\n<channelId>0</channelId>\n<chargeStatus>charging</chargeStatus>\n<adapterStatus>adapter</adapterStatus>\n<voltage>3728</voltage>\n<current>-272</current>\n<temperature>20</temperature>\n<batteryPercent>48</batteryPercent>\n<lowPower>0</lowPower>\n<batteryVersion>2</batteryVersion>\n</BatteryInfo>\n</BatteryList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<SystemGeneral version=\"1.1\">\n<timeZone>0</timeZone>\n<osdFormat>DMY</osdFormat>\n<year>2024</year>\n<month>4</month>\n<day>18</day>\n<hour>14</hour>\n<minute>29</minute>\n<second>11</second>\n<deviceId>0</deviceId>\n<timeFormat>0</timeFormat>\n<language>English</language>\n<deviceName>Front Drive</deviceName>\n</SystemGeneral>\n<Norm version=\"1.1\">\n<norm>NTSC</norm>\n</Norm>\n</body>\n"
[2024-04-18T13:29:13Z INFO  neolink::common::camthread] frontdrive: Camera time is already set: 2024-04-18 14:29:11.0 +00:00:00
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<SystemGeneral version=\"1.1\">\n<timeZone>0</timeZone>\n<osdFormat>DMY</osdFormat>\n<year>2024</year>\n<month>4</month>\n<day>18</day>\n<hour>14</hour>\n<minute>29</minute>\n<second>11</second>\n<deviceId>0</deviceId>\n<timeFormat>0</timeFormat>\n<language>English</language>\n<deviceName>Back Garden</deviceName>\n</SystemGeneral>\n<Norm version=\"1.1\">\n<norm>NTSC</norm>\n</Norm>\n</body>\n"
[2024-04-18T13:29:14Z INFO  neolink::common::camthread] backgarden: Camera time is already set: 2024-04-18 14:29:11.0 +00:00:00
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<VersionInfo version=\"1.1\">\n<name>Front Drive</name>\n<type>Reolink Argus 3 Pro</type>\n<serialNumber>00000000000108</serialNumber>\n<buildDay>build 23072900</buildDay>\n<hardwareVersion>BIPC_566MIX16M35C10F5MP</hardwareVersion>\n<cfgVersion>v3.0.0.0</cfgVersion>\n<firmwareVersion>v3.0.0.2527_23072900</firmwareVersion>\n<detail>BIPC_566MIX16M35C10F5MPS30E0W91</detail>\n<IEClient>IEClient</IEClient>\n<pakSuffix>pak</pakSuffix>\n<helpVersion>blackPointsLevel=0</helpVersion>\n</VersionInfo>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<Uid version=\"1.1\">\n<uid>9527XXXXXXXXXXXY</uid>\n</Uid>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<BatteryInfo version=\"1.1\">\n<channelId>0</channelId>\n<chargeStatus>charging</chargeStatus>\n<adapterStatus>adapter</adapterStatus>\n<voltage>3726</voltage>\n<current>-342</current>\n<temperature>20</temperature>\n<batteryPercent>48</batteryPercent>\n<lowPower>0</lowPower>\n<batteryVersion>2</batteryVersion>\n</BatteryInfo>\n</body>\n"
[2024-04-18T13:29:16Z INFO  neolink::common::neocam] frontdrive: Model Reolink Argus 3 Pro
[2024-04-18T13:29:16Z INFO  neolink::common::neocam] frontdrive: Firmware Version v3.0.0.2527_23072900
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<StreamInfoList version=\"1.1\">\n<StreamInfo>\n<channelBits>1</channelBits>\n<encodeTable>\n<type>mainStream</type>\n<resolution>\n<width>2880</width>\n<height>1616</height>\n</resolution>\n<defaultFramerate>15</defaultFramerate>\n<defaultBitrate>3072</defaultBitrate>\n<framerateTable>15,12,10</framerateTable>\n<bitrateTable>1024,1536,2048,3072,4096</bitrateTable>\n</encodeTable>\n<encodeTable>\n<type>subStream</type>\n<resolution>\n<width>896</width>\n<height>512</height>\n</resolution>\n<defaultFramerate>15</defaultFramerate>\n<defaultBitrate>672</defaultBitrate>\n<framerateTable>15,10</framerateTable>\n<bitrateTable>64,128,160,192,256,384,512,672</bitrateTable>\n</encodeTable>\n</StreamInfo>\n</StreamInfoList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<StreamInfoList version=\"1.1\">\n<StreamInfo>\n<channelBits>1</channelBits>\n<encodeTable>\n<type>mainStream</type>\n<resolution>\n<width>2880</width>\n<height>1616</height>\n</resolution>\n<defaultFramerate>15</defaultFramerate>\n<defaultBitrate>3072</defaultBitrate>\n<framerateTable>15,12,10</framerateTable>\n<bitrateTable>1024,1536,2048,3072,4096</bitrateTable>\n</encodeTable>\n<encodeTable>\n<type>subStream</type>\n<resolution>\n<width>896</width>\n<height>512</height>\n</resolution>\n<defaultFramerate>15</defaultFramerate>\n<defaultBitrate>672</defaultBitrate>\n<framerateTable>15,10</framerateTable>\n<bitrateTable>64,128,160,192,256,384,512,672</bitrateTable>\n</encodeTable>\n</StreamInfo>\n</StreamInfoList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<LinkType version=\"1.1\">\n<type>PPPOE</type>\n</LinkType>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<AlarmEventList version=\"1.1\">\n<AlarmEvent version=\"1.1\">\n<channelId>0</channelId>\n<status>none</status>\n<AItype>none</AItype>\n<recording>0</recording>\n<timeStamp>0</timeStamp>\n</AlarmEvent>\n</AlarmEventList>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<Snap version=\"1.1\">\n<channelId>0</channelId>\n<fileName>01_20240418142914000.jpg</fileName>\n<time>0</time>\n<pictureSize>91275</pictureSize>\n</Snap>\n</body>\n"
Extension Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Extension version=\"1.1\">\n<binaryData>1</binaryData>\n<encryptLen>10000</encryptLen>\n</Extension>\n"
Extension Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Extension version=\"1.1\">\n<binaryData>1</binaryData>\n<encryptLen>10000</encryptLen>\n</Extension>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<VersionInfo version=\"1.1\">\n<name>Back Garden</name>\n<type>Reolink Argus 3 Pro</type>\n<serialNumber>00000000000108</serialNumber>\n<buildDay>build 23111600</buildDay>\n<hardwareVersion>BIPC_566MIX16M35C10F5MP</hardwareVersion>\n<cfgVersion>v3.0.0.0</cfgVersion>\n<firmwareVersion>v3.0.0.2527_23111600</firmwareVersion>\n<detail>BIPC_566MIX16M35C10F5MPS30E0W91</detail>\n<IEClient>IEClient</IEClient>\n<pakSuffix>pak</pakSuffix>\n<helpVersion>blackPointsLevel=0</helpVersion>\n</VersionInfo>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<Uid version=\"1.1\">\n<uid>9527XXXXXXXXXXXX</uid>\n</Uid>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<BatteryInfo version=\"1.1\">\n<channelId>0</channelId>\n<chargeStatus>charging</chargeStatus>\n<adapterStatus>adapter</adapterStatus>\n<voltage>3955</voltage>\n<current>-22</current>\n<temperature>36</temperature>\n<batteryPercent>78</batteryPercent>\n<lowPower>0</lowPower>\n<batteryVersion>2</batteryVersion>\n</BatteryInfo>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<LinkType version=\"1.1\">\n<type>PPPOE</type>\n</LinkType>\n</body>\n"
[2024-04-18T13:29:16Z INFO  neolink::common::neocam] backgarden: Model Reolink Argus 3 Pro
[2024-04-18T13:29:16Z INFO  neolink::common::neocam] backgarden: Firmware Version v3.0.0.2527_23111600
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<Snap version=\"1.1\">\n<channelId>0</channelId>\n<fileName>01_20240418142914000.jpg</fileName>\n<time>0</time>\n<pictureSize>90089</pictureSize>\n</Snap>\n</body>\n"
Extension Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Extension version=\"1.1\">\n<binaryData>1</binaryData>\n<encryptLen>10000</encryptLen>\n</Extension>\n"
Extension Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Extension version=\"1.1\">\n<binaryData>1</binaryData>\n<encryptLen>10000</encryptLen>\n</Extension>\n"
Extension Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Extension version=\"1.1\">\n<binaryData>1</binaryData>\n<encryptLen>10000</encryptLen>\n</Extension>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<BatteryInfo version=\"1.1\">\n<channelId>0</channelId>\n<chargeStatus>charging</chargeStatus>\n<adapterStatus>adapter</adapterStatus>\n<voltage>3725</voltage>\n<current>-361</current>\n<temperature>20</temperature>\n<batteryPercent>48</batteryPercent>\n<lowPower>0</lowPower>\n<batteryVersion>2</batteryVersion>\n</BatteryInfo>\n</body>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<StreamInfoList version=\"1.1\">\n<StreamInfo>\n<channelBits>1</channelBits>\n<encodeTable>\n<type>mainStream</type>\n<resolution>\n<width>2880</width>\n<height>1616</height>\n</resolution>\n<defaultFramerate>15</defaultFramerate>\n<defaultBitrate>3072</defaultBitrate>\n<framerateTable>15,12,10</framerateTable>\n<bitrateTable>1024,1536,2048,3072,4096</bitrateTable>\n</encodeTable>\n<encodeTable>\n<type>subStream</type>\n<resolution>\n<width>896</width>\n<height>512</height>\n</resolution>\n<defaultFramerate>15</defaultFramerate>\n<defaultBitrate>672</defaultBitrate>\n<framerateTable>15,10</framerateTable>\n<bitrateTable>64,128,160,192,256,384,512,672</bitrateTable>\n</encodeTable>\n</StreamInfo>\n</StreamInfoList>\n</body>\n"
Extension Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Extension version=\"1.1\">\n<binaryData>1</binaryData>\n<encryptLen>10000</encryptLen>\n</Extension>\n"
Extension Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Extension version=\"1.1\">\n<binaryData>1</binaryData>\n<encryptLen>10000</encryptLen>\n</Extension>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<StreamInfoList version=\"1.1\">\n<StreamInfo>\n<channelBits>1</channelBits>\n<encodeTable>\n<type>mainStream</type>\n<resolution>\n<width>2880</width>\n<height>1616</height>\n</resolution>\n<defaultFramerate>15</defaultFramerate>\n<defaultBitrate>3072</defaultBitrate>\n<framerateTable>15,12,10</framerateTable>\n<bitrateTable>1024,1536,2048,3072,4096</bitrateTable>\n</encodeTable>\n<encodeTable>\n<type>subStream</type>\n<resolution>\n<width>896</width>\n<height>512</height>\n</resolution>\n<defaultFramerate>15</defaultFramerate>\n<defaultBitrate>672</defaultBitrate>\n<framerateTable>15,10</framerateTable>\n<bitrateTable>64,128,160,192,256,384,512,672</bitrateTable>\n</encodeTable>\n</StreamInfo>\n</StreamInfoList>\n</body>\n"
Extension Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Extension version=\"1.1\">\n<binaryData>1</binaryData>\n<encryptLen>10000</encryptLen>\n</Extension>\n"
Extension Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Extension version=\"1.1\">\n<binaryData>1</binaryData>\n<encryptLen>10000</encryptLen>\n</Extension>\n"
Extension Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Extension version=\"1.1\">\n<binaryData>1</binaryData>\n<encryptLen>10000</encryptLen>\n</Extension>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<StreamInfoList version=\"1.1\">\n<StreamInfo>\n<channelBits>1</channelBits>\n<encodeTable>\n<type>mainStream</type>\n<resolution>\n<width>2880</width>\n<height>1616</height>\n</resolution>\n<defaultFramerate>15</defaultFramerate>\n<defaultBitrate>3072</defaultBitrate>\n<framerateTable>15,12,10</framerateTable>\n<bitrateTable>1024,1536,2048,3072,4096</bitrateTable>\n</encodeTable>\n<encodeTable>\n<type>subStream</type>\n<resolution>\n<width>896</width>\n<height>512</height>\n</resolution>\n<defaultFramerate>15</defaultFramerate>\n<defaultBitrate>672</defaultBitrate>\n<framerateTable>15,10</framerateTable>\n<bitrateTable>64,128,160,192,256,384,512,672</bitrateTable>\n</encodeTable>\n</StreamInfo>\n</StreamInfoList>\n</body>\n"
Extension Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Extension version=\"1.1\">\n<binaryData>1</binaryData>\n<encryptLen>10000</encryptLen>\n</Extension>\n"
Extension Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Extension version=\"1.1\">\n<binaryData>1</binaryData>\n<encryptLen>10000</encryptLen>\n</Extension>\n"
Extension Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Extension version=\"1.1\">\n<binaryData>1</binaryData>\n<encryptLen>10000</encryptLen>\n</Extension>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<StreamInfoList version=\"1.1\">\n<StreamInfo>\n<channelBits>1</channelBits>\n<encodeTable>\n<type>mainStream</type>\n<resolution>\n<width>2880</width>\n<height>1616</height>\n</resolution>\n<defaultFramerate>15</defaultFramerate>\n<defaultBitrate>3072</defaultBitrate>\n<framerateTable>15,12,10</framerateTable>\n<bitrateTable>1024,1536,2048,3072,4096</bitrateTable>\n</encodeTable>\n<encodeTable>\n<type>subStream</type>\n<resolution>\n<width>896</width>\n<height>512</height>\n</resolution>\n<defaultFramerate>15</defaultFramerate>\n<defaultBitrate>672</defaultBitrate>\n<framerateTable>15,10</framerateTable>\n<bitrateTable>64,128,160,192,256,384,512,672</bitrateTable>\n</encodeTable>\n</StreamInfo>\n</StreamInfoList>\n</body>\n"
Extension Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Extension version=\"1.1\">\n<binaryData>1</binaryData>\n<encryptLen>10000</encryptLen>\n</Extension>\n"
Extension Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Extension version=\"1.1\">\n<binaryData>1</binaryData>\n<encryptLen>10000</encryptLen>\n</Extension>\n"
Extension Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Extension version=\"1.1\">\n<binaryData>1</binaryData>\n<encryptLen>10000</encryptLen>\n</Extension>\n"
Extension Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Extension version=\"1.1\">\n<binaryData>1</binaryData>\n<encryptLen>10000</encryptLen>\n</Extension>\n"
Extension Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Extension version=\"1.1\">\n<binaryData>1</binaryData>\n<encryptLen>10000</encryptLen>\n</Extension>\n"
Extension Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Extension version=\"1.1\">\n<binaryData>1</binaryData>\n<encryptLen>1275</encryptLen>\n</Extension>\n"
Extension Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Extension version=\"1.1\">\n<binaryData>1</binaryData>\n</Extension>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<StreamInfoList version=\"1.1\">\n<StreamInfo>\n<channelBits>1</channelBits>\n<encodeTable>\n<type>mainStream</type>\n<resolution>\n<width>2880</width>\n<height>1616</height>\n</resolution>\n<defaultFramerate>15</defaultFramerate>\n<defaultBitrate>3072</defaultBitrate>\n<framerateTable>15,12,10</framerateTable>\n<bitrateTable>1024,1536,2048,3072,4096</bitrateTable>\n</encodeTable>\n<encodeTable>\n<type>subStream</type>\n<resolution>\n<width>896</width>\n<height>512</height>\n</resolution>\n<defaultFramerate>15</defaultFramerate>\n<defaultBitrate>672</defaultBitrate>\n<framerateTable>15,10</framerateTable>\n<bitrateTable>64,128,160,192,256,384,512,672</bitrateTable>\n</encodeTable>\n</StreamInfo>\n</StreamInfoList>\n</body>\n"
Extension Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Extension version=\"1.1\">\n<binaryData>1</binaryData>\n<encryptLen>89</encryptLen>\n</Extension>\n"
Extension Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Extension version=\"1.1\">\n<binaryData>1</binaryData>\n<encryptLen>0</encryptLen>\n</Extension>\n"
Extension Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Extension version=\"1.1\">\n<binaryData>1</binaryData>\n</Extension>\n"
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<StreamInfoList version=\"1.1\">\n<StreamInfo>\n<channelBits>1</channelBits>\n<encodeTable>\n<type>mainStream</type>\n<resolution>\n<width>2880</width>\n<height>1616</height>\n</resolution>\n<defaultFramerate>15</defaultFramerate>\n<defaultBitrate>3072</defaultBitrate>\n<framerateTable>15,12,10</framerateTable>\n<bitrateTable>1024,1536,2048,3072,4096</bitrateTable>\n</encodeTable>\n<encodeTable>\n<type>subStream</type>\n<resolution>\n<width>896</width>\n<height>512</height>\n</resolution>\n<defaultFramerate>15</defaultFramerate>\n<defaultBitrate>672</defaultBitrate>\n<framerateTable>15,10</framerateTable>\n<bitrateTable>64,128,160,192,256,384,512,672</bitrateTable>\n</encodeTable>\n</StreamInfo>\n</StreamInfoList>\n</body>\n"
Extension Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Extension version=\"1.1\">\n<encryptLen>1024</encryptLen>\n<binaryData>1</binaryData>\n<checkPos>0</checkPos>\n<checkValue>1667510320</checkValue>\n</Extension>\n"
Extension Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Extension version=\"1.1\">\n<checkPos>0</checkPos>\n<checkValue>-1211658</checkValue>\n</Extension>\n"
[2024-04-18T13:29:16Z WARN  neolink::common::camthread] frontdrive: Connection Lost: Nom Parsing error: Nom Error: VerboseError { errors: [([], Nom(MapRes)), ([], Context("Unable to parse Extension XML"))] }
[2024-04-18T13:29:16Z INFO  neolink::common::camthread] frontdrive: Attempt reconnect in 50ms
morrisb74 commented 2 months ago

I'm quite busy tracking the memory leak atm, if you can make a PR for the clientID that would be good

I'm not really a rust programmer... But when if I can help in any way ... let me know ...

QuantumEntangledAndy commented 2 months ago

Looks like there's a checkPos and checkValue that I need to add to the extension xml. Thanks for the info, I'll see about adding it soon.

QuantumEntangledAndy commented 2 months ago

I've added a random Uuid into the clientname perhaps this will be get your mqtt working. Test build is here https://github.com/QuantumEntangledAndy/neolink/actions/runs/8955580354 let me know if it dosen't help.