| name | ipcam |
| title | IP Camera - RTSP & ONVIF Control |
| description | ONVIF PTZ control + RTSP capture + camera discovery. Works with any ONVIF Profile S/T camera. Tested with TP-Link, Hikvision, Dahua, Reolink, Amcrest, Axis. |
| metadata | {"openclaw":{"emoji":"📹","version":"1.0.0","author":"tao","requires":{"bins":["ffmpeg","python3","jq"],"pip":["onvif-zeep"]},"install":[{"id":"auto","kind":"script","label":"Run install.sh","instructions":"bash install.sh"}]}} |
IP Camera Skill
Control IP cameras via RTSP (snapshots, recording) and ONVIF (PTZ, presets, discovery).
Tested with TP-Link Tapo/Vigi. Works with Hikvision, Dahua, Reolink, Amcrest, Axis, and other ONVIF Profile S/T cameras.
Setup
bash skills/ipcam/install.sh
Then either discover cameras automatically or configure manually:
ptz.py discover --add
nano ~/.config/ipcam/config.json
Config Format
{
"default": "front-door",
"cameras": {
"front-door": {
"ip": "192.168.1.100",
"username": "admin",
"password": "secret",
"rtsp_port": 554,
"onvif_port": 2020,
"rtsp_main_path": "stream1",
"rtsp_sub_path": "stream2"
}
}
}
onvif_port: 2020 (TP-Link), 80 (Hikvision/Dahua), 8000, 8080
rtsp_main_path / rtsp_sub_path: auto-detect with ptz.py stream-uri --save
- Env overrides:
CAM_IP, CAM_USER, CAM_PASS, CAM_RTSP_PORT, CAM_ONVIF_PORT
Usage
RTSP (camera.sh)
camera.sh snapshot
camera.sh --cam cam2 snapshot /tmp/cam.jpg
camera.sh record 15
camera.sh stream-url sub
camera.sh info
camera.sh list-cameras
PTZ (ptz.py)
ptz.py status
ptz.py move left
ptz.py move zoomin 0.8 1.0
ptz.py goto 0.5 -0.2 0.0
ptz.py home
ptz.py stop
ptz.py preset list
ptz.py preset goto 1
ptz.py preset set 2 "Door"
Discovery & Stream URI
ptz.py discover
ptz.py discover --add
ptz.py stream-uri
ptz.py stream-uri --save
Multi-camera: use --cam <name> with any command.
Directions
left, right, up, down, zoomin, zoomout, upleft, upright, downleft, downright
Troubleshooting
- RTSP fails: Check IP/port/firewall. Use
ptz.py stream-uri to verify paths. Camera may limit concurrent RTSP connections (try closing other viewers).
- ONVIF fails: Verify ONVIF port and that ONVIF is enabled in camera web UI. Try common ports: 2020, 80, 8000, 8080.
- No cameras found: Ensure same subnet, ONVIF enabled, UDP multicast not blocked.
- PTZ not working: Not all cameras support PTZ. Check ONVIF Profile S support.
- Auth error: Check username/password. Special characters are URL-encoded automatically.