QuantumEntangledAndy / neolink

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

0.5.18 bugs #136

Closed fmarzocca closed 1 year ago

fmarzocca commented 1 year ago

Just installed 0.5.18.

Launching the new battery command: /homeAssets/neolink battery --config=/homeAssets/neolink_config.toml giardino

very often reports following communication error:

Error: Unable to get camera Battery state

In addition, the pir command now does not return only rfAlarmCfg information, but also a huge list of other details. This forces me to completely rewrite the parsing code. I think I will stuck on previous version.

QuantumEntangledAndy commented 1 year ago

What other details do you mean? I'm wondering if I got my debug print the wrong way around.

fmarzocca commented 1 year ago

v.0.5.16:

/homeAssets/neolink pir --config=/homeAssets/neolink_config.toml giardino

[2023-08-16T09:43:49Z INFO  neolink::utils] giardino: Connecting to camera at UID: xxxxxxx
[2023-08-16T09:43:49Z INFO  neolink_core::bc_protocol] giardino: Trying local discovery
[2023-08-16T09:43:51Z INFO  neolink_core::bc_protocol] giardino: Local discovery success xxxxxxx at 192.168.1.42:11601
[2023-08-16T09:43:51Z INFO  neolink::utils] giardino: Logging in
[2023-08-16T09:43:52Z INFO  neolink::utils] giardino: Connected and logged in
<?xml version="1.0" encoding="utf-8"?><RfAlarmCfg version="1.1"><rfID>0</rfID><enable>0</enable><sensitivity>0</sensitivity><sensiValue>11</sensiValue><reduceFalseAlarm>0</reduceFalseAlarm><timeBlockList /><alarmHandle /></RfAlarmCfg>

version 0.5.18 /homeAssets/neolink pir --config=/homeAssets/neolink_config.toml giardino

[2023-08-16T09:46:40Z INFO  neolink::utils] giardino: Connecting to camera at UID: xxxxx
[2023-08-16T09:46:40Z INFO  neolink_core::bc_protocol] giardino: Trying local discovery
[2023-08-16T09:46:41Z INFO  neolink_core::bc_protocol] giardino: Local discovery success xxxxx at 192.168.1.42:11601
[2023-08-16T09:46:41Z INFO  neolink::utils] giardino: Logging in
Payload Txt: "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<body>\n<Encryption version=\"1.1\">\n<type>md5</type>\n<nonce>65dc9b04-F31Qb5ERZkpkDHTxmMR1</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>2304*1296</resolutionName>\n<width>2304</width>\n<height>1296</height>\n</resolution>\n<secretCode>xxxxx</secretCode>\n<bootSecret>xxxxx</bootSecret>\n<language>English</language>\n<sdCard>1</sdCard>\n<ptzMode>none</ptzMode>\n<typeInfo>IPC</typeInfo>\n<softVer>50331808</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>2304</width>\n<height>1296</height>\n</resolution>\n<defaultFramerate>15</defaultFramerate>\n<defaultBitrate>2048</defaultBitrate>\n<framerateTable>10,12,15</framerateTable>\n<bitrateTable>1024,1536,2048</bitrateTable>\n</encodeTable>\n<encodeTable>\n<type>subStream</type>\n<resolution>\n<width>640</width>\n<height>360</height>\n</resolution>\n<defaultFramerate>15</defaultFramerate>\n<defaultBitrate>192</defaultBitrate>\n<framerateTable>10,15</framerateTable>\n<bitrateTable>64,128,160,192,256</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"
[2023-08-16T09:46:43Z INFO  neolink::utils] giardino: 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<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<BatteryList version=\"1.1\">\n<BatteryInfo>\n<channelId>0</channelId>\n<chargeStatus>charging</chargeStatus>\n<adapterStatus>solarPanel</adapterStatus>\n<voltage>3990</voltage>\n<current>82</current>\n<temperature>34</temperature>\n<batteryPercent>100</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<rfAlarmCfg version=\"1.1\">\n<enable>0</enable>\n<sensiValue>11</sensiValue>\n<reduceFalseAlarm>0</reduceFalseAlarm>\n</rfAlarmCfg>\n</body>\n"
<?xml version="1.0" encoding="utf-8"?><RfAlarmCfg version="1.1"><rfID>0</rfID><enable>0</enable><sensitivity>0</sensitivity><sensiValue>11</sensiValue><reduceFalseAlarm>0</reduceFalseAlarm><timeBlockList /><alarmHandle /></RfAlarmCfg>
[2023-08-16T09:46:44Z INFO  neolink_core::bc_protocol::connection::bcconn] PollSender Bc Err(PollSendError(None))
QuantumEntangledAndy commented 1 year ago

Yeah that's the debug print stuff. It's meant to be debug = false by default but maybe I didn't load the value from the config right.

Don't suppose you have debug = true in your config for some reason?

fmarzocca commented 1 year ago

Don't suppose you have debug = true in your config for some reason?

Of course not. I don't have any debug entry in the config.

You left the debug enabled in the code

QuantumEntangledAndy commented 1 year ago

Yeah didn't expect you too just thought I'd ask. Been looking for the bug and I think I found it where default_false was returning true

QuantumEntangledAndy commented 1 year ago

Ok if possible can you test this build (will take about an hour to be ready) it seems to work for me but not having every type of camera myself its good to have others test

fmarzocca commented 1 year ago

Perfect! It is working. I have downloaded armhf-bullseye version