核心用法
Homeassistant-n8n-agent 是一款连接 OpenClaw 与 n8n 自动化平台的桥接技能。用户可通过自然语言与智能家居系统交互,系统自动将请求分类并通过 curl POST 发送至本地 n8n Webhook。
请求分类机制:
| 类型 | 用途 | 示例 |
|------|------|------|
| `action` | 执行设备控制指令 | "关闭办公室灯"、"空调设为 72°F" |
| `state` | 查询当前设备状态 | "空调在运行吗"、"前门是否锁上" |
| `historical` | 检索历史 IoT 数据 | "前门上次何时开启" |
| `calendar` | 获取日程信息 | "下个会议是什么时候" |
所有请求携带统一 JSON 载荷:chatInput(用户原始提问)、requestType(自动判定类型)、sessionId(固定为 openclaw)。
显著优点
1. 零代码自然语言交互 — 无需记忆设备实体 ID 或复杂 API,口语化指令即可触发复杂自动化流程
2. n8n 生态扩展性 — 背靠 400+ 集成节点的可视化工作流引擎,可自由对接 Home Assistant、Google Calendar、数据库等
3. 私有化部署 — Webhook 指向 localhost,数据不出本地,契合智能家居隐私诉求
4. 多模态意图识别 — 四类请求覆盖日常 90% 以上智能家居交互场景
潜在局限与风险
| 局限 | 说明 |
|------|------|
| 硬编码端点 | Webhook URL 固定为 `localhost:5678`,无法动态配置多实例或远程 n8n |
| 无认证机制 | 请求未携带 API Key 或 Token,若端口暴露存在未授权调用风险 |
| 依赖外部 n8n | 需用户自行搭建并维护 n8n 服务及下游 Home Assistant 集成 |
| 无响应处理 | 技能仅负责触发,不解析 n8n 返回数据,无法向用户反馈执行结果 |
| JSON 语法瑕疵 | 示例代码中 `"state,` 与 `"calendar,` 存在引号闭合错误 |
适合人群
- 已自建 Home Assistant + n8n 技术栈的进阶用户
- 希望通过自然语言简化家庭自动化脚本调用的智能家居爱好者
- 对数据本地化有要求、不愿接入云端语音助手(Alexa/Google Home)的隐私敏感用户
常规风险
- 网络暴露风险:若 n8n 监听
0.0.0.0且未配置防火墙,Webhook 可能被外部扫描利用 - 指令注入:
chatInput直接拼接进 curl 参数,虽经 JSON 转义仍需警惕特殊字符构造 - 服务可用性:n8n 或 Home Assistant 离线时无降级机制,用户得不到反馈
> ⚠️ 建议:为 n8n Webhook 启用 Basic Auth 或自定义 Header 鉴权,并将监听限制为 127.0.0.1 配合反向代理。