# camera-watch > 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. - Author: Adam Delisi - Repository: massiveadam/skills - Version: 20260131183437 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/massiveadam/skills - Web: https://mule.run/skillshub/@@massiveadam/skills~camera-watch:20260131183437 --- --- 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)