使用说明
Woow HA MCP Chatbot
AI-Powered Smart Home Chat Panel for Home Assistant
Natural language control of 800+ entities via n8n + MiniMax M3 AI Agent
Features • Architecture • Screenshots • Installation • Configuration • API Reference • Testing • Changelog • 中文文件
概述
Woow HA MCP聊天机器人增加了一个专用 AI聊天面板 转到您的家庭助理侧栏。它连接到一个 n8n工作流程 运行一个 MiniMax M3人工智能代理 与 15个家庭助理工具节点,实现对整个智能家居的自然语言控制——灯光、气候、覆盖物、场景、自动化、媒体播放器等。
与内置语音助手不同,这种集成提供了完整的 聊天界面 有对话历史、多回合背景和对所采取的每一个行动的详细反馈。
特性
AI聊天面板
- 专用侧边栏面板(“AI聊天“)集成到家庭助理中
- 具有搜索和自动标题功能的多对话管理
- 存储在HA记录器数据库中的持久对话历史记录
- 响应式设计——适用于台式机、平板电脑和移动设备
- 从家庭助理父帧同步暗/亮主题
通过自然语言实现智能家居控制
- 15个HA工具节点 n8n覆盖所有主要域
- 查询实体状态、控制灯光/气候/盖子、触发场景和自动化
- 用于高级查询(计数、过滤器、聚合)的Jinja2模板渲染
- 带有参数(亮度、颜色、温度、位置)的服务电话
- 日志、事件历史、错误日志和摄像头截图访问
企业级可靠性
- 消息持久性优先 --调用AI前将用户消息保存到数据库
- Cloudflare超时弹性 —
asyncio.shield()保护长时间运行的操作 - n8n webhook重新连接 --吊舱重启后自动重新激活
- UTC时间戳标准化,以便跨时区正确显示
建筑学
系统流程
┌─────────────────────────────────────────────────────────────┐
│ Home Assistant │
│ │
│ ┌──────────┐ ┌──────────┐ ┌───────────────────┐ │
│ │ Chat │───▶│ views.py │───▶│ n8n_proxy.py │ │
│ │ Panel │ │ REST API │ │ (HTTP + BasicAuth)│ │
│ │ (iframe) │◀───│ │◀───│ │ │
│ └──────────┘ └──────────┘ └─────────┬─────────┘ │
│ │ │ │ │
│ │ ┌──────────┐ │ │
│ │ │ recorder │ │ │
│ │ │ (SQLite) │ │ │
│ │ └──────────┘ │ │
└───────│─────────────────────────────────────│───────────────┘
│ │
│ ▼
│ ┌────────────────────┐
│ │ n8n Workflow │
│ │ │
│ │ Webhook (POST) │
│ │ │ │
│ │ ▼ │
│ │ AI Agent │
│ │ (MiniMax M3) │
│ │ │ │
│ │ ▼ │
│ │ 15 HA Tool Nodes │
│ │ + Simple Memory │
│ └────────────────────┘
│
▼
┌──────────┐
│ Browser │ (Desktop / Mobile / Tablet)
└──────────┘
美人鱼图
sequenceDiagram
participant User as User (Browser)
participant HA as Home Assistant
participant DB as SQLite (Recorder)
participant n8n as n8n Webhook
participant AI as MiniMax M3
participant Tools as HA Tools (15)
User->>HA: POST /api/ha_mcp_client/.../messages
HA->>DB: Save user message (immediate)
HA->>n8n: POST /webhook/ha-chat (Basic Auth)
n8n->>AI: Process with system prompt
AI->>Tools: Call HA tools (state, service, template...)
Tools-->>AI: Tool results
AI-->>n8n: AI response JSON
n8n-->>HA: {"output": "response text"}
HA->>DB: Save AI response (shielded)
HA-->>User: {"ai_response": "...", "user_message": "..."}
数据流图
graph TB
subgraph "Frontend (app.js)"
A[Chat Panel iframe] -->|fetch POST| B[HA REST API]
end
subgraph "Backend (Python)"
B -->|Step 1| C[record_single: save user msg]
C -->|Step 2| D[asyncio.shield]
D -->|send_chat| E[n8n_proxy.py]
D -->|record_single| F[save AI response]
end
subgraph "n8n Workflow"
E -->|HTTP POST| G[Webhook Node]
G --> H[AI Agent - MiniMax M3]
H --> I[15 HA Tool Nodes]
I -->|HA REST API| J[Home Assistant API]
end
subgraph "Storage"
C --> K[(SQLite via Recorder)]
F --> K
end
n8n工作流——15个HA工具节点
n8n工作流程 [HA Chat] AI 管家 v2 包含以下工具节点:
| # | 工具节点 | 资源 | 操作 | 说明 |
|---|---|---|---|---|
| 1 | HA_State_Get | State | Get | 查询单个实体状态 |
| 2 | HA_State_GetMany | State | getAll | 列出多个实体状态(最多100个) |
| 3 | HA_State_Upsert | State | upstart | 覆盖实体状态值(谨慎使用) |
| 4 | HA_Service_Call | Service | Call | 简单服务调用(打开、关闭、切换) |
| 5 | HA_Service_Call_Ex | Service | Call | 带有额外参数(亮度、颜色、温度)的服务调用 |
| 6 | HA_Service_GetMany | Service | getAll | 列出域的可用服务 |
| 7 | HA_Template_Render | 模板 | Render | 渲染Jinja2模板(最强大的查询工具) |
| 8 | HA_Logbook_GetMany | log | getLogbookEntries | 查询事件记录 |
| 9 | HA_ErrorLog_GetMany | log | getErrorLogs | 查询系统错误日志 |
| 10 | HA_Event_Create | 事件 | 创建 | 火灾自定义事件 |
| 11 | HA_Event_GetMany | Event | getAll | 列出可用的事件类型 |
| 12 | HA_Config_Get | Config | Get | 获取系统配置 |
| 13 | HA_Config_Check | Config | Check | 验证配置文件 |
| 14 | HA_CameraProxy_Screenshot | CameraProxy | getScreenshot | 捕获相机截图 |
| 15 | HA_History_GetMany | History | getAll | 查询历史状态变化 |
AI系统提示
AI代理以“E&L”的身份运行智慧宅 AI 管家“(智能家居AI管家)有以下行为规则:
- 先询问,后行动 --在执行命令之前,始终验证实体ID
- 行动后验证 --在服务调用后检查状态,报告特定值
- 直接执行 --未经确认执行的可逆操作(灯光、场景)
- 安全防护装置 —
HA_State_Upsert始终需要用户确认 - 保持在范围内 --仅处理家庭助理操作
截图
桌面--欢迎屏幕
桌面——AI对话
移动端--聊天视图
移动设备——侧边栏导航
安装
HACS(推荐)
- 在HACS中,请访问 集成 → ⋮ (溢出菜单)→ 自定义仓库
- 加
WOOWTECH/Woow_ha_mcp_chatbot作为类型 集成 - 搜索 “HA MCP客户端” 然后单击 下载
- 重新启动家庭助理
- 首选 设置→ 设备和服务→ 添加集成→ HA MCP客户端
手册
- 复制
custom_components/ha_mcp_client/致您的HAconfig/custom_components/目录 - 重新启动家庭助理
- 首选 设置→ 设备和服务→ 添加集成→ HA MCP客户端
配置
先决条件
在配置HA集成之前,您需要:
- n8n实例 随着
[HA Chat] AI 管家 v2工作流已部署并处于活动状态 - MiniMax API密钥 (适用于AI Agent节点)
- HA长期访问令牌 (适用于15个HA工具节点)
- 基本身份验证凭据 在n8n Webhook节点上配置
安装向导(3个步骤)
| 步骤 | 字段 | 描述 |
|---|---|---|
| 1.n8n连接 | 基本URL,API密钥(可选) | n8n实例URL。API密钥可自动查找聊天工作流 |
| 2.Webhook Path | Webhook Path | 生产Webhook Path(例如。, webhook/ha-chat) |
| 3.身份验证 | 用户名、密码 | 与n8n Webhook节点匹配的基本身份验证凭据 |
n8n连接注释
| 场景 | 要使用的n8n URL |
|---|---|
| n8n位于同一K8s集群中 | http://n8n.<namespace>.svc.cluster.local:5678 |
| n8n在同一局域网上 | http://<node-ip>:<nodeport> (例如。, http://192.168.2.191:30678) |
| n8n通过Cloudflare | https://n8n.yourdomain.com (⚠️ 100秒超时限制) |
API 参考
对话
| 方法 | 端点 | 描述 |
|---|---|---|
GET |
/api/ha_mcp_client/conversations |
列出所有对话(按updated_at desc排序) |
POST |
/api/ha_mcp_client/conversations |
创建新对话 |
PATCH |
/api/ha_mcp_client/conversations/{id} |
重命名或存档对话 |
DELETE |
/api/ha_mcp_client/conversations/{id} |
软删除对话 |
消息
| 方法 | 端点 | 描述 |
|---|---|---|
GET |
/api/ha_mcp_client/conversations/{id}/messages |
获取消息(支持 ?limit=50&offset=0) |
POST |
/api/ha_mcp_client/conversations/{id}/messages |
发送消息并获得AI响应 |
发送消息--请求和响应
// POST /api/ha_mcp_client/conversations/{id}/messages
// Request:
{"message": "把客廳的燈打開亮度50%"}
// Response:
{
"user_message": "把客廳的燈打開亮度50%",
"ai_response": "已完成 ✅ 客廳燈已打開,亮度設定為 50%。",
"conversation_id": "uuid-..."
}
服务
| 服务 | 描述 |
|---|---|
ha_mcp_client.clear_conversation_history |
清除用户的所有对话历史记录 |
ha_mcp_client.export_conversation_history |
将历史记录导出为JSON或Markdown |
项目结构
Woow_ha_mcp_chatbot/
├── README.md # English documentation
├── README_zh-TW.md # 繁體中文文件
├── LICENSE # MIT License
├── hacs.json # HACS integration metadata
├── .gitignore # Git ignore rules
│
├── custom_components/ha_mcp_client/
│ ├── __init__.py # Integration setup, panel registration, services
│ ├── config_flow.py # 3-step configuration wizard
│ ├── const.py # Constants and configuration keys
│ ├── n8n_proxy.py # n8n webhook HTTP client (Basic Auth)
│ ├── views.py # REST API endpoints (6 routes)
│ ├── conversation_recorder.py # SQLite-based conversation history
│ ├── manifest.json # Integration metadata (v1.0.0)
│ ├── services.yaml # Service definitions
│ ├── strings.json # Default UI strings
│ │
│ ├── brand/ # Brand assets
│ │ ├── icon.png / icon@2x.png
│ │ └── logo.png / logo@2x.png
│ │
│ ├── frontend/ # Chat panel UI
│ │ ├── index.html # Panel HTML template
│ │ ├── app.js # Frontend logic (vanilla JS)
│ │ └── styles.css # CSS with HA theme sync
│ │
│ └── translations/ # Localization
│ ├── en.json # English
│ └── zh-Hant.json # Traditional Chinese
│
└── docs/
├── screenshots/ # README images
└── plans/ # Design & planning documents
测试
测试结果(50对话AI代理测试)
| 类别 | 测试 | 通过 | 比率 |
|---|---|---|---|
| 基本查询(实体、配置、区域) | 5 | 5 | 100% |
| 灯光控制(开/关/亮度/颜色) | 5 | 5 | 100% |
| 气候/覆盖率 | 5 | 4 | 80% |
| 场景/自动化 | 5 | 4 | 80% |
| 模板查询(Jinja2) | 5 | 5 | 100% |
| 多参数服务调用 | 5 | 4 | 80% |
| 错误处理(无效实体) | 5 | 5 | 100% |
| 多回合上下文 | 5 | 5 | 100% |
| 日志/事件 | 5 | 4 | 80% |
| 边缘案例(表情符号,长文本) | 5 | 3 | 60% |
| 总计 | 50 | 44 | 88% |
API等级测试(24项测试)
| 小组 | 测试 | 通过 |
|---|---|---|
| 身份验证(401/403) | 3 | 3 |
| 对话CRUD | 8 | 8 |
| 消息API | 8 | 8 |
| 边缘案例 | 5 | 5 |
| 总计 | 24 | 24 (100%) |
更新日志
v1.0.0(2026-07)
主要重构:n8n webhook集成
- 用n8n Webhook+MiniMax M3替换内置AI服务(OpenAI、Anthropic、Ollama)
- 删除了MCP服务器、nanobot/cron模块、62个工具注册表
- 添加
n8n_proxy.py对于单个JSON请求/响应 - 三步配置流程:n8n URL→ webhook路径→ 基本认证
- 消息持久性:n8n调用前保存的用户消息
- Cloudflare 524具有超时弹性
asyncio.shield() - UTC时间戳规范化(Z后缀)
- 服务呼叫拆分:
HA_Service_Call(简单)+HA_Service_Call_Ex(带参数) - 50会话企业测试套件
v0.1.0(2026-03)
- 首次发布,内置AI提供商
- 62智能家居工具
- MCP SSE服务器
- 带有对话历史记录的聊天面板
支持
- 问题: GitHub问题
- 文档: GitHub存储库
- 作者: WOOWTECH 公司
许可证
MIT 许可证 --有关详细信息,请参阅LICENSE文件。
Built with ❤️ by WOOWTECH · Powered by Home Assistant + n8n + MiniMax M3