Files
vixy-vision/server
Alex Kazaiev 844502b4a1 Add release-after-use and cycling motion detection modes
- main_release.py (v3.1.0): Release camera after each snapshot for V4L2 compatibility
- main_cycling.py (v3.2.0): Single motion thread cycles between cameras (1s interval)
- mcp/vision_mcp.py: Support custom snapshot_path for multi-camera servers

Fixes Pi 3 dual-camera V4L2 conflicts by not holding cameras open.
2025-12-29 16:18:45 -06:00
..
2025-12-16 16:15:30 -06:00

vixy-vision Server

Camera snapshot server with motion detection for Raspberry Pi.

Quick Start

./setup.sh
sudo systemctl start vixy-vision

Features

  • 📷 USB camera snapshots via HTTPS API
  • 🔐 API key authentication
  • 🔍 Motion detection with frame differencing
  • 📤 Event reporting to central collector
  • 🔄 Auto-reconnect on camera failure

Configuration

Copy env.example to .env and customize:

cp env.example .env
nano .env

Key settings:

Variable Description Default
API_KEY Auth key for API (required)
CAMERA_ID Identifier for this camera camera
MOTION_ENABLED Enable motion detection false
MOTION_THRESHOLD Sensitivity (lower = more) 25
MOTION_COOLDOWN Seconds between events 5.0
COLLECTOR_URL Where to POST events (optional)

API Endpoints

Endpoint Auth Description
GET / No Service info
GET /health No Health check
GET /snapshot Yes JPEG snapshot
GET /motion/stats Yes Detection stats
POST /motion/enable Yes Start detection
POST /motion/disable Yes Stop detection

Motion Events

When motion is detected, the server POSTs to COLLECTOR_URL:

{
  "event": {
    "timestamp": "2024-12-16T14:23:01Z",
    "camera_id": "basement",
    "event_type": "motion",
    "confidence": 0.75,
    "area_percent": 7.5
  },
  "snapshot": "<base64 JPEG>"
}