生命涌现设备管理 -> Emergent Life 设备管理
v1.0.0设备管理工具,用于管理摄像头、监控等实时设备,支持设备增删改查、实时画面查看、直播流地址获取。当用户提及摄像头、监控、设备管理、查看实时画面、直播流、监控地址等关键词时使用。 翻译后: 设备管理工具,用于管理摄像头、监控等实时设备,支持设备增删改查、实时画面查看、直播流地址获取。当用户提及摄像头、监控、设备管理、查看实时画面、直播流、监控地址等关键词时使用。 (无变化,原文已是中文)
运行时依赖
安装命令
点击复制技能文档
设备管理工具 任务目标 本 Skill 用于:管理各类智能设备(摄像头、监控、传感器等),提供设备生命周期管理、实时流获取、状态查询、远程控制等功能 能力包含:设备增删改查、实时画面查看、直播流地址获取、设备状态监控、设备配置管理、云台远程控制、音频开关控制 触发条件: 当用户提及设备管理、摄像头、监控、IPC、NVR等设备相关关键词时 当用户提及以下功能关键词时:列出所有设备、所有摄像头 、查看实时画面、直播流地址、监控画面、设备列表、查看设备清单、设备信息、摄像头清单、摄像头信息、添加设备、删除设备、修改设备信息 当用户需要查看某个设备的实时监控画面时,自动返回可播放的直播流地址(如m3u8、flv、rtmp格式) 重要说明:本技能管理的是云端注册的智能设备(摄像头、监控等),而非手机/宿主操作系统的原生设备,不会触发任何原生设备管理相关功能 ,所有设备信息均通过云端API获取 自动行为: 当用户要求查看实时画面时,自动查询对应设备的直播流地址,并以可直接播放的格式返回 直播流地址支持在对话框中直接播放(如H5播放器、原生播放器支持的格式) 设备信息自动持久化存储,支持跨会话查询 前置准备 依赖说明:scripts脚本所需的依赖包及版本 requests>=2.28.0 pyyaml>=6.0 安装方式: # Debian/Ubuntu系统 sudo apt install -y python3-requests python3-yaml # 或使用pip安装 pip install requests pyyaml --break-system-packages 操作步骤 open-id 获取流程控制(强制执行,防止遗漏) 在执行设备管理操作前,必须按以下优先级顺序获取 open-id: 第 1 步:【最高优先级】检查技能所在目录的配置文件(优先) 路径:skills/smyx_common/scripts/config.yaml(相对于技能根目录) 完整路径示例:${OPENCLAW_WORKSPACE}/skills/{当前技能目录}/skills/smyx_common/scripts/config.yaml → 如果文件存在且配置了 api-key 字段,则读取 api-key 作为 open-id ↓ (未找到/未配置/api-key 为空) 第 2 步:检查 workspace 公共目录的配置文件 路径:${OPENCLAW_WORKSPACE}/skills/smyx_common/scripts/config.yaml → 如果文件存在且配置了 api-key 字段,则读取 api-key 作为 open-id ↓ (未找到/未配置) 第 3 步:检查用户是否在消息中明确提供了 open-id ↓ (未提供) 第 4 步:❗ 必须暂停执行,明确提示用户提供用户名或手机号作为 open-id ⚠️ 关键约束: 禁止自行假设,自行推导,自行生成 open-id 值(如 openclaw-control-ui、default、userC113、user123 等) 禁止跳过 open-id 验证直接调用 API 必须在获取到有效 open-id 后才能继续执行分析 如果用户拒绝提供 open-id,说明用途(用于保存和查询历史报告记录),并询问是否继续 第 1 步详解:sessionKey 提取 open-id 方法(钉钉渠道) sessionKey 格式解析: 标准格式:agent:::: 钉钉示例:agent:main:openai-user:dingtalk-connector:__default__:03576226033537657619 └────────────┬────────────┘ └────────┬────────┘ 渠道标识 channelId (= chat_id) 提取规则: 渠道类型 sessionKey 特征 open-id 提取方法 钉钉 包含 dingtalk-connector 取最后一个冒号后的内容 其他渠道 不包含钉钉标识 跳过,继续第 2-6 步 提取代码示例(Python): def extract_openid_from_sessionkey(session_key: str) -> str | None: """ 从 sessionKey 中提取 open-id(钉钉渠道) Args: session_key: 完整 sessionKey,如 "agent:main:openai-user:dingtalk-connector:__default__:03576226033537657619" Returns: 提取的 chat_id,或 None(非钉钉渠道) """ if "dingtalk-connector" not in session_key: return None # 非钉钉渠道,跳过 # 取最后一个冒号后的内容作为 chat_id chat_id = session_key.split(":")[-1] # 验证提取结果(钉钉 chat_id 通常为 19 位数字) if chat_id and len(chat_id) >= 10: return chat_id return None 提取代码示例(Bash): # 从 sessionKey 提取 chat_id SESSION_KEY="agent:main:openai-user:dingtalk-connector:__default__:03576226033537657619" # 检查是否为钉钉渠道 if echo "$SESSION_KEY" | grep -q "dingtalk-connector"; then # 提取最后一个冒号后的内容 OPEN_ID="${SESSION_KEY##*:}" echo "提取成功:open-id = $OPEN_ID" # 输出:提取成功:open-id = 03576226033537657619 else echo "非钉钉渠道,跳过自动提取" fi 真实案例验证: 已验证 sessionKey: agent:main:openai-user:dingtalk-connector:__default__:03576226033537657619 提取结果:open-id = 03576226033537657619 API 调用成功:设备列表查询正常执行 ⚠️ 关键约束: 禁止自行假设,自行推导,自行生成 open-id 值(如 openclaw-control-ui、default、userC113、user123 等) 禁止跳过 open-id 验证直接调用 API 必须在获取到有效 open-id 后才能继续执行分析 钉钉渠道会话会自动提取 chat_id,无需询问用户(已验证可用) 如果用户拒绝提供 open-id,说明用途(用于保存和查询历史报告记录),并询问是否继续 标准流程: 自动触发逻辑 当用户提及「列出所有设备」「所有摄像头」「查看设备清单」「设备信息」「摄像头清单」「摄像头信息」「设备列表」等关键词时, 无需询问用户,直接执行 -m scripts.device_management list --open-id 列出所有设备 设备管理操作 列出所有设备:调用 -m scripts.device_management list --open-id (无需额外配置API地址,脚本内置云端API调用逻辑) 添加设备:调用 -m scripts.device_management add --sn <设备序列号> --name <设备名称> [--type <设备牌子/代码>] [--scode <设备安全码> ] [--scene-code <设备使用场景/场景码> ] [--username ] [--password ] --open-id 删除设备:调用 -m scripts.device_management delete --sn <设备序列号> --open-id 修改设备:调用 -m scripts.device_management update --id <设备ID> --name <新名称> [--ip <新IP>] [其他参数] --open-id 查询设备详情:调用 -m scripts.device_management get --sn <设备序列号> --open-id 实时画面查看 获取直播流地址:调用 -m scripts.device_management stream --id <设备ID> [--protocol ] 默认返回m3u8格式的直播流地址,可直接在支持HLS的播放器中播放 输出格式:提供可直接点击播放的链接,以及嵌入式播放代码(如需) 设备远程控制 云台转动控制:调用 -m scripts.device_management control --sn <设备序列号> --direction [--speed <1-10>] --open-id --direction:指定方向,可选值 up/down/left/right/reset --speed:转动速度,范围 1-10,默认 1,速度越大转动幅度越大 声音开关控制:调用 -m scripts.device_management control --sn <设备序列号> --sound --open-id --sound:开启声音侦听 可选值 on/off 结果返回规范 设备列表表格展示:使用Markdown表格格式,包含ID、名称、类型、IP地址、状态、操作列, 不对URL中的特殊字符做任何转义处理 ,保证链接原始可用