2025-07-18 13:14:28 +08:00

186 lines
6.5 KiB
Markdown
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 配置说明
## 项目基础配置
### 配置文件说明
项目使用两种配置方式:初始配置模板和运行时配置文件。
1. **初始配置模板**
- 位置:`/src/utils/config_manager.py`
- 作用:提供默认配置模板,首次运行时会自动生成配置文件
- 使用场景:首次运行或需要重置配置时修改此文件
2. **运行时配置文件**
- 位置:`/config/config.json`
- 作用:存储实际运行时的配置信息
- 使用场景:日常使用时修改此文件
3. **设备身份文件**
- 位置:`/config/efuse.json`
- 作用:存储设备唯一标识信息,包括序列号和激活状态
- 使用场景:设备激活流程中自动生成和更新
### 配置项访问方式
配置系统设计为层级结构,使用点分隔的路径访问特定配置项:
```python
# 示例:获取配置值
from src.utils.config_manager import ConfigManager
config = ConfigManager.get_instance()
mqtt_endpoint = config.get_config("SYSTEM_OPTIONS.NETWORK.MQTT_INFO.endpoint")
# 示例:更新配置值
config.update_config("WAKE_WORD_OPTIONS.USE_WAKE_WORD", True)
```
## 网络配置
网络配置位于`SYSTEM_OPTIONS.NETWORK`下,主要包含以下内容:
```json
"NETWORK": {
"OTA_VERSION_URL": "https://api.tenclass.net/xiaozhi/ota/", // OTA更新地址
"WEBSOCKET_URL": "ws://192.168.31.232:8000/xiaozhi/v1/", // WebSocket服务器地址
"WEBSOCKET_ACCESS_TOKEN": "test-token", // 访问令牌
"MQTT_INFO": {
"endpoint": "", // MQTT服务器地址
"client_id": "", // MQTT客户端ID
"username": "", // MQTT用户名
"password": "", // MQTT密码
"publish_topic": "", // 发布主题
"subscribe_topic": "" // 订阅主题
},
"ACTIVATION_VERSION": "v2", // 激活版本,可选值: v1, v2
"AUTHORIZATION_URL": "https://xiaozhi.me/" // 授权URL地址
}
```
## 设备激活
设备首次使用时需要进行激活,激活信息存储在`config/efuse.json`文件中:
```json
{
"serial_number": "SN-E3E1F618-902e16dbe116", // 设备序列号
"hmac_key": "b5bf012dd518080532f928b70ed958799f34f9224e80dd4128795a70a5baca24", // 密钥
"activation_status": false // 激活状态激活成功后变为true
}
```
激活流程由`ACTIVATION_VERSION`配置项控制:
- `v1`:简化激活模式
- `v2`:完整激活流程,包括验证码确认
## 唤醒词配置
语音唤醒相关配置位于`WAKE_WORD_OPTIONS`下:
```json
"WAKE_WORD_OPTIONS": {
"USE_WAKE_WORD": false, // 是否启用语音唤醒
"MODEL_PATH": "models/vosk-model-small-cn-0.22", // 唤醒模型路径
"WAKE_WORDS": [ // 唤醒词列表
"小智",
"小美"
]
}
```
## 摄像头与视觉识别
摄像头和视觉识别相关配置位于`CAMERA`下:
```json
"CAMERA": {
"camera_index": 0, // 摄像头索引
"frame_width": 640, // 画面宽度
"frame_height": 480, // 画面高度
"fps": 30, // 帧率
"Loacl_VL_url": "https://open.bigmodel.cn/api/paas/v4/", // 智普API地址
"VLapi_key": "你自己的key", // 智普视觉大模型API密钥
"models": "glm-4v-plus" // 使用的视觉模型
}
```
## IoT设备配置
### 温度传感器
温度传感器通过MQTT协议连接配置位于`TEMPERATURE_SENSOR_MQTT_INFO`下:
```json
"TEMPERATURE_SENSOR_MQTT_INFO": {
"endpoint": "你的Mqtt连接地址", // MQTT服务器地址
"port": 1883, // MQTT服务器端口
"username": "admin", // MQTT用户名
"password": "123456", // MQTT密码
"publish_topic": "sensors/temperature/command", // 发布主题
"subscribe_topic": "sensors/temperature/device_001/state" // 订阅主题
}
```
需要注意:
- `endpoint`必须是有效的MQTT服务器地址
- `port`默认为1883如使用TLS加密则通常为8883
- `publish_topic`用于发送命令到设备
- `subscribe_topic`用于接收设备状态
### Home Assistant集成
Home Assistant智能家居平台集成配置位于`HOME_ASSISTANT`下:
```json
"HOME_ASSISTANT": {
"URL": "http://你的Home Assistant地址:8123", // Home Assistant服务器地址
"TOKEN": "长期访问令牌", // 访问令牌
"DEVICES": [] // 要集成的设备列表
}
```
通过此配置可以控制添加到Home Assistant中的各类设备包括
- 灯光设备HomeAssistantLight
- 开关设备HomeAssistantSwitch
- 数值设备HomeAssistantNumber
- 按钮设备HomeAssistantButton
## 配置修改指南
1. **首次使用配置**
- 直接运行程序,系统会自动生成默认配置文件
- 如需修改默认值,可编辑 `config_manager.py` 中的 `DEFAULT_CONFIG`
2. **更换服务器配置**
- 打开 `/config/config.json`
- 修改 `SYSTEM_OPTIONS.NETWORK.WEBSOCKET_URL` 为新的服务器地址
- 示例:
```json
"SYSTEM_OPTIONS": {
"NETWORK": {
"WEBSOCKET_URL": "ws://你的服务器地址:端口号/"
}
}
```
3. **启用语音唤醒**
- 修改 `WAKE_WORD_OPTIONS.USE_WAKE_WORD` 为 `true`
- 可在 `WAKE_WORD_OPTIONS.WAKE_WORDS` 数组中添加或修改唤醒词
4. **配置摄像头与视觉识别**
- 修改 `CAMERA` 部分的相关配置
- 将 `VLapi_key` 设置为你从智普AI平台获取的API密钥
- 可以根据需要调整分辨率和帧率
5. **配置Home Assistant集成**
- 在Home Assistant中创建长期访问令牌
- 填写 `HOME_ASSISTANT.URL` 和 `HOME_ASSISTANT.TOKEN`
- 设备会自动发现并集成
## 注意事项
- 修改配置文件后需要重启程序才能生效
- WebSocket URL 必须以 `ws://` 或 `wss://` 开头
- 首次运行时会自动生成 CLIENT_ID建议不要手动修改
- DEVICE_ID 默认使用设备MAC地址可按需修改
- 配置文件使用 UTF-8 编码,请使用支持 UTF-8 的编辑器修改
- 请妥善保管API密钥和访问令牌等敏感信息
- Home Assistant集成需要保证网络可以正常访问到Home Assistant服务器