186 lines
6.5 KiB
Markdown
Raw Permalink Normal View History

2025-07-18 13:14:28 +08:00
# 配置说明
## 项目基础配置
### 配置文件说明
项目使用两种配置方式:初始配置模板和运行时配置文件。
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服务器