El Problema
El protocolo ISAPI de Hikvision es el mecanismo de control para NVR y DVR pero no tiene SDK oficial en Python. La documentacion es fragmentaria, la autenticacion usa digest auth con quirks no documentados, las respuestas XML tienen namespaces inconsistentes, y las conexiones se caen sin aviso bajo carga.
Los Patterns
5 patterns extraidos de un backend de produccion con 19 endpoints:
- ISAPIClient + Circuit Breaker - Cliente HTTP async con digest auth auto-detect, retry exponencial y circuit breaker (5 fallos = 60s offline)
- Snapshot Service - Captura de imagenes JPEG via streaming channel con storage y cleanup automatico
- Device Discovery - Escaneo de NVR y camaras conectadas, sin dependencia de base de datos
- Event Parser - Parsing standalone de notificaciones XML con manejo de namespaces ISAPI
- PTZ Control - Comandos pan-tilt-zoom via XML: movimiento continuo, stop, presets
Incluye 17 tests con respuestas XML mockeadas y documentacion del protocolo ISAPI.
Contexto
Extraidos de un sistema de videovigilancia en produccion. El circuit breaker y retry fueron esenciales: los NVR Hikvision cortan conexiones bajo carga sin retornar error HTTP. El cliente tiene 211 lineas y es completamente standalone.