Rules, alerts, and notifications
Enrichment adds facts. Rules make decisions. Notification channels decide where an alert is delivered.
A full-frame person rule
A wildcard zone selector permits matches across the camera frame. Set notify to true to produce alerts, and use a cooldown to avoid firing on every processed frame.
rules:
- name: entrance_alert
enabled: true
class: person
cameras: [entrance]
zones: "*"
min_confidence: 0.5
cooldown_seconds: 120
notify: true
severity: warning
notifications_table: notifications
message: "{class} detected on {camera} in {zone}"Two outputs with different purposes
Accepted events matched the configured rule logic. Alerts are notification-enabled matches that also pass the rule cooldown. A batch may contain several objects or no objects.
| Output | Meaning |
|---|---|
| event.v1 | Accepted enriched events for downstream row building. |
| alert.v1 | Notification alerts with rule name, severity, and rendered message. |
| rows.v1 | Row builder output with destination tables and structured row fields. |
Keep schedules in UTC
Rule schedules use current UTC evaluation time. Collection schedules use frame capture time in UTC. Convert your operating hours before configuration; collection does not support overnight windows.
Configure delivery separately
notifications.yaml supports log output, webhooks, and email through SMTP. Channels can filter by rule and severity. Keep SMTP passwords in their configured environment variables.