# vixy-vision Server Configuration
# Copy to .env and customize

# ============ Required ============

# API Key for authentication (generate with: python3 -c 'import secrets; print(secrets.token_urlsafe(32))')
API_KEY=your-secret-key-here

# Camera identifier (used in events and API responses)
CAMERA_ID=basement

# ============ Service Settings ============

# Service name for systemd (allows multiple instances)
SERVICE_NAME=vixy-vision-basement

# Port to run on (each instance needs unique port)
PORT=8443

# ============ Camera Settings ============

# Camera device index (0 = /dev/video0, 2 = /dev/video2, etc.)
CAMERA_INDEX=0

# Resolution (camera will use closest supported)
CAMERA_WIDTH=1920
CAMERA_HEIGHT=1080

# JPEG quality (1-100)
JPEG_QUALITY=85

# ============ Motion Detection ============

# Enable motion detection (true/false)
MOTION_ENABLED=true

# Pixel difference threshold (lower = more sensitive)
MOTION_THRESHOLD=25

# Minimum % of frame that must change to trigger event
MOTION_MIN_AREA=0.5

# Seconds between motion events (prevents spam)
MOTION_COOLDOWN=5.0

# Seconds between frame checks
MOTION_INTERVAL=0.5

# ============ Object Detection ============

# Enable AI object detection (requires tflite-runtime and model download)
# When enabled, motion triggers object detection to identify what moved.
# Events with no detected objects are suppressed (configurable).
DETECTION_ENABLED=false

# Minimum confidence for a detection (0.0-1.0, lower = more detections)
DETECTION_CONFIDENCE=0.5

# Suppress events where motion is detected but no objects found
# Set to false to keep reporting all motion events
DETECTION_SUPPRESS_EMPTY=true

# Only report these object types (comma-separated, empty = all)
DETECTION_LABELS=person,cat,dog

# ============ Event Collector ============

# URL to POST motion events to (collector on Mac mini)
COLLECTOR_URL=http://macmini.local:8780/events

# API key for collector (optional)
COLLECTOR_API_KEY=
