开发者学堂课程【阿里云 AIoT 物联网开发实战:AloT 企业物联网业务平台实战03】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/328/detail/3696
AloT 企业物联网业务平台实战03(三)
三、广播消息和设备影子
1、PubBroadcast 广播消息
比如很多智能门锁接入到物联网平台,需要周期性的来更新门锁上的配置,或者是批量的修改初始密码。提供叫 pubbroadcast 的广播 API,通过广播 API 可以通过一个 API 调用来触达几十万的设备。
2、广播 API 的通讯
使用限制
广播海息仅推送到产品下当前在线的设备。
广播接口最大调用频次:1次/分。
广播消息体报文最大64KB。
通讯最大是 64K,频次一分钟才能推一次的广播,不能推送的太频繁,面向的是全量的当前在线的全量设备。
调用方式也很简单,把参数设置好之后,只需要调用一下 API,调用广播的 API 会直接把消息发送到全套设备上,广播 API 也很简单,只需要消息内容和 PK 就可以。
比如是一个充电宝的所有机柜或者是全量的洗衣机,或者是全量的门锁,是一个产品分类就是报文的内容,
要广播的消息把密码更新一下,当推送之后会看到不同的 DEVICE1、DEVICE2、DEVICE3 都会收到同样的一条广播信息,而且是在瞬间可以触达几十万的在线设备的,里面也会有一个完整的 demo。
广播会注意到它有限制,给当前在线的设备比如全部在线的门锁,或者是全部在线的充电宝机柜,但是很多时候有一些配置目的是送达到全量设备,并不太关心设备当前是在线还是离线,只需要平台能把这个信息触达到就可以,如果是在线就及时收到,如果不在线下次上线的时候把这个信息给到,这种场景更多的是配置全量配置参数的更新。
3、Device Shadow 设备影子通信
针对全量的一些配置更新,提供设备影子功能,通过设备影子服务端可以调用上面影子的 API,把这些配置信息直接写入到设备在云端的影子上,不需要知道设备是在线还是离线的不需要关心,只要数据成功地写到影子上,设备影子会和设备做实时的通讯,或者是离线设备上线之后及时的同步信息,把云端的一些配置,比如灯的颜色,灯的亮度,值会实时的同步给刚开启的电灯,设备开启之后会把信息同步下来,然后直接把颜色调整成红色或者是亮度调80%的亮度。同样设备影子还有一个特点是只缓存最后一条指令,比如当前的灯不在线,云端给灯推送了一条信息调整成红色,亮度50%,过了一秒钟云端又改变了想法调整成绿色,亮度80%,过了一段时间又调整了一下规则改成紫色,亮度20%。灯在上线的时候,灯收到的是紫色20%的配置参数儿,前面的配置过程被影子给抹掉了,看到的灯就直接是紫色,20%,红色50%然后又变成绿色80%,然后又变成紫色20%所以看到的结果是最终影子的结果,前面的信息会磨掉。
在控制台上,每一个设备上面也会有一个设备影子,就是它当前在云端的设备影子的状态。
整个设备影子的 json 分几部分,一个是状态,状态包含两种一种是云端的期望值,一个是设备真实情况的上报以及整个里边的 metdata 原数据,期望只是在什么时间设置的以及整个影子的版本,每次更新版本都需要增加。
影子做数据交互的数据流,影子的 topic 主要是更新影子和获得影子。
同时 SDK 已经把影子做了完整的封装,只需要调用更新影子或者是获取影子的 API。
update a shadow 更新影子的操作,更新的内容,给哪个设备更新影子。
获取影子数据,获取哪一个影子数据只需要填进来会返回调用影子数据。
4、企业 loT 业务架构大图
整个物联网平台开发涉及到的主链路,数据的上报、采集以及控制指令的下行完整的演示了一遍,后续也可以通过 API 做设备的开发,或者是通过设备模拟器在 API 控制台上来体验整个的操作过程。