Smart Home & IoTDocumentedScanned

camera-watch

YOLOv8-based camera surveillance with object detection.

Share:

Installation

npx clawhub@latest install camera-watch

View the full skill documentation and source below.

Documentation

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:

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

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