OTA升级概述
OTA(Over-the-Air Technology)即空中下载技术,基于无线网络对设备固件、软件或驱动进行更新。通过OTA升级,可以对物联网设备更新功能、修复漏洞、优化性能。
使用限制
使用OTA功能的设备必须使用MQTT协议接入物联网平台,设备可以选择MQTT协议或HTTPS协议下载升级包。
工作原理
- 设备端:OTA功能初始化,上报当前版本号
- 控制台:可选购买OTA升级次数,添加升级包,可选:验证升级包,发起升级任务
- 设备端:获取升级相关信息,下载升级包,上报升级进度,上报最新版本号
- 控制台:查看设备升级情况,可选查看升级成功率
OTA升级步骤
- 设备上报当前版本(MQTT协议)
- 在控制台添加升级包,对设备发起OTA升级批次
- 下发升级包信息给设备
- 设备下载升级包
- 设备上报升级进度
- 控制台显示OTA升级进度
- 设备端升级完成后,上报最新版本
- 控制台显示升级成功
设备接入物联网平台,登录物联网平台控制台,单击对应实例,在左侧导航栏选择设备管理>设备,找到目标设备,查看设备状态。设备状态显示为在线,则表示设备与物联网平台成功连接。
设备需要在首次升级前上报版本号,建议在系统启动过程中上报一次,不需要周期循环上报。仅支持每次上报一个模块及对应的模板版本,如果需要上报多个模块的版本,请分次上报。上报的Topic和消息格式参见文末的消息格式。
差分:仅包含新版本升级包与之前版本的差异部分,设备需要本地进行差分还原,并还原为完整升级包进行升级,差分升级可有效降低OTA升级次数消耗和设备下载差分包的流量消耗。差分升级前,设备必须上报OTA模块版本。
(可选)验证升级包
添加升级包时选择升级包是否需要平台验证,为是,则在批量升级前,需选择部分设备用于测试。
测试设备升级成功后,才能使用升级包。
物联网平台推送升级包信息。设备订阅Topic:/ota/device/upgrade/ Y o u r P r o d u c t K e y / {YourProductKey}/ YourProductKey/{YourDeviceName},物联网平台对设备发起OTA升级请求后,设备通过该Topic收到升级信息。具体有以下两种情况:
发起升级任务时设备在线,物联网平台会直接推送升级相关信息。
发起升级任务时设备离线,之后设备上线,物联网平台会推送一次升级相关信息。
如果设备上报的版本与OTA服务要求的版本一致就认为升级成功,反之认为失败。即使升级进度上报为100%,如果不上报新的版本号,可能因为超过设备升级超时时间导致升级失败。
上报版本号
获取升级包信息后,设备通过Topic分片下载OTA升级文件。
子设备OTA升级
子设备不直接连接物联网平台,而是通过网关与物联网平台建立连接,复用网关与物联网平台的通信通道。
网关设备连接成功后,可使用通道复用能力代理子设备OTA升级,使用的Topic必须是子设备Topic,包含子设备productKey和deviceName的信息。
创建网关设备和子设备,获取设备证书信息(ProductKey、DeviceName和DeviceSecret)。
创建产品时,节点类型需选择为网关设备,然后创建设备。
创建产品时,节点类型需选择为网关子设备,并配置接入网关协议,然后创建子设备。
使用网关设备证书信息(ProductKey、DeviceName和DeviceSecret),将网关设备连接到物联网平台。
具体操作,请参见Link SDK文档。
为网关添加与子设备的拓扑关系。
具体步骤,请参见添加拓扑关系。
网关代理子设备上线。
子设备接入物联网平台有两种方式:
- 子设备一机一密认证:网关获取子设备的设备证书,由网关向物联网平台上报子设备证书信息。
- 子设备动态注册认证:需要物联网平台控制台,打开子设备的动态注册开关。网关获取子设备的ProductKey和DeviceName后,由网关代理子设备进行动态注册,物联网平台校验子设备身份。校验通过后,动态下发子设备的DeviceSecret,子设备通过设备证书(ProductKey、DeviceName和DeviceSecret)接入物联网平台。
添加消息批量下发任务
如果需要同时向多个设备发送自定义Topic消息,可使用物联网平台的消息批量下发任务。
前提条件
已在物联网平台为设备添加具有订阅或订阅和发布权限的自定义Topic。具体操作,请参见自定义Topic。
已在设备端完成自定义Topic订阅,且未取消订阅。具体操作,请参见Link SDK的订阅Topic。
使用自定义Topic通信
如果物模型不能满足业务需求,可以使用自定义Topic实现设备上下行通信。
产品的自定义Topic类会自动映射为该产品下所有设备的自定义Topic。物联网平台对自定义Topic通信的数据格式没有要求,需您自定义。本文介绍如何为产品自定义Topic类及自定义Topic的使用和通信说明。
静态升级:对于选定的升级范围,仅升级当前满足升级条件的设备。
动态升级:对于选定的升级范围,升级当前满足升级条件的设备,并且持续监测该范围内的设备。只要符合升级条件,物联网平台就会自动推送升级信息。包括但不限于以下设备:
满足升级条件的后续新激活设备。
当前上报的OTA模块版本号不满足升级条件,后续满足升级条件的设备。