技能简介
基于用户位置的实时安全监控系统,接收手机位置更新,自动检测周边危险(天气警报、地震、空气质量、本地突发事件),并在检测到威胁时向用户发送告警。若用户未响应,系统自动联系紧急联系人进行升级处理。
业务背景
为外勤人员、户外作业团队及独居家属提供实时位置安全防护。系统自动追踪用户位置,持续监测周边天气灾害、地震、空气质量恶化及本地突发事件,第一时间推送WhatsApp告警;若遇紧急情况用户无响应,自动升级通知紧急联系人,形成'检测-告警-兜底'的完整安全闭环,降低人身意外风险。
落地案例:某物流调度中心为200名货车司机部署位置安全监控:司机手机通过OwnTracks自动上报GPS坐标,系统实时监控沿途NWS天气警报与USGS地震数据。当司机驶入雷暴预警区域时,立即收到WhatsApp避险提示;若15分钟内未确认安全,系统自动邮件通知车队调度员及家属,确保极端天气下的人员安全可追溯、可兜底。
能做什么
- 接收 OwnTracks 或 iOS 快捷指令的位置更新
- 监控 NWS 天气警报、USGS 地震数据、Open-Meteo 空气质量
- 扫描本地新闻 RSS 获取突发事件
- 检测到危险时通过 WhatsApp 通知用户
- 15 分钟内无响应则邮件联系紧急联系人
- 支持代理宿主机器的自保监控
使用说明
安装依赖
cd location-webhook/
npm install
交互式配置向导
node setup.js
向导包含 4 步:选择城市(支持 Seattle、Portland、SF、LA、NYC、Chicago 或自定义)、设置紧急联系人姓名与邮箱、配置 OwnTracks 移动应用、启动 webhook 服务器。
快速配置(跳过向导)
node setup.js --city "Portland"
node setup.js --show # 查看当前配置
部署并启动服务
cp -r scripts/ ~/location-webhook/
cd ~/location-webhook/
node server.js # 默认端口 18800
手机端配置 OwnTracks
- 模式设为 HTTP
- URL 填写
http://<your-host>:18800/location?key=<SECRET_KEY>
iOS 快捷指令替代方案
创建自动化:获取当前位置 → 获取 URL 内容(POST,JSON 体含 lat/lon)
配置定时任务
在 Moltbot 中添加两个 cron 作业:
- 每 30 分钟运行 safety-check.js,发现 ALERTS_FOUND 时 WhatsApp 通知用户
- 每 10 分钟检查 safety-state.json,pendingAlert 超过 15 分钟未确认则邮件紧急联系人
添加紧急联系人到记忆
## Emergency Contact
- Name: [姓名]
- Email: [邮箱]
- Relationship: [关系]
输入与输出
见下方输入与输出表格。
| 项目 | 内容 |
|---|---|
| 输入 | 用户实时位置(OwnTracks/iOS 快捷指令推送的 lat/lon)、城市名称或坐标、紧急联系人信息(姓名、邮箱)、监控半径设置(默认 100km)、本地新闻 RSS 源列表 |
| 输出 | WhatsApp 安全告警消息、紧急联系人升级邮件、safety-state.json 状态记录、定时任务执行日志 |
| 适用人群 | 个人安全监控需求者、户外工作者、独居老人远程看护家属、自然灾害频发地区居民、需要自动应急响应的场景 |
| 不包含 | 医疗急救呼叫(911/120)、室内精确定位、历史轨迹回放与分析、多用户家庭账户管理、商业车队监控 |
风险提示
- 依赖第三方免费 API(NWS、USGS、Open-Meteo),服务中断可能导致监控失效
- 位置数据通过 HTTP 明文传输,建议配合反向代理或 VPN 使用
- 紧急联系人邮件可能进入垃圾邮件箱,需提前测试
- 自保监控功能需额外配置 my-location.json
- 测试场景注入后需手动清理 test-override.json
来源信息
原始链接:https://github.com/openclaw/skills/tree/main/skills/sidu/location-safety-skill/SKILL.md
来源类型:GitHub 仓库
