Real Hikvision/Dahua camera driver; gate Backend-push-IP on capability
Replace the camera stub with HttpCamera: Hikvision ISAPI and Dahua CGI snapshots over client-side HTTP Digest (new drivers/http-digest.ts). healthCheck() now pulls a real frame instead of returning ready/stub. Snapshot carries bytes (driver fetches); storage/imageRef is the caller's job, keeping the adapter free of storage deps. Fix the cosmetic Backend-push-IP field: add pushesToBackend to DeviceDriver (only Dingtian sets it), expose as pushCapable in the catalog, and gate the wizard's backend-IP fetch + field on it so pull-only devices hide it. Verified on hardware (Hikvision 10.0.10.121): healthCheck ready, captureSnapshot returns a valid JPEG.
This commit is contained in:
@@ -62,11 +62,13 @@ export async function setupRoutes(
|
||||
const adminGuard = requireRole("admin");
|
||||
|
||||
// Catalog of selectable drivers per category (no secrets — schema only).
|
||||
// `discoverable` flags drivers that can scan the LAN.
|
||||
// `discoverable` flags drivers that can scan the LAN; `pushCapable` flags
|
||||
// drivers that push to the backend (and thus need a backend IP at assign time).
|
||||
app.get("/api/setup/catalog", async () => {
|
||||
const catalog = registry.catalog();
|
||||
const discoverable = registry.list().filter(isDiscoverable).map((d) => d.id);
|
||||
return { ...catalog, discoverable };
|
||||
const pushCapable = registry.pushCapable();
|
||||
return { ...catalog, discoverable, pushCapable };
|
||||
});
|
||||
|
||||
// Scan the LAN for devices a driver can discover (UDP broadcast, etc).
|
||||
|
||||
Reference in New Issue
Block a user