本帖最后由 sdfd 于 2021-2-4 20:25 编辑
接入环境说明
1.HA 安装环境为 hassio
2.窗帘电机为小米有品智能窗帘电机 Wifi 版本,型号为lumi.curtain.hagl05
3.已通过 Supervisor 安装 Node-RED
4.窗帘电机已经接入 HA 且 HA 能正常控制。接入方式我使用的是 @anlong 大佬的插件,详细见 小米MIoT设备自动识别接入HA插件
5.接入天猫精灵方案参考 @hunterfox 介绍的方案 https://bbs.hassbian.com/thread-11927-1-1.html
6.在满足以上条件情况下请继续往下看正文
阿里云生活物联网平台产品创建
1.注册并登录阿里云生活物联网平台 https://living.aliyun.com,建议使用天猫精灵绑定的支付宝或者淘宝账号注册登录。
2.点击创建项目,选择自有品牌项目
3.创建完成后前往项目,点击创建新产品,按下图所示进行填写和选择
4.创建完成后前往产品页面,在功能定义页面去掉无关功能,只保留窗帘控制,然后再添加窗帘打开位置功能,最终功能列表如下:
5.点下一步进入人机交互页面,打开使用公版 APP 开关
6.在产品展示也补充名称后保存,然后选择设备面板,在设备面板页面点击未设置,选择或编辑面板,默认面板因有电源开关键,与我们的功能不符,保存时会提示功能不一致,可以忽略。强迫症患者可点击编辑去掉电源按钮或者自己全新设计页面。
7.点击下一步进入设备调试页面,拉到最后选择未认证模块,同意声明后进入模组信息页面
点击新增测试设备,设置DeviceName
生成设备如下,新增的设备状态是未激活,图中是我已经连接的设备:
8.点击查看,就能看到设备的相关信息,以下图中的3项是后面需要用到的信息
到这里,阿里平台的工作基本完成,后面的操作需要在 Node-RED 中进行配置
Node-RED 中创建流实现天猫精灵控制
1.打开 Node-RED 页面,点击节点管理,切换到安装 Tap 页,分别输入node-red-contrib-image-output 和node-red-contrib-aliyun-livinglink 进行搜索并安装。这里有个坑,安装node-red-contrib-aliyun-livinglink 的时候装了很长时间都装不上,怀疑是源的问题,就进入 Node-RED 的 Docker 通过指定阿里源的方式进行安装,但是安装后重启就没了,不知道为什么,懂的大佬可以帮忙解释下。没办法,最终通过在页面上传 tar 包,再进入 Docker 通过指定源的命令进行安装才成功安装(直接安装也是失败,上传 tar 包安装也需要连接 NPM 源。。。)。有此问题的可以这么尝试下,具体操作方式我就不写了,有问题回帖问吧。
2.节点安装完成后就可以进行流配置了,先拖一个 aliyun 节点到流程中,双击打开配置,将上个章节得到的测试设备信息对应填入即可
3.再拖一个 image 节点到页面,并将 aliyun 节点与 image 节点进行连接,连好后如图:
4.然后拖一个 function 节点,双击进行配置,输出设置成2,函数中填入如下函数:
var new_msg = {payload:""}
switch(msg.payload.curtainConrtol){
case 0:
new_msg.payload = "close";
break;
case 1:
new_msg.payload = "open";
break;
case 2:
new_msg.payload = "pause";
break;
default:
new_msg.payload = "";
}
if (new_msg.payload == "" && msg.payload.curtainPosition >= 0){
if (msg.payload.curtainPosition > 100)
new_msg.payload = 100;
else
new_msg.payload = msg.payload.curtainPosition;
return [null,new_msg];
}
else
return [new_msg,null];
5.将 aliyun 节点连接到 function 节点,再拖 1 个 switch 节点,添加 3 个输出,如图进行配置:
6.将 function 节点输出连接 switch 输入,再拖 4 个 home assistant 下的 call service 节点,前 3 个节点的 Service 依次配置成open_cover ,close_cover ,stop_cover 。Server 默认是 Home Assistant ,正常情况下不需要修改。Domain 选择 cover,Entity ID 填写你需要控制的窗帘电机的 Entity ID,可从 HA 集成中的实体注册表中查询。第 4 个节点 Service 配置成 set_cover_position ,同时在 Data 项中使用表达式模式,填入{"position":payload}
- Switch 节点的 3 个输出依次与前 3 个 call service 节点连接,function 节点的第 2 个输出与第 4 个 call service 连接,连接好后如图所示:
图中 aliyun 节点后还增加了 debug 节点,用来获取 aliyun 节点的信息,确认是否有命令发出,非必须。
8.按以上步骤配置好后即可点击部署对流进行部署了,部署后可看到 aliyun 节点的状态变成已连接,image 节点显示出二维码
9.在应用商店搜索云智能或者在上一章第 6 步中设备面板页点击右侧"立即安装"按钮获取云智能 APP 下载二维码进行下载安装,安装后进行注册登录,在我的中选择的更多服务选择天猫精灵,与天猫精灵进行绑定。绑定后在我的家页面点"+"号扫描二维码添加设备,添加后即可看到窗帘设备,点开后显示你配置的公版 APP 页面。
10.使用上面的页面进行控制,查看设备是否能够正常控制,如有异常可根据前面步骤进行确认是哪里的问题,并查看相关log。
11.如果能正常控制,打开天猫精灵 APP 应该能够看到此窗帘设备,设置房间和名称后即可通过天猫精灵对窗帘进行控制。比如说"天猫精灵,打开客厅窗帘",客厅窗帘就会自动打开。
教程到此基本可以结束了,有问题可以在帖子下回复。最后附上我的设备流,只需按需修改 aliyun 节点的三元组数据和需要控制的窗帘 Entity ID 即可。
flows1.zip
(1.69 KB, 下载次数: 8)
|