|
@@ -1,13 +1,14 @@
|
|
|
# OpenCode Monitor
|
|
# OpenCode Monitor
|
|
|
|
|
|
|
|
-OpenCode 状态监控工具,支持实时监控多个 OpenCode 实例的状态,并通过 MQTT 推送状态信息。
|
|
|
|
|
|
|
+OpenCode 状态监控工具,支持实时监控多个 OpenCode 实例的状态,通过 MQTT 或 BLE 蓝牙推送状态信息。
|
|
|
|
|
|
|
|
## 功能特性
|
|
## 功能特性
|
|
|
|
|
|
|
|
- 🔍 **自动发现** - 自动扫描并发现运行中的 OpenCode 实例
|
|
- 🔍 **自动发现** - 自动扫描并发现运行中的 OpenCode 实例
|
|
|
- 📊 **实时监控** - 通过 SSE 事件流实时获取状态变化
|
|
- 📊 **实时监控** - 通过 SSE 事件流实时获取状态变化
|
|
|
- 📡 **MQTT 推送** - 支持将状态信息推送到 MQTT Broker
|
|
- 📡 **MQTT 推送** - 支持将状态信息推送到 MQTT Broker
|
|
|
-- 💾 **配置管理** - 使用 SQLite 存储 MQTT 配置
|
|
|
|
|
|
|
+- 🟢 **BLE 蓝牙推送** - 通过蓝牙将状态推送到 AI-Light 等 BLE 设备
|
|
|
|
|
+- 💾 **配置管理** - 使用 SQLite 存储 MQTT 和 BLE 配置
|
|
|
- 🌐 **HTTP API** - 提供 RESTful API 接口管理配置(详见 [API 文档](docs/api.md))
|
|
- 🌐 **HTTP API** - 提供 RESTful API 接口管理配置(详见 [API 文档](docs/api.md))
|
|
|
- 🔌 **WebSocket** - 支持通过 WebSocket 实时推送状态到网页(详见 [API 文档](docs/api.md))
|
|
- 🔌 **WebSocket** - 支持通过 WebSocket 实时推送状态到网页(详见 [API 文档](docs/api.md))
|
|
|
- 🖥️ **跨平台** - 支持 Linux、macOS、Windows
|
|
- 🖥️ **跨平台** - 支持 Linux、macOS、Windows
|
|
@@ -32,9 +33,12 @@ OpenCode 状态监控工具,支持实时监控多个 OpenCode 实例的状态
|
|
|
git clone <repository-url>
|
|
git clone <repository-url>
|
|
|
cd AI-Status-Light
|
|
cd AI-Status-Light
|
|
|
|
|
|
|
|
-# 编译当前平台
|
|
|
|
|
|
|
+# 编译当前平台(不含 BLE)
|
|
|
go build -o bin/opencode-monitor ./cmd/monitor
|
|
go build -o bin/opencode-monitor ./cmd/monitor
|
|
|
|
|
|
|
|
|
|
+# 编译当前平台(含 BLE 嵌入)
|
|
|
|
|
+make build-with-ble
|
|
|
|
|
+
|
|
|
# 编译所有平台
|
|
# 编译所有平台
|
|
|
make build-all
|
|
make build-all
|
|
|
```
|
|
```
|
|
@@ -81,6 +85,31 @@ API 接口详情请参阅 [API 文档](docs/api.md)。
|
|
|
./opencode-monitor config delete 1
|
|
./opencode-monitor config delete 1
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
|
|
+### BLE 蓝牙配置
|
|
|
|
|
+
|
|
|
|
|
+BLE 中继已嵌入 Go 二进制(使用 `make build-with-ble` 构建时),无需额外文件或 Python 环境。
|
|
|
|
|
+
|
|
|
|
|
+```bash
|
|
|
|
|
+# 查看 BLE 配置
|
|
|
|
|
+./opencode-monitor config ble list
|
|
|
|
|
+
|
|
|
|
|
+# 设置 BLE 配置(使用默认设备 AI-Light)
|
|
|
|
|
+./opencode-monitor config ble set
|
|
|
|
|
+
|
|
|
|
|
+# 设置 BLE 配置(自定义设备)
|
|
|
|
|
+./opencode-monitor config ble set --device MyLight --service-uuid "xxx" --char-uuid "yyy"
|
|
|
|
|
+
|
|
|
|
|
+# 删除 BLE 配置
|
|
|
|
|
+./opencode-monitor config ble delete 1
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+启动监控时,如果存在启用的 BLE 配置,会自动启动蓝牙中继:
|
|
|
|
|
+
|
|
|
|
|
+```bash
|
|
|
|
|
+# 启动监控(自动根据配置启用 MQTT 和/或 BLE)
|
|
|
|
|
+./opencode-monitor monitor --api-addr :8080
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
## MQTT 消息格式
|
|
## MQTT 消息格式
|
|
|
|
|
|
|
|
消息格式为 JSON:
|
|
消息格式为 JSON:
|
|
@@ -152,11 +181,26 @@ API 接口详情请参阅 [API 文档](docs/api.md)。
|
|
|
--db 数据库路径 (默认 "./data/config.db")
|
|
--db 数据库路径 (默认 "./data/config.db")
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
|
|
+### config ble set 命令
|
|
|
|
|
+
|
|
|
|
|
+```bash
|
|
|
|
|
+./opencode-monitor config ble set [选项]
|
|
|
|
|
+
|
|
|
|
|
+选项:
|
|
|
|
|
+ --device 蓝牙设备名称 (默认 "AI-Light")
|
|
|
|
|
+ --service-uuid BLE 服务 UUID (默认 "b8b7e001-7a6b-4f4f-9a8b-11c0ffee0001")
|
|
|
|
|
+ --char-uuid BLE 特征 UUID (默认 "b8b7e002-7a6b-4f4f-9a8b-11c0ffee0001")
|
|
|
|
|
+ --enabled 是否启用 (true/false, 默认 true)
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
## 项目结构
|
|
## 项目结构
|
|
|
|
|
|
|
|
```
|
|
```
|
|
|
AI-Status-Light/
|
|
AI-Status-Light/
|
|
|
-├── cmd/monitor/ # 程序入口
|
|
|
|
|
|
|
+├── cmd/monitor/
|
|
|
|
|
+│ ├── main.go # 程序入口
|
|
|
|
|
+│ ├── ble_embed.go # BLE 嵌入声明 (go:build ble)
|
|
|
|
|
+│ └── ble_embed_none.go # BLE 空声明 (go:build !ble)
|
|
|
├── internal/
|
|
├── internal/
|
|
|
│ ├── api/ # HTTP API 模块
|
|
│ ├── api/ # HTTP API 模块
|
|
|
│ ├── database/ # SQLite 数据库模块
|
|
│ ├── database/ # SQLite 数据库模块
|
|
@@ -164,8 +208,12 @@ AI-Status-Light/
|
|
|
│ ├── event/ # 事件处理模块
|
|
│ ├── event/ # 事件处理模块
|
|
|
│ ├── monitor/ # 监控器核心模块
|
|
│ ├── monitor/ # 监控器核心模块
|
|
|
│ └── mqtt/ # MQTT 客户端模块
|
|
│ └── mqtt/ # MQTT 客户端模块
|
|
|
|
|
+├── scripts/
|
|
|
|
|
+│ ├── ble_relay.py # Python BLE 蓝牙中继脚本
|
|
|
|
|
+│ ├── build_ble_relay.bat # Windows 打包脚本
|
|
|
|
|
+│ ├── build_ble_relay.sh # Linux/macOS 打包脚本
|
|
|
|
|
+│ └── requirements.txt # Python 依赖
|
|
|
├── docs/ # 文档
|
|
├── docs/ # 文档
|
|
|
-├── scripts/ # 构建脚本
|
|
|
|
|
└── Makefile # 构建配置
|
|
└── Makefile # 构建配置
|
|
|
```
|
|
```
|
|
|
|
|
|