本帖最后由 swpu_cxm 于 2020-2-21 23:05 编辑
第一次发帖,教程写得不清楚的地方请见谅!!!
前提条件,和小度接入HASS一样,你的node-red能通过https外网访问 如果不满足这一步,后面也就没戏了
整个流的预览图:
截图连线外的节点是我的设备信息存储在数据库中的,方便其他地方复用,忽略即可,只需将设备列表写在“小度控制的设备列表”节点中即可
正式开始啦:
1. 先导入流,附件:xiaodu.zip,解压然后导入流,然后部署
3. 配置技能,如图:配置的域名改成你的node-red的https访问的域名,后面的URL路径不变 授权地址:https://你的域名/oauth token地址:https://你的域名/token 设备云信息地址:https://你的域名/xiaodu 其余任意 此授权只是为了让小度开放平台觉得是通过oauth2认证的,实际并没有,只是模拟了一遍授权,我也不清楚存在什么风险,概不负责哟~
4 .点击授权,不出意外应该能直接授权成功,成功后关闭页面即可,如有问题请注意看NR的调试信息
5.修改node-red中的“小度控制的设备列表”节点中的设备列表,改成你自己的,topic代表MQTT的主题,friendly_name代表小度自定义的设备名,此节点很重要!!!,请测试该主题能正确控制后再执行发现设备命令
为什么呢?小度存在bug,每个设备有一个唯一的ID作为标识,而此流程是将MQTT的控制主题topic作为唯一标识发送给小度记录的,而小度又允许不同的标识使用相同的friendly_name来进行自定义命名,就会导致到时候会出现小度提示一个设备控制成功一个设备控制失败的情况。 第二个坑:请不要轻易的删除技能然后重建技能,不然也会出现上一个相同的问题,如果出现了,目前唯一的解决办法就是小度恢复出厂设置然后更换绑定手机号进行绑定小度,就会清除之前所有的智能家居。
6. 执行命令,发现设备,不出意外应该就成功了,如有问题请注意看调试信息
|