docs(camera): Hik event-push gotchas + dead-camera diagnostic method
Captures the hard-won findings from the field session: the WSL source-IP rewrite + skipSourceIpCheck fix, the boolean-as-string setup bug, the unreliable "Test" button, the latching httpBroken flag, and Notify- Surveillance-Center vs HTTP-Alarm-Server. Adds a "diagnose a non-pushing camera from its OWN state" runbook (alertStream heartbeat silence, SSH showStatus EventScribe:except, dmesg RTC/UBIFS, netstat outbound watch) and documents the verified-dead DS-2CD1043G2-LIU unit (defective event engine, survives factory reset -> RMA), with the pull+vision fallback. Claude-Session: https://claude.ai/code/session_01Xcm6ikLgGoCxxHrxtjkk5V
This commit is contained in:
+14
@@ -1384,3 +1384,17 @@ setup offers the backend push IP). NOT yet a barrier trigger or DeviceReadEvent
|
||||
read-bus/ANPR wiring is the next step once the real payload is captured (advisory-only rule still
|
||||
governs). Tests: hikvision-alarm.test.ts (6: vehicle XML summary, ANPR plate, raw JSON, wrong-IP
|
||||
404, disabled 404, unknown-device 404); server 109/109, build+lint 14/14. See [[lpr-camera]].
|
||||
|
||||
## [2026-06-22] debug | Hikvision event-push field session — fixes + a verified-dead camera
|
||||
Long session getting a real Hik camera to POST events. Server/integration fixes (committed): listen
|
||||
on ALL methods (camera probes with GET/etc, not just POST); record rejected pushes too (kind
|
||||
"alarm-rejected" + reason) so "nothing arrived" is never ambiguous; a GET /api/devices/hikvision/
|
||||
alarms read endpoint; per-device skipSourceIpCheck (WSL mirrored mode REWRITES the inbound source IP
|
||||
to the host's own, so the source-IP guard rejected every push); and a real checkbox renderer for
|
||||
type:"boolean" config fields (they were saving the STRING "true"). Then proved — via the camera's
|
||||
OWN state, not our server — that the specific DS-2CD1043G2-LIU unit has a DEAD event engine: silent
|
||||
alertStream (no heartbeat), EventScribe:except, diskfull on Event/triggers, dead RTC (rtc get time
|
||||
error / clock at 1970), and ZERO outbound to :3000 over a 3-min netstat watch, surviving reboot +
|
||||
basic reset + FULL factory reset. Verdict: defective camera (RMA), not our code. Captured the
|
||||
diagnostic method (alertStream silence / SSH showStatus / netstat) in [[lpr-camera]]. Fallback for a
|
||||
dead-push camera: pull + [[opencv-anpr-service|vision]] (the same camera still serves snapshots).
|
||||
|
||||
Reference in New Issue
Block a user