Devices
Adding, configuring, and operating devices in Vistralio.
Devices vs API naming
The product UI now uses Devices. The backend API still uses the legacy
/api/cameras namespace for compatibility.
Device types
Each device has a device_type:
| Type | UI behavior |
|---|---|
Camera |
Standard video device, no talk button |
Camera with speaker |
Shows the live Talk button |
Doorbell |
Shows Answer / Talk and supports doorbell press events |
Connection modes
| Mode | Use when |
|---|---|
Direct |
Vistralio can reach the device directly |
Edge Bridge |
The device is on a remote LAN behind a bridge |
For bridge devices you assign:
- an Area
- an Edge Router
Edge routers can now serve multiple areas, so the same bridge can cover more than one area when needed.
Streams
Each device can define up to four path slots:
| Slot | Purpose |
|---|---|
detect |
low-cost AI/detection stream |
live |
browser live stream |
record |
recording source |
talkback |
two-way audio target for supported device types |
The UI expects only the path fragment. Vistralio builds the full URL from:
transport + host + port + credentials + path
Password handling
The UI now distinguishes between:
- leaving password blank = keep the saved password
- Clear saved password = remove the stored password
The same applies to ONVIF credentials where enabled.
Detection settings
Per device you can configure:
- enabled/disabled
- detector model
- object list
- minimum confidence
- detection FPS
- hardware mode
- per-object overrides
The object picker is driven from the currently selected detector's label list.
Zones and masks
Zones and masks are now separate:
Zones
Used for event meaning and routing.
- zones can have a
title - zones can have a
note - events use the zone title in event details
- zones can also carry threshold and dwell overrides
Example result:
Person detected in Drive lane
Masks
Used to ignore detections or motion in parts of the frame.
- masks are configured separately from zones
- masks can also have titles and notes
- if an object or motion falls into a mask, Vistralio ignores it
Full-frame behavior
If a label has no zones configured, Vistralio scans the entire frame for that label.
ONVIF and PTZ
ONVIF configuration is available on the quick-add form (Admin → Devices → Add/Edit Device) and in the full settings modal (ONVIF / PTZ tab).
Quick-add form
The quick-add and quick-edit device form includes an ONVIF / PTZ section. Enable ONVIF to reveal:
- ONVIF port (default 80)
- ONVIF username
- ONVIF password
- Enable PTZ control
This lets you configure ONVIF when creating a new device, without needing to open full settings first.
Full settings (ONVIF / PTZ tab)
The full settings modal includes a Discover streams button. When clicked, Vistralio queries the camera over ONVIF and returns all media profiles with their RTSP URIs. From the profile list you can:
- Apply to streams — fills in the detect, live, and recording path fields on the Streams tab
- Use for talkback — fills in the talkback path on the Audio tab
PTZ control is tested directly from this tab with directional buttons (up / down / left / right) and zoom in / out.
PTZ presets
PTZ presets are supported via the API (GET /api/ptz/{id}/presets, POST /api/ptz/{id}/preset/{token}).
Audio and talkback
For Camera with speaker and Doorbell devices, configure:
talkback pathtalkback codec
Talkback works through:
- direct connection for direct devices
- the edge bridge path for bridge devices
For ONVIF cameras, use the Discover streams button on the ONVIF / PTZ tab to auto-populate the talkback path from the camera's ONVIF profile.
Doorbell flow
Doorbells can generate doorbell_press events. Those events can:
- appear in the Events page
- trigger browser notifications
- jump the operator straight into the doorbell live view
Full settings dialog
The full device settings panel includes:
- Connection
- Streams
- Recording
- Audio
- Detection
- Zones
- Masks
- ONVIF / PTZ
- Faces
- Plates
- Schedules
Stream switching (live view)
Users with the cameras.stream_switch permission, on tenants where the stream_switch feature is enabled, can switch between the detection/live stream and the full-quality recording stream while viewing live.
A Live / Full HD toggle appears in the top-right of the live view. The recording stream offers full resolution but uses more bandwidth and an extra RTSP connection.
Camera deletion
When a camera is deleted from the UI or API, Vistralio removes its database record and all associated on-disk data:
- Recording segments (
/var/lib/vistralio/recordings/{cam_id}/) - Snapshots (
/var/lib/vistralio/snapshots/{cam_id}/) - Event clips (
/var/lib/vistralio/clips/{cam_id}/)
Related API endpoints
GET /api/camerasPOST /api/camerasPUT /api/cameras/{id}DELETE /api/cameras/{id}— also removes on-disk recording, snapshot, and clip foldersGET /api/cameras/{id}/configPOST /api/cameras/{id}/doorbell-pressGET /api/ptz/{id}/discover— ONVIF stream discoveryPOST /api/ptz/{id}/move— PTZ movePOST /api/ptz/{id}/stop— PTZ stopGET /api/ptz/{id}/presets— PTZ preset listPOST /api/ptz/{id}/preset/{token}— go to preset