L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

camera-watch

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.

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

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"  # 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

# 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:

# 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)
Skills enregistrées