前言

在我们的家中,除了小米、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的强大和它活跃的社区?

最后修改:2024 年 08 月 12 日
如果觉得我的文章对你有用,就给个赏~~写文章,费烟~