欢迎光临散文网 会员登陆 & 注册

Home Assistant 使用Nodered利用阿里云让天猫精灵控制设备

2023-03-07 12:13 作者:phonigh  | 我要投稿


  这是一篇目前为止对于小白网上说得最清楚的流程,本人深深踩坑其中,特记录下来和你一起分享。

一、安装Node-RED

1、在HomeAssistant中配置->加载项->加载项商店搜索安装Node-RED,安装完成点击配置选项卡,密码随便填,

关闭ssl选项后面的开关,

记得最下面保存,重启HA,并启动Node-RED,打开WEDeb UI。

二、Node-RED 添加 HomeAssistant-websocket 节点,获取和控制HomeAssitant

(参考帖:https://bbs.hassbian.com/thread-16266-1-1.html)

1、打开Node-red,点右上角,找到节点管理,点开后点安装,搜索 node-red-contrib-home-assistant-websocket,点击安装。
2、下载附件 :

链接: https://pan.baidu.com/s/1bHGlyJrUlDNlP9z9PwujHQ?pwd=m4xw 提取码: m4xw 

解压到homeassistant的custom_components目录下。这个目录下放置所有自定义的集成的插件文件。

3、重启Node-red。这一步不要忘了,忘了的话,node-red一刷新,刚才的安装的节点就找不到了。
4、开启homeassistant的api接口:在configuration.yaml中添加下面一条文字

api:
5、添加nodered集成:登陆homeassistant,添加集成,找到nodered,添加,不用任何配置,重启homeassistant
6、创建长期访问令牌:在HA的左侧滑到最下面,点击你的用户名,在右边窗口滑到最下面,找到长期访问令牌,点击创建令牌,复制保存下来。
7、打开node-red,将homeassistant节点中的第一个API图标拖拽到流程窗口,双击流程中的API图标,在Server->Homeassistant一栏后面点击铅笔图标创建server,在Access Token中填入刚才保存下来的令牌。Base URL填入你的homeassistant的访问地址。

三、在阿里云平台创建你的设备

1、用淘宝账号登陆阿里云生活物联网平台 https://living.aliyun.com/ 点击创建新项目,名称自定,我这里命名为NODE-RED,项目选 自有品牌项目

图片取自:https://bbs.iobroker.cn/t/topic/6337

创建产品,连网类型一定选蜂窝(此处有坑,如果你创建时忘了点选蜂窝,后面修改成蜂窝是无效的,必须重新创建)

图片取自:https://bbs.iobroker.cn/t/topic/6337

创建成功后会自动生常规属性,也可以自定义增加功能,点下一步,必填项按需填写,记得将“使用公版APP”开关打开

图片取自:https://bbs.iobroker.cn/t/topic/6337

设备调试随便选个模组,因为是虚拟设备,点新增调试设备,一个产品可建50个测试设备,自用足够了,不够再建一个产品,又可生成50个测试设备。

图片取自:https://bbs.iobroker.cn/t/topic/6337

2、新增的测试设备会显示未激活,

需要前往阿里云物联网平台激活 https://iot.console.aliyun.com/product 点击新增的jingdeng设备后面蓝色“查看”

出现如下图片,点击MQTT连接参数后面的蓝色“查看”

在Node-RED中搜索mqtt in,拖拽到新建的流程中,双击“mqtt in”图标,在服务端选项卡,选择添加新的mqtt-broker节点,再点后面铅笔图标,服务端填写上图中的mqttHostUrl,客户端ID填写上图中的clientld,随后点击“安全”选项卡,将上图中的username和passwd分别填入,点击添加

在主题一栏会要求输入主题,别慌!在物联网的产品选项卡点操作中的“查看”->Topic类列表->物模型通信Topic,复制属性设置框内文字到主题,一定记得将${deviceName}改成你的DeviceName,比如我的“jingdeng”,如下图


在上图的最下面名称栏给设备取个名字,点击完成,这是你会发现设备下面多了个小绿点,显示已连接。同时刷新生活物联网平台中刚新增设备的页面会发现已经显示在线了。

现在点击jingdeng的调试,选择如下图

在Node-RED的搜索框中输入debug,拖拽到流程中连接刚创建好的镜灯,记得点击部署。在上图中点击调试真实设备下面的发送指令,你会发现Node-RED右侧的调试窗口已经收到指令了,成功在望。

在阿里云的生活物联网平台的人机交互选项卡中点击又侧的“配网+app下载二维码”,点国内版,输入你之前创建的产品名称,如我的“jingdeng”,点生成二维码

3、用手机下载云智能app,并注册好账号,在个人页面点击更多服务,绑定天猫精灵。回到app主页点右上角加号,扫上面生成的二维码,你会发现,云智能app和天猫精灵app中都出现了刚添加的设备。在两个app中修改好设备中文名称,回到Node-RED窗口,来一句“天猫精灵打开XX灯”,你会发现Debug调试窗口有了反馈。

4、在节点->功能中拖拽switch按钮至流程图,双击switch图标,按下图填写(我在这里被坑了很久,网上教程中msg.payload 都是 string,而我的是Object,按网上教程总是没有办法通过debug调试,最后自己才摸索出来的)

在Node-RED的HomeAssistant节点中拖拽call service至流程,并复制粘贴,双击该流程,按下图填写内容(Entity实体换成你自己的),另一个call service的Sercive改成turn_on。

连接流程图,测试一下,现在总算大功告成了。

码字不易,希望点赞,收藏并分享。

Home Assistant 使用Nodered利用阿里云让天猫精灵控制设备的评论 (共 条)

分享到微博请遵守国家法律