Files
vixy-vision/collector
Alex e1171e8ff8 Add TFLite object detection to reduce false positives
Motion detection now optionally runs MobileNet V2 SSD (COCO, quantized)
on frames that trigger motion, identifying objects like people, cats, and
cars. Events without detected objects are suppressed by default. Snapshots
include bounding box annotations. New MCP tool vision_get_detections()
enables label-based queries.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 17:04:10 -06:00
..

vixy-vision Event Collector

Receives motion events from camera servers and stores them for Vixy to review.

Quick Start (macOS)

./setup-macos.sh
launchctl load ~/Library/LaunchAgents/com.vixy.vision-collector.plist

How It Works

Pi (camera)          Mac mini (collector)          Vixy (MCP)
┌──────────┐         ┌──────────────────┐         ┌──────────┐
│ motion   │  POST   │ collector.py     │  read   │ query    │
│ detected ├────────►│ ├─events.db      │◄────────┤ annotate │
│          │ /events │ └─snapshots/     │         │ review   │
└──────────┘         └──────────────────┘         └──────────┘

Data Storage

Events are stored in ~/Documents/Vixy/events/:

events/
├── events.db           # SQLite database
└── snapshots/
    └── 2024-12-16/     # Date-organized images
        └── basement-*.jpg

API Endpoints

Endpoint Method Description
/ GET Service info
/health GET Health check
/events POST Receive event from camera
/events GET List events (debug)
/stats GET Event statistics

Event Payload

Camera servers POST to /events:

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

MCP Tools

Once events are collected, Vixy can:

  • vision_get_events() - Query events
  • vision_get_event_snapshot(id) - View snapshot
  • vision_annotate_event(id, text, tags) - Add meaning
  • vision_event_stats() - See statistics