name: asl-control
description: 通过 REST API 监控和控制 AllStar Link 业余无线电节点
metadata: {"openclaw":{"emoji":"📡","requires":{"bins":["python3"],"env":["ASL_PI_IP","ASL_API_KEY"]}}}
通过 ASL Agent REST API 控制和监控您的 AllStar Link 节点。
此技能是一个客户端。它需要与一个独立运行的 ASL3 代理后端通信,该后端必须在 Raspberry Pi(或网络可达的任何主机)上运行。
您需要:
asl-agent FastAPI 服务的 Raspberry Pi(服务器代码请参见本仓库的 backend/ 目录)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自动断开连接仅在运行 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 textasl-tool.py nodes --out textasl-tool.py connect 55553 --out textasl-tool.py connect 55553 --monitor-only --out textasl-tool.py connect-fav "<名称>" --out textasl-tool.py disconnect 55553 --out textasl-tool.py favorites list --out textasl-tool.py net start <名称> --out textasl-tool.py net status --out textasl-tool.py audit --lines 20 --out textASL_PI_IP,推荐使用 Tailscale IP 而非局域网 IP(可在网格中的任何位置工作)/opt/asl-agent/audit.log