Install
openclaw skills install vispatrol-alram-query在 Windows 上查询 VisPatrol 报警与抓拍;执行前必须先获得用户明确同意读取本地 vpup.json 运行时配置。
openclaw skills install vispatrol-alram-query当用户询问设备报警相关信息时,直接调用技能目录下的 Python 脚本完成查询,由脚本统一返回报警记录及其对应的最新报警抓拍,并据此生成完整告警报告。
适用于以下场景:
为把对 vpup.json 的读取显式收敛到用户审批边界,本技能要求先在 openclaw.json 中启用一个明确的确认开关;未设置前,本技能不应被加载。
示例配置:
{
skills: {
entries: {
"vispatrol-alarm-query": {
enabled: true,
config: {
userApprovedVpupAccess: true,
},
},
},
},
}
只有在操作者已经确认本机 TEMP 目录中的 vpup.json 属于受信任的 VisPatrol 运行环境,并同意该 skill 在当前机器上读取它时,才应把 userApprovedVpupAccess 设为 true。
pip install requests
pip install pycryptodome
上层应根据用户意图抽取并传入以下参数:
示例:
python scripts/alarm_query.py --start "2025-12-01 09:00:00" --end "2025-12-01 12:00:00" --type 120001 --name "设备A" --json
以下参数属于脚本运行时配置,只有在部署或调试时需要覆盖默认配置才传入;普通业务查询通常不需要上层显式指定:
补充说明:当前脚本实现还会从 Windows 临时目录默认读取 vpup.json 作为运行时前置配置来源。该文件不是可任意替换的自由输入,而是本技能与本地 VisPatrol 运行环境之间的受限配置边界;启用本技能前应先完成上文所述的显式批准。
示例:
python scripts/alarm_query.py --start "2025-12-01 00:00:00" --end "2025-12-01 23:59:59" --base-url "http://127.0.0.1" --timeout 30 --json
说明:为满足“基于查询结果生成报警报告总结”和“默认把抓拍图片一并转发”的执行规则,上层在正常业务查询中应默认使用 --json。脚本返回的 JSON 作为事实来源,上层再基于 alarms、snapshot.local_path 和 query_result.image_attachments 整理最终文字报告并追加图片。未带 --json 的纯文本输出仅适用于人工调试或临时核对脚本文本结果,不应作为面向最终用户的默认返回路径。
当需要把抓拍图片连同文字报告一起发给飞书机器人或其他支持图片上传的渠道时,必须使用 --json。此时脚本会返回:
示例:
python scripts/alarm_query.py --start "2025-12-01 00:00:00" --end "2025-12-01 23:59:59" --type 120001 --json
当用户用自然语言提问时,上层需要先把问题转换为脚本参数。可按以下规则提取:
提取后应转换为对应命令行参数,而不是把原句直接交给脚本。 其中“今天”“昨天”等相对时间,需要先换算成实际日期时间,再传给 --start 和 --end。
因此,推荐策略如下:
默认命令:
python scripts/alarm_query.py --start "<开始时间>" --end "<结束时间>" --json
如果只是本地调试脚本文本输出,可使用:
python scripts/alarm_query.py --start "<开始时间>" --end "<结束时间>"
如果需要增加筛选条件,追加对应参数,例如:
python scripts/alarm_query.py --start "2025-12-01 00:00:00" --end "2025-12-01 23:59:59" --pagesize 20 --type 110002 --json
查询到 2 条报警,已按设备和通道汇总。
设备A / 通道1:共 2 条报警
1. 报警ID:202512010001,报警详情:烟雾报警,报警时间:2025-12-01 10:23:11
抓拍:2025-12-01 10:23:08,路径 C:\snapshots\deviceA_ch1_20251201102308.jpg
2. 报警ID:202512010002,报警详情:烟雾报警,报警时间:2025-12-01 11:05:42
抓拍:未匹配到同设备同通道抓拍
已按返回顺序附上抓拍图片:设备A-通道1。
用户输入:查询今天的所有报警信息
执行:
python scripts/alarm_query.py --start "<今天 00:00:00>" --end "<今天当前或 23:59:59>" --json
用户输入:查看昨天设备 A 的烟雾报警
执行:
python scripts/alarm_query.py --start "<昨天 00:00:00>" --end "<昨天 23:59:59>" --name "A" --type 120005 --json
用户输入:按结构化结果返回 2025-12-01 09:00 到 12:00 的报警
执行:
python scripts/alarm_query.py --start "2025-12-01 09:00:00" --end "2025-12-01 12:00:00" --json
用户输入:查询 2025-12-01 09:00:00 到 2025-12-01 12:00:00 的区域入侵报警,并强制返回 20 条
执行:
python scripts/alarm_query.py --start "2025-12-01 09:00:00" --end "2025-12-01 12:00:00" --type 120001 --pagesize 20 --json