Token导航 LogoToken导航TokenDH.com
研究检索敏感数据clawhub未标认证来源可访问clear审计提醒

recamerarecamera 音频

Agent Skill

recamera 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

8,208

周安装

342

GitHub Stars

公开资料未说明

下载量

2,736
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:recamera(recamera 音频)
来源仓库:https://github.com/mjq2020/recamera
安装命令:
openclaw skills install recamera
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install recamera

简介

提供 reCamera (RV1126B) 设备全栈 Web API 参考文档。

  • 涵盖鉴权、设备管理、音视频配置与存储规则详细说明。
  • 适用于开发者集成摄像头功能至智能家居或安防系统。recamera 属于研究检索类 Skill,可作为该场景下的辅助能力补充。
  • 需配合 SDK 使用,并确认固件版本与 API 兼容性。
  • 部分高级功能依赖特定硬件型号,非全系列设备均支持全部接口。

SKILL.md

name
recamera-web-api
description
reCamera (RV1126B) device full-stack Web API reference covering authentication, device management, video/audio/image configuration, recording rules & storage, AI model inference, terminal/logs, and SenseCraft cloud model conversion. Use when developing or debugging reCamera frontend/backend features, calling device HTTP/WebSocket APIs, or integrating with SenseCraft AI services.

reCamera Web API

Complete API reference for the reCamera (RV1126B) embedded camera platform. This skill enables agents to correctly construct HTTP requests, handle responses, and follow the interaction protocols required by the device.

Conventions

Base URL

All CGI endpoints are prefixed with:

/cgi-bin/entry.cgi/{api_category}/{resource}/{sub_resource}

Exceptions clearly noted per-endpoint (e.g. serial port uses /api/v1/..., file relay uses /storage/relay/...).

Authentication (CRITICAL — Token Must Be Captured and Reused)

Login flow (mandatory for all authenticated operations):

  1. Fetch RSA public key: GET /system/key (no auth required)
  2. Login: POST /system/login with {sUserName, sPassword} (password RSA-encrypted)
  3. Extract token from response: On success (iStatus: 0, iAuth: 1), the HTTP response contains a Set-Cookie header like Set-Cookie: token=<jwt_value>; Path=/; .... You MUST capture the token value from this header.
  4. Persist token for session: Store the extracted token value. All subsequent HTTP requests for this session must include the header: Cookie: token=<jwt_value>

For curl / shell scripts:

# Login and capture token from Set-Cookie header
RESPONSE=$(curl -s -D - -X POST http://{ip}/cgi-bin/entry.cgi/system/login \
  -H "Content-Type: application/json" \
  -d '{"sUserName":"admin","sPassword":"<RSA-encrypted>"}')
TOKEN=$(echo "$RESPONSE" | grep -oP 'Set-Cookie:.*token=\K[^;]+')

# ALL subsequent requests must carry the token cookie
curl -s -X GET http://{ip}/cgi-bin/entry.cgi/system/device-info \
  -H "Cookie: token=$TOKEN"

For browser automation (browser-use agent): After navigating to the login page and submitting credentials, the browser automatically stores the token cookie from the Set-Cookie header. However, you should verify the cookie exists by checking document.cookie for a token= entry after login succeeds. All subsequent same-origin XHR/fetch requests will include the cookie automatically (the app uses withCredentials: true).

IMPORTANT: If you receive an HTTP 401 response or a response body with "code": 401, the token has expired or is missing. You must re-login to obtain a fresh token.

Agent Playbooks (Mandatory Execution)

When user intent matches one of the following tasks, execute the corresponding workflow directly.

Playbook A: Discover reCamera Devices in a Subnet

Trigger intent examples: "scan subnet", "find recamera on 192.168.x.0/24", "discover devices in LAN"

Mandatory workflow:

  1. Enumerate active IPs in the target subnet (e.g. ARP table / ping sweep / nmap host discovery).
  2. For each active IP, send GET http://{ip}/cgi-bin/entry.cgi/system/key (no auth).
  3. Classify as reCamera only if:

- HTTP status is 200, and - response contains field sPublicKey.

  1. Return a structured result with:

- reachable_ips - recamera_ips - non_recamera_ips - unreachable_or_timeout_ips

Do not treat "TCP port open" alone as reCamera confirmation. /system/key verification is required.

Playbook B: Login and Persist Token for Follow-up Calls

Trigger intent examples: "login device", "call authenticated API", "configure after login"

Mandatory workflow:

  1. GET /system/key to fetch RSA public key.
  2. POST /system/login with {sUserName, sPassword} (RSA-encrypted password).
  3. On successful login (iStatus: 0, iAuth: 1), parse Set-Cookie response header and extract token.
  4. Persist token in session context.
  5. For all subsequent HTTP requests in the same session, include:

- Cookie: token=<jwt_value>

  1. If any request returns 401 / auth failure, re-login and refresh token, then retry once.

Do not continue authenticated calls without a captured token.

Configuration Update Pattern (Read-Before-Write)

CRITICAL: For any endpoint that supports both GET and POST/PUT:

  1. First GET the current full configuration
  2. Modify only the fields you need to change on the returned data
  3. POST/PUT the complete modified configuration back

Never send a partial configuration constructed from scratch. The device expects the full config object and omitted fields may revert to defaults or cause unexpected behavior.

Field Naming

JSON keys use a type-prefix + camelCase convention:

PrefixTypeExample
iIntegeriCpuUsage
fFloatfConfidence
sStringsSerialNumber
lList/ArraylActiveWeekdays
dDict/ObjectdNtpConfig
bBooleanbRuleEnabled

Standard Response

Operation endpoints (POST/PUT/DELETE) return:

{
  "code": 0,
  "message": "success"
}

code: 0 = success. Non-zero = error (see error code ranges below).

Error Code Ranges

RangeModule
10xxxDevice Info
20xxxLive Video
30xxxRecording & Storage
40xxxAI Inference
50xxxTerminal & Logs

API Quick Reference

1. Authentication

ActionMethodPathNotes
Get RSA public keyGET/system/keyNo auth. Encrypt passwords with returned key
LoginPOST/system/loginBody: {sUserName, sPassword}. IP-based lockout on failures
Change passwordPUT/system/passwordBody: {sUserName, sOldPassword, sNewPassword} (RSA-encrypted)

Login response key fields:

  • iStatus: 0=correct, -1=wrong password, -3=rate limited
  • iAuth: 1=success, 0=fail, 2=must change password

2. Device Info

ActionMethodPath
Device infoGET/system/device-info
Get system timeGET/system/time
Set system timePUT/system/time
System resources (CPU/NPU/Mem/Storage)GET/system/resource-info
Get network (LAN)GET/network/lan
Set network (LAN)PUT/network/lan
WiFi statusGET/network/wifi-status
WiFi power on/offPOST`/network/wifi-status?power=on\off`
Scan WiFi listGET/network/wifi-list
Connected WiFi infoGET/network/wifi
Connect WiFiPOST/network/wifi
Forget WiFiDELETE/network/wifi?Ignore={ssid}
Get HTTP API settingsGET/web/setting
Set HTTP API settingsPOST/web/setting
Get FTP settingsGET/ftp/setting
Set FTP settingsPOST/ftp/setting
Get serial port configGET/api/v1/device/serial-port
Set serial port configPOST/api/v1/device/serial-port
Export device configGET/config/export
Import device configPOST/config/upload
RebootPOST/system/reboot
Factory reset (two-phase)POST/system/factory-reset
Get HTTPS statusGET/system/secure
Set HTTPSPOST/system/secure
Battery statusGET/system/battery

3. Live Video

ActionMethodPath
Get video encode configGET/video/{stream_id}/encode
Set video encode configPUT/video/{stream_id}/encode
Get stream push configGET/video/{stream_id}/stream
Set stream push configPOST/video/{stream_id}/stream
Get OSD configGET/osd/cfg
Set OSD configPOST/osd/cfg
Get audio encode (stream)GET/audio/{id}
Set audio encode (stream)POST/audio/{id}
Get audio encode (storage)GET/audio/storage
Set audio encode (storage)POST/audio/storage

stream_id: 0=main stream, 1=sub stream

4. Image (ISP) Settings

ActionMethodPath
Get all ISP paramsGET/image/0
Reset to defaultsPOST/image/0
Switch scene profilePUT/image/0/scene
Video adjustment (rotation/flip)PUT/image/0/video-adjustment
Night-to-day paramsPUT/image/0/night-to-day
Image adjustment (brightness etc.)PUT/image/0/{scene_id}/adjustment
ExposurePUT/image/0/{scene_id}/exposure
Backlight (BLC/HDR/HLC)PUT/image/0/{scene_id}/blc
White balancePUT/image/0/{scene_id}/white-blance
Image enhancement (denoise)PUT/image/0/{scene_id}/enhancement

scene_id: 0=general, 1=day, 2=night

ISP Configuration Workflow:

  1. GET /image/0 — fetch all params and determine current scene/profile in use
  2. Select target scene profile (scene_id / iProfile: 0|1|2) based on current mode or user-specified mode
  3. PUT /image/0/scene with {iProfile: 0|1|2} — enter that profile's live edit mode (5min timeout)
  4. Adjust parameters (brightness/contrast/hue/saturation/sharpness etc.) via PUT /image/0/{scene_id}/{specific}
  5. Send save/commit command: PUT /image/0/scene with {iProfile: -1} to exit edit mode and finalize changes

Mandatory sequence for image tuning tasks: "select mode -> enter mode edit state -> adjust params -> send save command". Do not skip the final save/commit step.

5. Recording

ActionMethodPath
Get/Set global rule configGET/POST.../record/rule/config
Get/Set schedule ruleGET/POST.../record/rule/schedule-rule-config
Get/Set record rule (triggers)GET/POST.../record/rule/record-rule-config
Recording system infoGET.../record/rule/info
HTTP rule triggerPOST.../record/rule/http-rule-activate
Get/Set storage configGET/POST.../record/storage/config
Storage statusGET.../record/storage/status
Storage controlPOST.../record/storage/control

Trigger types: INFERENCE_SET, TIMER, GPIO, TTY, HTTP

Storage control actions: FORMAT, FREE_UP, EJECT, CONFIG, RELAY, RELAY_STATUS, UNRELAY, REMOVE_FILES_OR_DIRECTORIES

6. File Access (via Relay)

File access requires a relay session:

  1. POST .../record/storage/control with sAction: "RELAY" — returns dRelayStatus.sRelayDirectory (UUID)
  2. GET /storage/relay/{uuid}/ — list directories (Nginx autoindex JSON)
  3. GET /storage/relay/{uuid}/{path} — download file
  4. Relay auto-expires after 300s; re-request refreshes timeout
  5. Video thumbnails: /path/to/.thumb/video.mp4.thumb.jpg (may not exist, implement fallback)

7. AI Model & Inference

ActionMethodPath
List modelsGET/model/list
Upload model (resumable)POST/model/upload
Delete modelDELETE/model/delete?File-name={name}
Get model infoGET/model/info?File-name={name}
Set model infoPOST/model/info?File-name={name}
Supported algorithmsGET/model/algorithm
Get inference statusGET/model/inference?id=0
Configure inferencePOST/model/inference?id=0
Get notification configGET/notify/cfg
Set notification configPOST/notify/cfg

Notification output modes: 0=off, 1=MQTT, 2=HTTP, 3=UART

8. WebSocket Endpoints

FunctionURLProtocol
Inference results stream/ws/inference/resultsWebSocket
Terminal (ttyd + xterm.js)/ws/system/terminalWebSocket
System logs/ws/system/logsWebSocket

9. SenseCraft AI Cloud (ONNX to RKNN)

Base URL: https://sensecraft-train-api.seeed.cc (prod) / https://test-sensecraft-train-api.seeed.cc (test)

ActionMethodPathKey Params
Create conversion taskPOST/v1/api/create_taskuser_id, framework_type=9, device_type=40, file (.onnx)
List user modelsGET/v1/api/get_training_recordsuser_id, framework_type=9, device_type=40, page, size
Check task statusGET/v1/api/train_statususer_id, model_id
Download model (v1)GET/v1/api/get_modeluser_id, model_id — returns binary .rknn
Download model (v2)GET/v2/api/get_modeluser_id, model_id — returns JSON with download_url
Delete cloud modelGET/v1/api/del_modeluser_id, model_id

SenseCraft Auth Flow:

  1. Redirect user to: https://sensecraft.seeed.cc/ai/authorize?client_id=seeed_recamera&response_type=token&scop=profile&redirec_url={your_url}
  2. Receive token via callback
  3. Backend resolves user_id: POST https://sensecraft-hmi-api.seeed.cc/api/v1/user/login_token with Authorization: {token} header

Conversion polling: 2s interval on /train_status; download only when status === "done"

Firmware Upgrade Flow

Two modes: local upload (resumable) and network download.

Network upgrade:

  1. POST /system/firmware-upgrade?upload-type=network with {sReleaseURL} — returns version info + sConfirmToken
  2. POST /system/firmware-upgrade?upload-type=network with {sConfirmToken} — confirm upgrade
  3. GET /system/firmware-upgrade — poll download progress

Local upload (resumable):

  1. POST /system/firmware-upgrade?upload-type=resumable with {iFileSize} — returns File-Id header
  2. POST /system/firmware-upgrade?id={file_id} with binary chunks (Content-Range headers)
  3. POST /system/firmware-upgrade?start={file_id}&md5sum={hash} — finalize upload

Factory Reset (Two-Phase Confirmation)

  1. First POST /system/factory-reset — returns sConfirmToken (time-limited, ~1-5 min)
  2. Second POST /system/factory-reset with {sConfirmToken} — executes reset

Key Constraints & Gotchas

  • Read-before-write (GET-then-POST/PUT): When updating any configuration endpoint that has a corresponding GET method, ALWAYS fetch the current configuration first via GET, then modify only the needed fields on the fetched data, and POST/PUT the complete object back. Never construct a partial config payload from scratch — the device expects the full configuration structure and missing fields may be reset to defaults or cause errors
  • JWT token expiration: The token obtained from login has a ~10-hour TTL. For long-running scripts or sessions, monitor for 401/auth errors and re-login to refresh the token
  • RTSP capture with OpenCV: When using cv2.VideoCapture to grab frames from an RTSP stream, the first ~120 frames are stale buffered data. ALWAYS discard at least 120 frames before capturing a usable image (e.g. loop cap.read() 120 times, then take the next frame)
  • BLC/HDR/HLC are mutually exclusive — only one can be "open" at a time in backlight settings
  • Privacy masks: max 6 regions in OSD mask overlay
  • ISP scene config: 5-minute inactivity timeout auto-exits live config mode
  • Storage RELAY: requires slot state >= CONFIGURED; relay expires in 300s
  • Model inference: model must have associated model info (JSON) before enabling
  • InferenceSet + classification model: RegionFilter must be empty
  • InferenceSet + detection model: at least one polygon required (default to full-frame [[0,0],[1,0],[1,1],[0,1]])
  • Serial port endpoint does NOT go through CGI: /api/v1/device/serial-port
  • File relay endpoint does NOT go through CGI: /storage/relay/...
  • Device discovery: To detect whether a reCamera device is reachable at a given IP, send GET http://{ip}/cgi-bin/entry.cgi/system/key. This endpoint requires no authentication and returns immediately. A successful response (HTTP 200 with sPublicKey field) confirms the target is a reCamera device

Large Reference Reading Policy (Token-Efficient)

API_REFERENCE.md is intentionally large. Use it on demand instead of reading the whole file by default.

  1. Default behavior: Do NOT read API_REFERENCE.md in full.
  2. First-pass routing: Determine target module from user intent (auth/device/network/video/image/recording/storage/inference/websocket/cloud).
  3. Section-first lookup: Read only the relevant section(s) for the current task.
  4. Progressive expansion: If a field or constraint is still unclear, expand to adjacent subsection(s) only.
  5. Full-file exception: Read the entire API_REFERENCE.md only when the user explicitly asks for a full audit/review/export, or when cross-module validation is strictly required.

Practical rule: prefer "minimum sufficient context" and keep reads scoped to the exact endpoint(s) being implemented or debugged.

Additional Resources

  • For complete endpoint schemas with all fields and value ranges, see API_REFERENCE.md

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

79.24%
按下载量换算2,168

安全审计

VirusTotal

可疑

ClawScan

通过

Static analysis

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills