# vixy-vision Server Camera snapshot server with motion detection for Raspberry Pi. ## Quick Start ```bash ./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: ```bash 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`: ```json { "event": { "timestamp": "2024-12-16T14:23:01Z", "camera_id": "basement", "event_type": "motion", "confidence": 0.75, "area_percent": 7.5 }, "snapshot": "" } ```