---
name: camera-watch
description: YOLOv8-based camera surveillance with object detection. Works with any IP camera supporting RTSP streams or HTTP snapshots (Hikvision, Dahua, Reolink, Amcrest, Unifi, and more). Detects 80+ object types (person, car, dog, etc.) and sends notifications with snapshots. Use for motion detection, night watch routines, or security monitoring.
---
# Camera Watch
Real-time object detection on IP cameras using YOLOv8. Works with any camera supporting RTSP or HTTP snapshots. Detects people, vehicles, animals, and 80+ object types. Sends notifications with snapshots when objects are detected.
## Features
- HTTP snapshot mode (reliable) or RTSP streaming
- YOLOv8 object detection (80 COCO classes)
- WhatsApp/iMessage notifications with snapshots
- Configurable confidence threshold and cooldown
- Multi-camera support
## Setup
### 1. Create project directory
```bash
mkdir -p ~/camera-watch && cd ~/camera-watch
python -m venv venv
source venv/bin/activate
pip install opencv-python ultralytics pyyaml requests
```
### 2. Copy scripts
Copy `scripts/camera_watch.py` to your project directory.
### 3. Create config.yaml
```yaml
notifications:
enabled: true
whatsapp: "+1234567890" # Your phone number
cooldown_seconds: 60
recordings:
snapshots_dir: "./snapshots"
keep_days: 7
logging:
file: "./logs/detections.log"
level: "INFO"
cameras:
front-door:
name: "Front Door"
ip: "192.168.1.100" # Your camera IP
channel: 1 # Hikvision channel number
user: "admin" # Camera username
password: "yourpassword" # Camera password
poll_interval: 2
enabled: true
track:
- person
- car
confidence: 0.5
model:
name: "yolov8s" # Options: yolov8n (fast), yolov8s (balanced), yolov8m (accurate)
device: "cpu" # Use "mps" for Apple Silicon, "cuda" for NVIDIA
```
### 4. Run
```bash
# Test cameras
python camera_watch.py --test
# Run in foreground
python camera_watch.py
# Run in background
nohup python camera_watch.py > /tmp/camera-watch.log 2>&1 &
```
## Detectable Objects (YOLOv8 COCO)
**People & Animals:**
person, bird, cat, dog, horse, sheep, cow, elephant, bear, zebra, giraffe
**Vehicles:**
bicycle, car, motorcycle, airplane, bus, train, truck, boat
**Common objects:**
backpack, umbrella, handbag, suitcase, bottle, cup, chair, couch, bed, laptop, cell phone, tv
**Full list:** 80 classes including sports equipment, food items, furniture, and more.
## Integration with Night Watch
For automated night routines, create a separate script that:
1. Starts camera-watch at night (e.g., 00:00)
2. Stops camera-watch in morning (e.g., 07:00)
3. Sends report with detections and snapshots
Example cron integration:
```bash
# Start at midnight
0 0 * * * cd ~/camera-watch && source venv/bin/activate && nohup python camera_watch.py > /tmp/camera-watch.log 2>&1 &
# Stop at 7am and send report
0 7 * * * pkill -f camera_watch.py
```
## Notifications
The script sends notifications via Clawdbot gateway API. Ensure Clawdbot is running and configure the gateway URL in the script if needed.
## Troubleshooting
**Camera not connecting:**
- Verify IP address and credentials
- Check if camera supports ISAPI (Hikvision) or try RTSP
- Ensure camera is on same network
**False positives:**
- Increase confidence threshold (0.5 → 0.7)
- Clean camera lens (spider webs, insects)
- Adjust detection area if possible
**High CPU usage:**
- Increase poll_interval (2 → 5 seconds)
- Use smaller model (yolov8n instead of yolov8s)Help answer questions about Catholicism accurately
Analyze budget vs actual
Push decisions to Arbiter Zebu for async human review.
Create, validate, and publish Agent Skills following