如何在Dify中结合Home Assistant实现基于自然语言的智能家居场景控制

P粉328763957

P粉328763957

2026-07-31

587人浏览

原创

在dify中结合home assistant实现本地化自然语言智能家居控制,需配置ha rest api、创建长期令牌、在dify中定义http工具插件并构建含rag实体映射与条件分支调用的工作流,全程离线运行且不泄露数据。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如何在dify中结合home assistant实现基于自然语言的智能家居场景控制

在Dify中结合Home Assistant实现基于自然语言的智能家居场景控制,需打通AI Agent与家庭自动化平台的数据通路,让用户一句“把客厅空调调到26度并打开落地灯”即可触发真实设备动作,全程不依赖云端语音服务、不泄露设备状态到第三方。

准备Home Assistant基础环境

确保Home Assistant已部署完成且可稳定访问Web界面,推荐使用Home Assistant OS或Docker方式安装,避免使用Supervised模式(因其对自定义集成支持受限)。

进入配置 → 系统 → 高级模式开启,然后前往配置 → 网络确认HTTP端口为8123且勾选“允许来自本地网络的连接”。

配置 → 系统 → 令牌中创建一个长期访问令牌(Long-Lived Access Token),复制保存——【该令牌等同于你的HA账号密码,请勿截图、勿存明文文件、勿提交至Git】

启用Home Assistant REST API并验证连通性

Home Assistant默认启用REST API,但需确认其响应正常。在浏览器中访问:http://[你的HA地址]:8123/api/,返回{"message": "API running."}即为就绪。

用curl测试实体查询(替换为你实际的IP和令牌):

curl -X GET "http://192.168.3.10:8123/api/states/light.living_room" \
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." \
-H "Content-Type: application/json"

若返回light实体当前状态(如on/off、brightness等),说明API通道已通;若返回401错误,请检查令牌是否过期或复制遗漏。

在Dify中配置Home Assistant工具插件

登录Dify控制台,进入应用 → 工具 → 创建工具,选择“HTTP请求”类型工具。

填写以下字段:

php获得文件的mime type类
php获得文件的mime type类

php获得文件的mime type类

下载

名称:HA_Control_Light
描述:控制任意灯光开关与亮度
URL:http://192.168.3.10:8123/api/services/light/turn_on
请求方法:POST
Headers:{ "Authorization": "Bearer {token}", "Content-Type": "application/json" }
Body模板:
{ "entity_id": "{entity_id}", "brightness_pct": "{brightness_pct}" }

参数配置三项:token(字符串,必填)、entity_id(字符串,必填)、brightness_pct(数字,可选,默认100)。

重复上述流程,再添加两个工具:
• HA_Control_Climate:调用/api/services/climate/set_temperature,参数含entity_id与temperature;
• HA_Get_State:调用/api/states/{entity_id},仅需token与entity_id参数,用于状态感知。

构建自然语言解析与设备映射逻辑

在Dify工作流中新建一个LLM节点,输入系统提示词:

“你是一个Home Assistant智能管家。用户会用日常语言提出设备控制请求。请严格按以下规则响应:①只输出JSON,无任何额外文字;②键名固定为action、target、value;③action只能是turn_on、turn_off、set_temperature、get_state之一;④target必须是HA中真实存在的实体ID(如light.living_room、climate.bedroom);⑤value为数字或字符串,依action而定。例如用户说‘关掉卧室灯’→{“action”:“turn_off”,“target”:“light.bedroom”,“value”:null}。”

注意:实体ID不能靠猜测,必须提前在Dify知识库中上传一份home-assistant-entities.csv,含三列:中文名(如“客厅主灯”)、实体ID(light.living_room)、类型(light/climate/switch)。Dify将自动启用RAG检索,当用户说“打开大灯”,模型能匹配到“客厅主灯”并提取对应ID。

串联工具调用与错误兜底机制

将LLM节点输出接入“条件分支”节点,判断action字段值:

• 若为turn_on或turn_off → 调用HA_Control_Light工具,传入target作为entity_id,value为空时设brightness_pct=100;
• 若为set_temperature → 调用HA_Control_Climate,传入target与value;
• 若为get_state → 调用HA_Get_State,仅传target。

每个工具节点后接一个“JSON解析”节点,提取响应中的status或error字段;若捕获到HTTP 404或“Entity not found”,则触发备用回复:“未找到设备【{target}】,请确认名称是否正确或设备是否在线”。

最后将所有路径汇总至终态节点,输出纯文本响应,例如:“已将客厅空调设为26℃,落地灯已开启”。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

rest api dify

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Dify 本地部署与企业配置
Dify 本地部署与企业配置

本专题系统讲解 Dify 从零开始的本地部署方法与企业环境配置实践,涵盖 Docker 安装、依赖准备、数据库初始化、反向代理、参数调优、安全加固与多用户开通,帮助开发者与企业团队快速搭建稳定可用的 Dify 平台。

2026.06.05

72

15

Dify Agent智能体开发实战教程
Dify Agent智能体开发实战教程

本专题聚焦 Dify Agent 智能体的设计与开发,涵盖 Agent 模式选择、工具集成、提示词设计、多步推理、上下文记忆与多 Agent 协作,帮助开发者构建可执行复杂业务任务的智能体应用。

2026.06.05

97

15

Dify RAG知识库构建实战教程
Dify RAG知识库构建实战教程

本专题围绕 Dify RAG 知识库的全流程实践展开,从文档导入、分段切片、向量化到混合检索、重排优化与召回评估,帮助你打造高准确率、低幻觉的企业知识问答应用。

2026.06.05

110

15

Selenium Grid分布式测试与并行执行教程
Selenium Grid分布式测试与并行执行教程

本专题整理Selenium Grid架构、远程WebDriver、并行测试、Docker部署、Kubernetes动态Grid、浏览器矩阵和测试环境扩展方法,适合进阶自动化测试团队使用。

2026.08.05

0

18

Selenium常见报错排查与自动化测试稳定性
Selenium常见报错排查与自动化测试稳定性

本专题整理Selenium常见报错、驱动版本问题、元素找不到、点击失败、等待超时、浏览器闪退、脚本不稳定和测试用例维护方法。

2026.08.05

0

17

墨刀AI提示词教学
墨刀AI提示词教学

本合集由PHP中文网精心整理,为您提供全面的墨刀AI提示词教学。内容涵盖高质量原型撰写公式与实操窍门,助您轻松掌握AI设计工具。无论是零基础入门还是进阶技巧,都能让您快速上手,大幅提升产品设计与协作效率。

2026.08.04

11

21

墨刀AI完整入门
墨刀AI完整入门

PHP中文网为您倾力打造墨刀AI保姆级入门指南完整版!本合集从零基础讲起,涵盖AI生成原型、提示词优化、图片转原型及多轮对话等核心功能。无论您是新手还是进阶用户,都能轻松掌握产品设计全流程。快来PHP中文网,一键解锁高效设计技巧,让想法即刻成型!

2026.08.04

8

20

墨刀AI进阶技巧
墨刀AI进阶技巧

本合集由PHP中文网精心整理,为您提供墨刀AI核心进阶策略指南。内容涵盖高效提示词写作、原型智能生成与微调、结构化导图制作及行业分析报告输出等实战技巧。助您轻松掌握AI设计工具,大幅提升产品设计与团队协作效率。

2026.08.04

10

14

火山引擎实名认证失败怎么办
火山引擎实名认证失败怎么办

火山引擎实名认证失败可能与证件信息填写错误、姓名或企业信息不一致、证件照片不清晰、营业执照状态异常、手机号验证失败或审核资料不完整有关。本专题整理个人认证、企业认证、资料上传、审核退回、重新提交和认证不通过的常见处理方法。

2026.08.04

5

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Dify零基础教程
Dify零基础教程

共0课时 | 104人学习

学习Agent,从Dify开始
学习Agent,从Dify开始

共0课时 | 97人学习

Dify 部署与运维指南
Dify 部署与运维指南

共0课时 | 0人学习