diff --git a/claude-memory/nvr-fix.md b/claude-memory/nvr-fix.md new file mode 100644 index 0000000..a0ca097 --- /dev/null +++ b/claude-memory/nvr-fix.md @@ -0,0 +1,59 @@ +# NVR HiWatch DS-N316(D) Fix Progress + +## Problem +All 13 XM cameras (53H20AF) cycle online/offline every ~30 seconds on NVR. +NVR IP: 192.168.1.123, FW: V4.76.015 build 250210 +Network: 192.168.1.x (Знаменское, через Cudy router 100.70.54.204 Netbird) + +## Camera List +1:192.168.1.42, 2:192.168.1.69, 3:192.168.1.101, 4:192.168.1.40, 5:192.168.1.64 +6:192.168.1.70, 7:192.168.1.20, 8:192.168.1.58, 9:192.168.1.57, 10:192.168.1.56 +11:192.168.1.63, 12:192.168.1.47, 13:192.168.1.41 + +## Key Discovery: DVR-IP Protocol Works! +- XM camera admin password: empty (""), XM hash: tlJwpbo6 +- Login: EncryptType=MD5, PassWord=tlJwpbo6, UserName=admin, port 34567 +- msg_id 1000=login, 1042=config_get, 1040=config_set +- TCPMaxConn: 10 (connection limit theory WRONG) +- RTSP accepts ANY auth (Basic, no auth, wrong creds) — auth NOT the issue + +## What Was Tried & Failed +- Disabling sub-stream (VideoEnable=false) → NVR still tries stream 102, gets accessFroDeviceStreamFailure +- Anonymous RTSP (Anonymity=true) → still cycles +- HIKVISION protocol → online=true but no video (can't get device params) +- Custom Protocol → badXmlContent (400) +- streamType=main → NVR returns 400 (only "auto" supported) +- PUT /ISAPI/Streaming/channels → notSupport +- ONVIF DeleteProfile → camera ignores +- SetVideoEncoderConfiguration → camera closes connection +- Different passwords → no effect +- MTU change → no effect + +## Current NVR State +- CH1 still has 192.168.1.42 configured (camera is FROZEN — ports closed, pings OK, needs power cycle) +- All other 12 cameras are alive + +## Root Cause Investigation +- NVR error: accessFroDeviceStreamFailure (stream access fails) +- RTSP DESCRIBE works fine from client (200 OK) +- Camera accepts any RTSP auth +- Issue may be in SETUP/PLAY phase or RTP transport +- NVR does ONVIF → gets RTSP URL → tries DESCRIBE/SETUP/PLAY → fails after ~20-30s + +## SSH Tunnels Pattern +```bash +ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 -o ServerAliveInterval=10 -L LOCAL:REMOTE_IP:REMOTE_PORT root@100.70.54.204 -N -f +``` + +## Key Scripts +- /root/nvr_clean_test.py — full test: DVR-IP config + NVR add + monitor +- /root/xm_full_explore.py — explore camera settings via DVR-IP +- /root/xm_disable_substream.py — disable/enable sub-stream +- /root/xm_fix_rtsp.py — change RTSP anonymity settings + +## Next Steps +1. Do full RTSP session (SETUP+PLAY) to verify stream actually works +2. Check if NVR uses TCP or UDP for RTP transport +3. Maybe try adding camera with empty password ("12345678" - 8 char minimum for NVR) +4. Consider: maybe NVR ONVIF GetStreamUri returns different URL than direct ONVIF query +5. Camera 192.168.1.42 needs physical power cycle