| 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
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
notifications:
enabled: true
whatsapp: "+1234567890"
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"
channel: 1
user: "admin"
password: "yourpassword"
poll_interval: 2
enabled: true
track:
- person
- car
confidence: 0.5
model:
name: "yolov8s"
device: "cpu"
4. Run
python camera_watch.py --test
python camera_watch.py
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:
- Starts camera-watch at night (e.g., 00:00)
- Stops camera-watch in morning (e.g., 07:00)
- Sends report with detections and snapshots
Example cron integration:
0 0 * * * cd ~/camera-watch && source venv/bin/activate && nohup python camera_watch.py > /tmp/camera-watch.log 2>&1 &
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)