详细介绍
Homeassistant MCP 是一个基于 MCP(Model Context Protocol)协议的服务器工具,旨在连接 Home Assistant 与语言模型(LLM),实现通过自然语言控制和监控智能家居设备。该工具支持多种设备类型,提供实时状态更新、自动化管理、安全验证等功能,适用于希望通过语音或文本指令管理智能家居的用户。
核心功能
MCP 服务器的核心功能包括:
- 设备控制:支持控制灯光、恒温器、窗帘、开关等多种设备。
- 实时更新:通过 Server-Sent Events (SSE) 实现实时状态同步。
- 自动化管理:支持创建、修改和管理 Home Assistant 的自动化规则。
- 状态监控:可实时查询和跟踪设备状态。
- 安全保护:采用基于令牌的身份验证和速率限制机制,保障系统安全。
安装方法
安装 MCP 服务器需要以下步骤:
- 克隆项目代码:
git clone https://github.com/jango-blockchained/homeassistant-mcp.git- 进入项目目录并安装依赖:
npm install- 构建项目:
npm run build- 复制并编辑环境变量配置文件:
cp .env.example .env
nano .env- 使用 Docker Compose 启动服务器:
docker compose up -d使用方法
使用 MCP 服务器可以通过 JavaScript 脚本进行初始化和控制。以下是一个基础使用示例:
const { ModelContext } = require('home-assistant-model-context');
async function initializeModel() {
const model = new ModelContext({
host: 'localhost',
port: 8123,
tokenPath: '/config/secrets.yaml'
});
await model.initialize();
const state = await model.getState('light.living_room');
console.log('灯的状态:', state.state);
}
initializeModel().catch(console.error);此外,MCP 服务器还支持通过自然语言指令控制设备,例如:
打开客厅灯光调整卧室温度至22度
使用场景
MCP 服务器适用于以下场景:
- 通过语音助手或聊天机器人控制智能家居设备。
- 实现自然语言与 Home Assistant 的无缝交互。
- 为开发者提供一个集成 LLM 与 Home Assistant 的桥梁。
配置说明
配置文件通常为 config.json,内容如下:
{
"host": "localhost",
"port": 8123,
"token": "your_api_key_here"
}确保 host 和 port 与 Home Assistant 实例一致,并正确设置访问令牌。
注意事项
在使用过程中,需要注意以下事项:
- 确保 Home Assistant 正常运行并可访问。
- 网络连接必须稳定。
- 高级功能可能需要一定的技术背景。
- 如果遇到
toSorted is not a function错误,请升级 Node.js 至 20.10.0 或以上版本。
通过以上步骤和配置,用户可以快速搭建并使用 MCP 服务器,实现智能家居的自然语言控制。