概述
之所以写这篇博文,实在是因为阿里云的帮助文档写得让人难以理解,一如既往地正确而无用,对需要帮助的人帮助甚少。基本上就是懂的人不用看,不懂的人看不懂。
先给出官方文档的链接:
- 最新版
本地倒计时功能开发实践_最佳实践_生活物联网平台-阿里云 - 旧版(旧版信息多一些,但是举的例子信息还是很模糊)
本地倒计时功能开发实践 · 开发指南
官方文档举例:
CountDownList: {
Target: "PowerSwitch"(string,当次设置操作指定的布尔值的identifier),
Contents: "PowerSwitch-1-1-123-1535644800000,LightSwitch-0-1-456-1535644800000"(string, 该设备的所有倒计时任务字符串,具体格式说明见下方)
XXX1:0(bool,该产品已有的布尔类型标准属性),
XXX2:0(bool,该产品已有的布尔类型标准属性)
}
然后是说明:
CountDownList是可选的标准属性,其中Target和Contents为CountDownList的必选属性二者都是string类型(最大长度为2048字节)。
XXX1和XXX2为当前产品已有的标准布尔属性,可以由开发者随意增删,默认值为0。
说明 功能定义里如果含有CountDownList,则CountDownList里除了Target和Contents外,还需要含有其他的布尔属性,否则运行会报错。
场景举例说明
1.点击倒计时按钮
2.检查tsl,发现CountDownList里还有额外的XXX1,XXX2属性
3.倒计时列表弹层展示XXX1、XXX2的中文名称列表
4.选择其中一个属性,例如PowerSwitch,展示设置时间和动作界面,设定好时间(1000s)和动作(打开)
5.设置Target: “PowerSwitch”, 设置Contents: “PowerSwitch-1-1-1000-1535644800000”,下发给云端
6.设备端收到CountDown后,解析Contents和Target内容,设置实际的定时任务
7.此时又设置了第二个属性XXX2,Contents为:“PowerSwitch-1-1-1000-1535644800000,XXX2-0-1-2000-1535644800000”,Target:“XXX2”
8.1000s到了之后,第一个PowerSwitch倒计时任务结束,设备端删除Contents里PowerSwitch这一条任务,同时设置Target为PowerSwitch,将整个CountDownList属性上报到云端,插件侧查询CountDown属性,发现Contents里没有Target指定的布尔属性,代表PowerSwitch倒计时任务已执行,进而提示PowerSwitch倒计时任务执行完毕
注意:整个插件和设备端上报云端的过程中,CountDownList里的XXX1和XXX2等布尔属性可以设置为任意符合布尔属性的值
你看懂了吗?我反正没看懂。XXX1
和XXX2
是什么鬼?
群里朋友给了旧文档链接我才看懂了一些,然后尝试了半天,终于搞明白了。
首先,我启用了产品PowerSwitch
和 OscillatingSwitch
这两个属性的本地倒计时功能。
- 首先设置PowerSwitch定时器,收到信息如下:
{"CountDownList":
{
"Target":"PowerSwitch",
"Contents":"PowerSwitch-0-1-300-1582091699849",
"PowerSwitch":0,
"OscillatingSwitch":0
}
}
- 然后我再设置OscillatingSwitch定时器,收到信息如下:
{"CountDownList":
{
"Target":"OscillatingSwitch",
"Contents":"PowerSwitch-0-1-300-1582091699849,
OscillatingSwitch-1-1-300-1582091711139",
"PowerSwitch":0,
"OscillatingSwitch":0
}
}
可以看到第二次的Contents多了一段内容用逗号隔开的OscillatingSwitch-1-1-300-1582091711139
。
所以索性贴个图,大家就清楚了。
最后
以上就是无心高跟鞋为你收集整理的对阿里云生活物联网平台"本地倒计时功能开发实践"的补充的全部内容,希望文章能够帮你解决对阿里云生活物联网平台"本地倒计时功能开发实践"的补充所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复