玩转智能家居 篇九:Home Assistant接入海尔设备
前言
在我们的家中,除了小米、aqara等专注于智能家居领域的设备之外,也肯定存在一些传统厂家生产的电器,比如洗衣机、冰箱、热水器等等,今天就来介绍下如何把海尔的设备接入Home Assistant,让家里的传统电器智能化
安装
有两种方法可以接入海尔的设备,先来说第一种方法,首先需要安装NodeRed,如果没有安装过NodeRed可以参考我前面写的文章,下面演示让小爱同学说出当前的海尔设备的状态
打开NodeRed主界面,点击右上角的三条横线,点击节点管理
在安装界面搜索haier,选择node-red-contrib-haier节点进行安装
安装完毕后,在左侧模块列表的最底部可以看到安装好的海尔机器人
把节点拖入编辑面板中,双击节点进行编辑,进入编辑界面后,点击配置最右侧的小笔按钮
在属性中,设置海尔智家APP中的账户和密码(如果没有海尔智家,可以下载APP后注册一个账户)
设置完毕后后,拖入inject节点和debug节点,如下图连接起来
双击时间戳节点(inject节点)进行设置,把msg.payload改为文本类型,并输入冰箱冷藏室几度?的文本,最后点击保存(当触发该节点时,会把文本设置到msg的payload变量中(msg里装着payload)发送给海尔机器人进行处理)
debug节点保持默认,最后记得点击右上角的部署按钮,才能使更改生效。现在可以点击inject节点的小方框,触发节点
在NodeRed右侧,打开调试窗口,能看到节点返回的信息
接下来对刚刚的节点流程进行改造,删掉debug节点,把功能下的function节点和home assistant下的call service节点拖入编辑面板中,按照下图方式进行连接
双击function节点进行编辑,名称可以填入处理返回信息,便于维护,运行函数填入以下代码(这段代码代码的意思是拿到海尔机器人返回的response中的信息,去掉“/ù”和“好的,”,再设置到msg.payload中)
let text = msg.payload.response
text = text.replace(//ù/g, '')
text = text.replace('好的,', '')
msg.payload = {"value":text}
return msg;
双击call service节点进行编辑,调用HomeAssistant中的set_value服务,并且要把实体设置为小爱音箱的Play Text实体(注意不是Execute Text Directive实体,Execute Text是让小爱执行文字内容),数据填入msg.payload,也就是把上面的{"value":text}发送给HomeAssistant,最后记得保存
最后点击右上角的部署按钮,触发inject节点,就可以听到小爱同学说出冰箱的冷藏室温度了
只要是接入海尔智家APP的设备,按理来说都是可以通过这种方式获取或设置状态的,如果想要自定义一些自动化流程,可以按自己的想法编辑NodeRed节点,再把他们接入到HomeAssistant中
接下来讲讲第二种方法,使用https://github.com/banto6/haier社区插件。打开网页地址,点击OPEN HACS REPOSITORY ON 按钮,进行安装
跳转到HomeAssistant后,进行下载(如果下载太慢,可以手动安装)
安装完毕后重启HomeAssistant,在配置>设备与服务>集成>添加集成下搜索haier,选择并进行配置
同样输入海尔的账户和密码进行登录
就可以获取到当前海尔设备的状态
第二种方法比第一种简单很多,可以根据需要选择不同的方法。最后就是结合自己的使用场景编写自动化了,除了在NodeRed中编写自动化流程外,也可以在HomeAssistant中编写自动化流程,比如快到家了打开热水器烧水?衣服洗好了,让小爱同学提醒,同时放下晾衣架?
后记
卡萨帝作为海尔的高端品牌,也是可以通过上面的方法接入HomeAssistant中,当然也要看设备的型号,不过大部分海尔电器接入都是没有任何问题的。现在是不是感觉到了HomeAssistant的强大和它活跃的社区?
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
Ronanluo
校验提示文案
许小明
校验提示文案
weicj
校验提示文案
Ronanluo
校验提示文案
weicj
校验提示文案
许小明
校验提示文案