Receive DETECTION_SENSOR_APP alerts from Meshtastic LoRa devices via USB. When the remote sensor GPIO triggers (preset target detected), store the event and alert the user immediately.
技能名称: meshtastic-detection
详细描述:
通过 LoRa 接收来自远程 Meshtastic 设备的检测传感器告警。当远程设备的 GPIO 引脚触发时(预设目标被检测到),事件将被本地存储,并需要通过飞书立即通知用户。
┌──────────────────────────────────────────────────────────────┐
│ USB 接收器守护进程 │
├──────────────────────────────────────────────────────────────┤
│ 监听:仅 DETECTIONSENSORAPP(GPIO 触发事件) │
│ 存储:data/sensor_data.jsonl(每次检测追加写入) │
│ 最新:data/latest.json(最近一次检测) │
└──────────────────────────────────────────────────────────────┘
┌─────────────┐ USB ┌──────────────┐
│ LoRa 节点 │◄────────────►│ usb_receiver │
│ (无线电) │ │ 守护进程 │
└─────────────┘ └──────┬───────┘
│
┌───────────────┼───────────────┐
│ │ │
▼ ▼ ▼
sensorcli.py eventmonitor.py OpenClaw 定时任务
(查询数据) (检查告警) (飞书告警)
bash
cd {baseDir}
source venv/bin/activate
python scripts/usb_receiver.py --port /dev/cu.usbmodem1CDBD4A896441
bash
cd {baseDir}
./venv/bin/python scripts/event_monitor.py
每条 DETECTIONSENSORAPP 记录 = 高优先级告警。输出:
json
{
alerts: [{priority: high, sender: !1dd29c50, text: alert detected, receivedat: ..., channel: ch0, portnum: DETECTIONSENSOR_APP}],
summary: 🚨 从 3 条记录中发现 3 条新检测告警,
alert_count: 3,
new_records: 3
}
bash
python scripts/sensor_cli.py latest
python scripts/sensor_cli.py stats --since 24h
python scripts/sensor_cli.py query --since 1h
data/sensor_data.jsonl 中的每条记录:
json
{receivedat: 2026-03-04T11:07:06+00:00, sender: !1dd29c50, channel: ch0, portnum: DETECTIONSENSOR_APP, data: {type: detection, text: alert detected}}
仅捕获 DETECTIONSENSORAPP 消息。 此端口号表示远程传感器的 GPIO 引脚已被触发——已检测到预设目标。每次检测事件都需要立即向用户发出告警。
所有其他消息类型(TEXTMESSAGEAPP、遥测、位置等)均被忽略。
sensordata.jsonl 在达到 5 MB 时自动轮转(保留 2 个归档文件,总计最大约 15 MB)。轮转是透明的——eventmonitor 自动重置偏移量,sensor_cli 可跨归档文件读取。
定时任务每 60 秒运行一次 event_monitor.py,并将告警发送到飞书:
bash
定时消息模板(供参考):
运行此命令并报告输出:
cd {baseDir} && ./venv/bin/python scripts/event_monitor.py
— 如果 alert_count > 0,告诉我告警数量、最新发送者和时间。
如果 alert_count 为 0,回复:暂无新告警。
关键设置:
所有 DETECTIONSENSORAPP 事件均被视为 高优先级。无需配置规则——每次检测都会触发即时告警。告警消息包括:
编辑 CONFIG.md 以自定义:
用户询问最近的检测:
过去一小时内检测到了什么?
运行:cd {baseDir} && ./venv/bin/python scripts/sensor_cli.py query --since 1h
用户请求统计信息:
给我今天的检测摘要
运行:cd {baseDir} && ./venv/bin/python scripts/sensor_cli.py stats --since 24h
用户询问系统状态:
传感器还在工作吗?
运行:cd {baseDir} && ./venv/bin/python scripts/sensor_cli.py status
{baseDir}/
├── SKILL.md # 本文件(代理指令 + 元数据)
├── CONFIG.md # 用户配置
├── setup.sh # 一键设置
├── scripts/
│ ├── usbreceiver.py # USB 串口守护进程(仅 DETECTIONSENSOR_APP)
│ ├── event_monitor.py # 增量告警监控器
│ └── sensor_cli.py # 查询命令行工具
├── data/
│ ├── sensor_data.jsonl # 检测记录(达到 5 MB 时自动轮转)
│ ├── latest.json # 最近一次检测
│ └── monitor_state.json # 监控字节偏移量 + 已见哈希值
└── references/
└── SETUP.md # 详细安装指南
未找到记录
资源暂时不可用
接收器已连接但无数据显示
定时任务超时或投递失败
该技能支持在以下平台通过对话安装:
帮我安装 SkillHub 和 meshtastic-detection-1776206925 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 meshtastic-detection-1776206925 技能
skillhub install meshtastic-detection-1776206925
文件大小: 23.75 KB | 发布时间: 2026-4-15 11:49