6.5 KiB
Executable File
6.5 KiB
Executable File
配置说明
项目基础配置
配置文件说明
项目使用两种配置方式:初始配置模板和运行时配置文件。
-
初始配置模板
- 位置:
/src/utils/config_manager.py
- 作用:提供默认配置模板,首次运行时会自动生成配置文件
- 使用场景:首次运行或需要重置配置时修改此文件
- 位置:
-
运行时配置文件
- 位置:
/config/config.json
- 作用:存储实际运行时的配置信息
- 使用场景:日常使用时修改此文件
- 位置:
-
设备身份文件
- 位置:
/config/efuse.json
- 作用:存储设备唯一标识信息,包括序列号和激活状态
- 使用场景:设备激活流程中自动生成和更新
- 位置:
配置项访问方式
配置系统设计为层级结构,使用点分隔的路径访问特定配置项:
# 示例:获取配置值
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
下,主要包含以下内容:
"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
文件中:
{
"serial_number": "SN-E3E1F618-902e16dbe116", // 设备序列号
"hmac_key": "b5bf012dd518080532f928b70ed958799f34f9224e80dd4128795a70a5baca24", // 密钥
"activation_status": false // 激活状态,激活成功后变为true
}
激活流程由ACTIVATION_VERSION
配置项控制:
v1
:简化激活模式v2
:完整激活流程,包括验证码确认
唤醒词配置
语音唤醒相关配置位于WAKE_WORD_OPTIONS
下:
"WAKE_WORD_OPTIONS": {
"USE_WAKE_WORD": false, // 是否启用语音唤醒
"MODEL_PATH": "models/vosk-model-small-cn-0.22", // 唤醒模型路径
"WAKE_WORDS": [ // 唤醒词列表
"小智",
"小美"
]
}
摄像头与视觉识别
摄像头和视觉识别相关配置位于CAMERA
下:
"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
下:
"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加密则通常为8883publish_topic
用于发送命令到设备subscribe_topic
用于接收设备状态
Home Assistant集成
Home Assistant智能家居平台集成配置位于HOME_ASSISTANT
下:
"HOME_ASSISTANT": {
"URL": "http://你的Home Assistant地址:8123", // Home Assistant服务器地址
"TOKEN": "长期访问令牌", // 访问令牌
"DEVICES": [] // 要集成的设备列表
}
通过此配置,可以控制添加到Home Assistant中的各类设备,包括:
- 灯光设备(HomeAssistantLight)
- 开关设备(HomeAssistantSwitch)
- 数值设备(HomeAssistantNumber)
- 按钮设备(HomeAssistantButton)
配置修改指南
-
首次使用配置
- 直接运行程序,系统会自动生成默认配置文件
- 如需修改默认值,可编辑
config_manager.py
中的DEFAULT_CONFIG
-
更换服务器配置
- 打开
/config/config.json
- 修改
SYSTEM_OPTIONS.NETWORK.WEBSOCKET_URL
为新的服务器地址 - 示例:
"SYSTEM_OPTIONS": { "NETWORK": { "WEBSOCKET_URL": "ws://你的服务器地址:端口号/" } }
- 打开
-
启用语音唤醒
- 修改
WAKE_WORD_OPTIONS.USE_WAKE_WORD
为true
- 可在
WAKE_WORD_OPTIONS.WAKE_WORDS
数组中添加或修改唤醒词
- 修改
-
配置摄像头与视觉识别
- 修改
CAMERA
部分的相关配置 - 将
VLapi_key
设置为你从智普AI平台获取的API密钥 - 可以根据需要调整分辨率和帧率
- 修改
-
配置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服务器