Installable skillMIT

Office Cam - Multi-Camera System

An MCP server that provides on-demand skill loading for AI coding assistants.

BY modbenderUPDATED Oct 27, 2026
INTENDED FORβ—ˆOpenClawInstall in a listed agent.

instructions.md

---
name: office-cam
description: Multi-camera system for office/home monitoring. Supports USB webcams (Logitech), WiFi Wyze cameras (RTSP), and ESP32 cameras. Use to check rooms, capture photos on demand, or monitor multiple spaces.
metadata:
  clawdbot:
    emoji: πŸŽ₯
---

# Office Cam - Multi-Camera System

Whole-house camera network supporting multiple camera types.

## Supported Cameras

| Type | Reliability | Setup | Best For |
|------|-------------|-------|----------|
| πŸ–₯️ **USB Webcam** | ⭐⭐⭐⭐⭐ Instant | Plug & play | Desk, office |
| πŸ“Ή **Wyze PTZ/v3** | ⭐⭐⭐⭐⭐ Reliable | RTSP stream | Rooms, garage, shed |
| πŸ“‘ **ESP32-CAM** | ⭐⭐⭐ Experimental | ESP-NOW wireless | DIY, battery-powered |

## Quick Start

```bash
# USB Webcam (instant)
~/clawd/skills/office-cam/scripts/capture.sh

# Wyze PTZ (one-time setup required)
~/clawd/skills/office-cam/scripts/wyze-dashboard add
~/clawd/skills/office-cam/scripts/wyze-dashboard capture shed

# ESP32-CAM (ESP-NOW wireless)
# Flash firmware, auto-discovers base station, sends photos wirelessly
```

---

## πŸ–₯️ USB Webcam (Logitech)

**Most reliable - works instantly.**

### Basic Capture
```bash
cd ~/clawd/skills/office-cam
./scripts/capture.sh /tmp/office.jpg
```

### Motion Detection ⭐ NEW
```bash
# Start motion detection (runs continuously)
./scripts/motion-detect.sh

# Captures saved to ~/.clawdbot/motion-captures/
# Automatically triggers when motion detected
# 5-second cooldown between captures
```

### πŸ”₯ OVERWATCH Mode (AI Monitoring) ⭐⭐⭐
```bash
# Start AI-powered continuous monitoring
./scripts/overwatch start

# Check status
./scripts/overwatch status

# Stop monitoring
./scripts/overwatch stop
```

**What Overwatch does:**
- πŸ‘€ Monitors webcam 24/7 in background
- 🚨 Detects motion and saves alert
- πŸ”” Can trigger notifications (integrate with OpenClaw)
- πŸ’Ύ Saves motion captures to `~/.clawdbot/overwatch/`

**Or say:** *"Start overwatch"* or *"Keep overwatch"*

### πŸ€– SMART OVERWATCH (AI-Escalated) ⭐⭐⭐⭐⭐
```bash
# Start smart monitoring (zero cost until trigger)
./scripts/smart-overwatch start

# I will check for triggers and analyze when found
```

**How it works:**
1. **πŸ‘€ Local motion detection** (file size comparison, zero API cost, runs always)
2. **🚨 Motion detected** β†’ creates trigger file in `~/.clawdbot/overwatch/triggers/`
3. **πŸ€– I detect the trigger** β†’ analyze image with vision model (only when motion happens)
4. **πŸ‘€ Person found?** β†’ Send alert & optionally continue watching
5. **πŸ“Š No person?** β†’ Delete trigger, back to local monitoring

**What you can say:**
- *"Start smart overwatch"*
- *"Keep watch and tell me if you see anyone"*
- *"Monitor for people only"*
- *"Check overwatch triggers"* (to manually check for pending analysis)

**Cost:** Zero until motion detected, then only when I analyze the image

### πŸ“Έ Instant Telegram Photo ⭐⭐⭐⭐⭐
**Quick capture and send - the simplest way to check your camera**

**Just say:**
- *"Show me the office"*
- *"What's on camera?"*
- *"Send me a photo"*

**What happens:**
1. I instantly capture from your webcam
2. Analyze for clear faces/activity
3. Send best image directly to your Telegram

**No stream needed - just instant photos when you want them.**

### πŸ”₯ OVERWATCH PRO (Full Control System) ⭐⭐⭐⭐⭐⭐
**The complete solution - Telegram alerts, live stream, remote control**

```bash
# Start the full system
./scripts/overwatch-pro start

# Setup Telegram (one-time)
./scripts/overwatch-pro setup

# Get live stream URLs
./scripts/overwatch-pro stream

# Take manual photo
./scripts/overwatch-pro capture

# Check status
./scripts/overwatch-pro status

# View live log
./scripts/overwatch-pro log

# Stop
./scripts/overwatch-pro stop
```

**Features:**
- 🚨 **Instant Telegram alerts** when motion detected
- 🌐 **Live MJPEG stream** at http://localhost:8080
- πŸ“± **Auto-refreshes** every 2 seconds
- πŸ“Έ **Saves all captures** to ~/.clawdbot/overwatch/
- πŸ€– **Telegram bot replies** - respond to alerts with commands
- πŸŒ… **Morning report** (8 AM daily via cron)

**Telegram Commands (reply to motion alert):**
- `analyze` - I'll check the image and tell you what I see
- `stream` - I'll send you the live stream link
- `capture` - I'll take a fresh photo right now

**Network Access:**
```bash
# Local
http://localhost:8080

# From another device on same network
http://$(hostname -I | awk '{print $1}'):8080
```

**Morning Report (with Photo):**
- Auto-generated at 8 AM (America/Denver timezone)
- **Sends a fresh morning photo of your office**
- Summarizes overnight motion events
- Offers to analyze captures
- Provides quick command reference

**Requirements for motion detection:**
```bash
brew install imagemagick  # For image comparison
```

---

## πŸ“Ή Wyze Cameras

### One-Time Setup:

1. **Enable RTSP in Wyze App:**
   - Open Wyze app β†’ Camera Settings β†’ Advanced Settings
   - Enable RTSP, set password
   - Copy the RTSP URL

2. **Add to system:**
   ```bash
   ~/clawd/skills/office-cam/scripts/wyze-dashboard add
   # Enter camera name (e.g., "shed")
   # Enter RTSP URL
   ```

3. **Capture:**
   ```bash
   # Single camera
   ~/clawd/skills/office-cam/scripts/wyze-dashboard capture shed
   
   # All cameras
   ~/clawd/skills/office-cam/scripts/wyze-dashboard capture-all
   
   # Quick one-liner (after setup)
   ~/clawd/skills/office-cam/scripts/wyze-capture shed
   ```

---

## πŸ“‘ ESP32-CAM (ESP-NOW Wireless)

**No WiFi router needed!** Direct wireless between ESP32s.

### Architecture:
```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      ESP-NOW      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  ESP32-CAM      β”‚  ═══════════════► β”‚  ESP32 Base     │◄── USB ──► Mac
β”‚  (Camera Node)  β”‚   (100m range)    β”‚  (Receiver)     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        Battery powered                  Plugged into computer
```

### Flashing:

**Base Station** (plain ESP32, plugged into Mac):
```bash
cd ~/clawd/skills/office-cam/firmware/espnow-base
pio run --target upload
```

**Camera Node** (ESP32-CAM with camera):
```bash
cd ~/clawd/skills/office-cam/firmware/espnow-cam-auto
pio run --target upload
```

### How it works:
1. Base station broadcasts "beacon" every 2 seconds
2. Camera auto-discovers base station
3. Camera captures and sends photo wirelessly
4. Base receives and saves to SD/outputs to serial

**Range:** 100+ meters (no WiFi needed!)

---

## Files

| Script | Purpose |
|--------|---------|
| `capture.sh` | USB webcam |
| `wyze-capture` | Quick Wyze capture |
| `wyze-dashboard` | Multi-cam management |
| `firmware/espnow-base/` | ESP32 receiver |
| `firmware/espnow-cam-auto/` | ESP32-CAM transmitter |

---

## Troubleshooting

**Wyze "Connection refused":**
- Verify RTSP enabled in Wyze app
- Check username/password
- Ensure same WiFi network

**ESP32-CAM not connecting:**
- Keep within 10 feet for testing
- Check LED: blinking = searching, solid = capturing
- Try resetting both boards

**USB webcam not working:**
- `brew install imagesnap`
- System Settings β†’ Privacy β†’ Camera
COMPATIBILITY & REFERENCES

Platform guidance

Imported from the listed AgentSkill.sh category. Complete supplied package files and notices are retained. Includes source scripts; review them before use. Required external tools and credentials are not installed. No bundled code was executed during import. Individual agent task behavior has not been tested.