空域飞机告警

5小时前更新 1 00
空域飞机告警空域飞机告警
空域飞机告警

技能简介

连接本地 readsb SBS/BaseStation TCP 数据流(端口30003),检测指定半径范围内的 overhead 飞机,并通过 Clawdbot 发送通知。采用周期性检查模式(cron),非常驻守护进程。

业务背景

适用于需关注特定空域飞机动态的安防、物业或活动管理场景。通过对接本地ADS-B数据,自动识别进入设定范围的低空飞行目标,及时推送告警,帮助现场人员掌握 overhead 飞机情况,提升对空域异常的响应效率。

落地案例:某园区安保团队将监控中心坐标设为圆心,配置5公里告警半径。系统每10分钟轮询一次本地ADS-B数据流,当检测到ICAO地址为新近进入范围且不在冷却期内的飞机时,自动向值班 WhatsApp 群组发送机型与方位信息,避免人工盯屏漏报。

能做什么

  • 实时解析 SBS 格式航空数据,提取 ICAO 地址与经纬度
  • 基于 Haversine 公式计算飞机与设定坐标点的距离
  • 按可配置半径过滤 overhead 目标,避免重复告警(冷却机制)
  • 持久化状态至 JSON 文件,支持跨周期去重
  • 与 Clawdbot cron 集成,实现 WhatsApp 自动推送

使用说明

安装依赖

# 确保 Python3 环境可用
# 无需额外 pip 包,仅依赖标准库

手动测试运行

python3 skills/public/adsb-overhead/scripts/sbs_overhead_check.py \
  --host <SBS_HOST> --port 30003 \
  --home-lat <LAT> --home-lon <LON> \
  --radius-km 2 \
  --listen-seconds 5 \
  --cooldown-min 15

若输出内容则为新告警(不在冷却期内);无输出表示采样窗口内无 overhead 飞机。

配置 Clawdbot 定时任务

  1. 创建 cron watcher,执行上述脚本
  2. 判断 stdout 是否非空,若存在内容则通过 message.send 发送至 WhatsApp
  3. 建议轮询间隔 30–60 秒,--listen-seconds 设为 3–8 秒以收集足够位置帧

调参建议

  • 扩大 --radius-km 减少漏报
  • 增加 --listen-seconds 应对高流量 feed 下的位置更新延迟
  • --cooldown-min 建议 15–60 分钟,防止消息轰炸

输入与输出

见下方输入与输出表格。

项目内容
输入SBS_HOST(SBS服务器地址)、LAT/LON(监控中心坐标)、radius-km(半径公里)、listen-seconds(监听秒数)、cooldown-min(冷却分钟)
输出stdout(告警文本,非空即触发)、state.json(状态持久化文件)
适用人群本地ADS-B设备持有者、空域监控需求方、Clawdbot+WhatsApp用户
不包含公共ADS-B聚合服务、高度/机型过滤、多边形围栏、历史轨迹分析

 

风险提示

  • 依赖本地 readsb 实例的 SBS 数据流可用性,feed 中断将导致检测失效
  • Haversine 计算未考虑地形高度,仅基于二维平面距离
  • 状态文件默认存储于 ~/.clawdbot/adsb-overhead/,需确保目录可写
  • SBS 字段解析假设参见 references/sbs-fields.md,非标准格式可能解析异常
  • 高频轮询配合短冷却期可能导致消息过量,建议生产环境保守配置

来源信息

原始链接:https://github.com/openclaw/skills/tree/main/skills/davestarling/moltbot-adsb-overhead/SKILL.md
来源类型:GitHub 仓库

数据统计

相关导航

暂无评论

none
暂无评论...