界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
部署与运维 · SKILL.md

viseron

viseron

【部署与运维】Guides Viseron self-hosted NVR deployment, camera recording, computer-vision detection, integrations, and backend extension workflows.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: viseron description: "Guides Viseron self-hosted NVR deployment, camera recording, computer-vision detection, integrations, and backend extension workflows." metadata: disco-role: operating disable-model-invocation: true license: MIT

Viseron Repo Skill

Use this skill when a task involves Viseron, the self-hosted local NVR and AI computer-vision application, especially when the user needs to configure cameras, recording, storage, object/motion/face/license-plate detection, notifications, automations, or backend components.

First checks

  • Viseron is normally operated as a containerized service with a YAML config.yaml and optional secrets.yaml mounted into the runtime config directory.
  • The Python distribution is named viseron and the primary import package is viseron; source checkouts also rely on a top-level manager.py helper for some subprocess modules.
  • Treat live cameras, Docker images, PostgreSQL, MQTT brokers, notification credentials, detector services, GPU/EdgeTPU/Hailo devices, and model downloads as target-host requirements unless the user explicitly asks to verify them.
  • Run bundled scripts from this skill only against user-provided config snippets or an already prepared Viseron runtime/development environment; they are preflight helpers and do not replace Viseron startup validation.

Route by task

  • Install, deploy, or validate global configuration: load configuration-and-deployment for Docker/container setup, config.yaml, secrets.yaml, webserver/auth/API, logging, safe mode, and startup validation.
  • Configure camera streams, NVR, recording, storage tiers, snapshots, timelapse, or live view: load camera-recording-pipeline for FFmpeg/GStreamer/go2rtc, stream URLs, FFprobe metadata, recorder/NVR behavior, retention, and storage troubleshooting.
  • Choose or debug motion/object/post-processing AI components: load detection-and-ai-components for MOG2/background subtraction, MQTT external motion, YOLO, Darknet, EdgeTPU, Hailo, CodeProject.AI, DeepStack, dlib, CompreFace, labels, masks, zones, filters, and training/post-processing touchpoints.
  • Automate events or control integrations: load automation-and-integrations for MQTT/Home Assistant, webhooks, Discord/Gotify/Telegram notifications, Telegram commands, ONVIF PTZ, data-stream events, and Jinja templates.
  • Modify or extend Viseron source code: load developer-extension for component/domain lifecycle, config schemas, reload behavior, entities, docs generation, tests, and source-root import caveats.

Root references and scripts

Common workflow skeletons

Review a user configuration

  1. Load configuration-and-deployment and validate YAML/secrets syntax first.
  2. Route each top-level component to the owning sub-skill using the component capability index.
  3. Check cross-component dependencies: cameras must load before NVR, object/motion detectors are optional or required depending on the component, and post-processors need object-detector labels that can trigger them.
  4. For every external service, credential, device, model, or camera URL, separate static config review from target-host runtime verification.

Diagnose missing recordings or detections

  1. Load camera-recording-pipeline to check camera connectivity, stream metadata, recorder/NVR settings, storage tiers, and live-frame availability.
  2. Load detection-and-ai-components to check whether motion/object labels, zones, masks, scan_on_motion_only, trigger_event_recording, store, and post-processor labels can produce the expected event.
  3. Load automation-and-integrations only if the event exists in Viseron but an MQTT/webhook/notification/Telegram side effect is missing.

Add or modify a backend component

  1. Load developer-extension before editing code.
  2. Keep setup_domains() hot-reload safe: register domain instances only, and avoid expensive shared initialization there.
  3. Put component-level resources in setup(), declare CONFIG_SCHEMA, and model domain dependencies with RequireDomain or OptionalDomain.
  4. After code changes, select focused native tests from the relevant sub-skill's candidate list rather than running hardware, container, or external-service checks by default.

Who owns what

User request signalOwning routeWhy
config.yaml, secrets.yaml, startup error, safe mode, web UI, API token, auth, or loggingconfiguration-and-deploymentThese are global deployment concerns and should be checked before any camera or detector tuning.
RTSP/MJPEG URL, FFmpeg command, FFprobe timeout, recorder, NVR, live view, snapshots, timelapse, storage tiercamera-recording-pipelineThese concerns are tied to frame acquisition, recordings, and retained media.
Motion detected but no recording, label mismatch, zone/mask issue, model/device choice, EdgeTPU/Hailo/YOLO/Darknet, face or plate recognitiondetection-and-ai-componentsThese are AI pipeline and post-processing choices.
MQTT entity/topic, webhook, Telegram, Discord, Gotify, PTZ, event topic, Jinja templateautomation-and-integrationsThese are side effects or control surfaces layered on top of Viseron events.
Setup hook, config schema, reload diff, domain dependency, entity class, docs generation, tests, or import caveat in source codedeveloper-extensionThese are repo-maintenance and backend-extension tasks.

How to use the bundled scripts

  • scripts/check_viseron_imports.py prints a compact import/probe report for core modules and selected optional groups. Use it when you need to know whether a Viseron environment is ready for source inspection or which optional backend is missing.
  • scripts/extract_config_schema_summary.py summarizes which components expose CONFIG_SCHEMA, setup(), and setup_domains(). Use it when choosing which component-owned sub-skill should own a new configuration branch.
  • The sub-skill scripts are intentionally narrow and safe. They should fail fast on malformed local input instead of starting Viseron or contacting live hardware/services.

Verification boundaries

This skill was constructed from source, docs, tests, generated component explorer config, and CPU-safe installed-package inspection. It does not claim that this construction host verified live cameras, Docker images, PostgreSQL services, MQTT brokers, notification endpoints, YOLO/Darknet inference, EdgeTPU, Hailo, GStreamer/PyGObject, or CUDA/VA-API/Jetson/Raspberry Pi acceleration. Those remain explicit target-host checks.

我的收藏