OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  asl-control: 通过 REST API 监控和控制 AllStar Link 业余无线电节点

asl-control: 通过 REST API 监控和控制 AllStar Link 业余无线电节点

 
  skills ·  2026-02-01 05:25:54 · 3 次点击  · 0 条评论  

name: asl-control
description: 通过 REST API 监控和控制 AllStar Link 业余无线电节点
metadata: {"openclaw":{"emoji":"📡","requires":{"bins":["python3"],"env":["ASL_PI_IP","ASL_API_KEY"]}}}


AllStar Link 节点控制

通过 ASL Agent REST API 控制和监控您的 AllStar Link 节点。


前提条件

此技能是一个客户端。它需要与一个独立运行的 ASL3 代理后端通信,该后端必须在 Raspberry Pi(或网络可达的任何主机)上运行。

您需要:

  • 一台运行 asl-agent FastAPI 服务的 Raspberry Pi(服务器代码请参见本仓库的 backend/ 目录)
  • Pi 必须可以从 OpenClaw 运行的地方访问——推荐使用 Tailscale
  • Pi 上的 config.yaml 文件(位于 /opt/asl-agent/config.yaml)包含您的 API 密钥和节点号

环境变量(请在您的密钥文件中设置,例如 ~/.config/secrets/api-keys.env):

  • ASL_PI_IP -- Pi 的 IP 地址(推荐使用 Tailscale IP,可在任何地方工作)
  • ASL_API_KEY -- 来自 Pi 上 config.yaml 的 Bearer 令牌
  • ASL_API_BASE -- (可选)如果端口不是 8073,则覆盖完整的基 URL。格式:http://主机:端口
  • ASL_STATE_DIR -- (可选)覆盖收藏夹/网络状态文件的存储位置。默认:~/.openclaw/state/asl-control/

使用方法

所有命令都通过 Python 客户端执行。请始终先加载您的密钥:

source ~/.config/secrets/api-keys.env
python3 {baseDir}/scripts/asl-tool.py <命令> [标志]

每个命令都支持 --out json(默认,机器可读)或 --out text(人类可读的单行输出)。

快速参考

# 状态与监控
python3 {baseDir}/scripts/asl-tool.py status --out text
python3 {baseDir}/scripts/asl-tool.py nodes --out text
python3 {baseDir}/scripts/asl-tool.py report --out text
python3 {baseDir}/scripts/asl-tool.py audit --lines 20

# 连接 / 断开连接
python3 {baseDir}/scripts/asl-tool.py connect 55553 --out text
python3 {baseDir}/scripts/asl-tool.py connect 55553 --monitor-only --out text
python3 {baseDir}/scripts/asl-tool.py disconnect 55553 --out text

# 收藏夹
python3 {baseDir}/scripts/asl-tool.py favorites list
python3 {baseDir}/scripts/asl-tool.py favorites set mynet 55553
python3 {baseDir}/scripts/asl-tool.py favorites remove mynet
python3 {baseDir}/scripts/asl-tool.py connect-fav mynet --out text

# 网络配置文件(定时会话,默认自动断开)
python3 {baseDir}/scripts/asl-tool.py net list
python3 {baseDir}/scripts/asl-tool.py net set ares 55553 --duration-minutes 90
python3 {baseDir}/scripts/asl-tool.py net start ares --out text
python3 {baseDir}/scripts/asl-tool.py net status --out text
python3 {baseDir}/scripts/asl-tool.py net tick --out text
python3 {baseDir}/scripts/asl-tool.py net stop --out text
python3 {baseDir}/scripts/asl-tool.py net remove ares

# 监视(JSON 行事件流)
python3 {baseDir}/scripts/asl-tool.py watch --interval 5 --emit-initial

状态文件

收藏夹和网络会话状态存储在仓库外部,因此更新后仍会保留:

  • ~/.openclaw/state/asl-control/favorites.json
  • ~/.openclaw/state/asl-control/net-profiles.json
  • ~/.openclaw/state/asl-control/net-session.json

网络定时检查(cron)

自动断开连接仅在运行 net tick 时触发。将其添加到 cron 以强制执行:

* * * * * /bin/bash -c 'source ~/.config/secrets/api-keys.env && python3 /path/to/asl-tool.py net tick --out text >> ~/.openclaw/state/asl-control/tick.log 2>&1'

自然语言指令转换

当用户使用自然语言提问时,将其转换为 Python 客户端命令:

  • "检查我的节点" -> asl-tool.py report --out text
  • "当前连接了什么?" -> asl-tool.py nodes --out text
  • "连接到节点 55553" -> asl-tool.py connect 55553 --out text
  • "仅监听节点 55553" -> asl-tool.py connect 55553 --monitor-only --out text
  • "连接到 <收藏夹名称>" -> asl-tool.py connect-fav "<名称>" --out text
  • "从节点 55553 断开连接" -> asl-tool.py disconnect 55553 --out text
  • "列出我的收藏夹" -> asl-tool.py favorites list --out text
  • "启动网络 <名称>" -> asl-tool.py net start <名称> --out text
  • "网络状态" -> asl-tool.py net status --out text
  • "显示审计日志" -> asl-tool.py audit --lines 20 --out text

注意事项

  • 对于 ASL_PI_IP,推荐使用 Tailscale IP 而非局域网 IP(可在网格中的任何位置工作)
  • 由于您节点上的 AllStar 调度程序,某些节点在断开连接后会自动重新连接。这是 ASL 配置行为,而非 API 错误。如果您需要保持断开状态,请先禁用调度程序。
  • 所有命令都会记录到 Pi 上的审计跟踪文件 /opt/asl-agent/audit.log
3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor