HaaS云服务提供系统升级与管理服务,使用该服务首先要确保设备端支持系统升级服务,然后在控制台上传新的升级包并指定需要升级的设备。控制台会将OTA升级消息推送给设备,设备即可下载OTA升级包,并进行OTA升级。本文主要介绍OTA升级的使用限制和操作流程。
1 前提条件
- 必须是正式用户,游客用户不支持,游客转正参看本文《第三章 权限限制》;
- 产品和设备必须在HaaS云服务上申请;
使用OTA升级功能前,请确保设备端已完成OTA升级服务开发。如果您使用设备端SDK,请参见
https://help.aliyun.com/document_detail/85700.htm?spm=a2c4g.11186623.2.5.57af710aMFUux5#concept-sgj-yts-zdb
2 升级限制升级包文件大小不能超过2,000 MB,且仅支持.bin、.zip格式的文件。
升级批次限制说明。
升级批次:物联网平台将已发起的各个升级任务展示为不同的升级批次。您可以在升级包详情页的批次管理页签下,查看该升级包的升级批次。
- 使用同一个升级包,对不同待升级版本,可分别发起多个批次升级,也可发起一个批次升级。
- 使用同一个升级包,对同一个待升级版本只能发起1个动态升级批次。
- 一个设备下模块升级,同一时间只能在一个正在进行的升级批次中(设备处于待推送、已推送或升级中状态)。
- 仅支持通过MQTT协议接入HaaS物联网平台的设备使用OTA升级功能。
- 设备在线时可以立即接收到升级通知;不在线的设备下次上线时,系统会再次推送升级通知。
3 操作步骤
大体步骤如下,详细操作见各章节说明。
- 添加升级包
- 验证升级包(可选)
- 发起升级批次任务
-
3.1 添加升级包 添加升级包:为产品添加OTA模块和升级包。
- 登录HaaS云服务控制台
- 在左侧选择升级服务-系统升级目录
- 在下来框中选择创建升级包所在产品名称;
- 点击添加升级包,如下图所示
- 在弹出的创建升级包界面,选择产品名称、版本号信息、升级包是否需要平台验证后,点击下一步,如下图所示。
- 点击上传文件,选择你要上传的升级包,仅支持.zip和.bin格式,点击创建升级。
- 创建成功后,返回升级包列表界面,如下图所示。请注意在下拉框里选择你需要的产品。
3.2 验证升级包
如果升级包中升级包是否需要平台验证选择了否,可跳过4.7.3.2章节。
- 在升级包列表中,单击升级包对应的验证,配置参数后,单击确认,如下图所示,在一个或多个设备上进行升级包验证。
- 测试设备全部升级成功后,升级包状态显示为已验证,才能进行下一步批量升级。
- 配置参数说明
- 待升级版本号:整包升级时,该参数为非必选配置。下拉列表中,展示当前产品下所有设备的除升级目标版本号外的其他版本号,您可以选择一个或者多个待升级的版本。选择后,相应的设备将作为待验证设备列表中的备选设备。
如不选择,表示对备选待验证设备的OTA模块当前版本不做限制。 - 待验证设备:选择用于此次测试的设备。
- 设备升级超时时间:设置单个设备的升级超时时间,即多长时间后,设备升级未完成则为超时。可选值范围:1分钟~1,440分钟。升级包第一次发起OTA升级时,建议将该参数设置为最大值,可提高设备升级成功率。推荐不填写直接使用平台默认值。
- 待升级版本号:整包升级时,该参数为非必选配置。下拉列表中,展示当前产品下所有设备的除升级目标版本号外的其他版本号,您可以选择一个或者多个待升级的版本。选择后,相应的设备将作为待验证设备列表中的备选设备。
3.3 发起批次升级任务
发起升级批次任务:物联网平台向设备批量下发升级相关信息(升级包URL、版本、大小等),设备端需使用升级包URL下载升级包,进行OTA升级。
在升级包列表页或升级包详情页点击批量升级,在弹出的页面上填写配置项,点击完成即可,如下图所示。
- 升级包URL有效期为24小时,请及时下载,并完成设备OTA升级。若未在24小时内完成升级包下载,设备端可主动获取升级信息重新下载,请参见下述“设备端不立即下载升级包”场景。
- 支持升级场景如下:
- 设备端OTA升级中数据格式说明详见
https://help.aliyun.com/document_detail/85700.htm?spm=a2c4g.11186623.2.14.57af710aWGYLmB#section-nm2-m4c-r2b - 设备端立即下载升级包,完成OTA升级。设备端下载升级的方法,请参见设备端OTA升级中数据格式说明的步骤5。
- 设备端不立即下载升级包,在设备业务空闲时,主动向物联网平台获取已发起的升级相关信息,进行OTA升级。设备端主动检测升级的方法,请参见下面链接中设备端OTA升级中数据格式说明的步骤4。
- 设备端OTA升级中数据格式说明详见
3.3.1 批量升级配置项说明
1、升级范围
- 全部设备:升级该产品下满足升级条件的全部设备。
- 定向升级:仅升级被选中的设备。选择为定向升级后,提供两种设备选择方式:
- 手动勾选:从设备范围下拉列表选择要升级的设备。
- 文件上传:下载模板,填写、上传CSV格式的设备列表文件。单次最多包含10,000条记录。
若设备列表文件中有不合法的设备名称,将出现错误提示。
- 灰度升级:即局部升级。升级方式为静态升级时出现的可选项。灰度升级的设备至少为1个。选择为灰度升级后,下方出现灰度范围输入框,需针对已选择的设备,设置灰度百分比。物联网平台根据设置的灰度百分进行计算,计算结果向下取整。
2、待升级版本号
- 当包含符合条件的新激活设备关闭时,该参数为非必选配置;开启时为必选配置。
- 当升级范围为定向升级时,不配置该参数。下拉列表中,展示当前产品下所有设备的版本号(除升级目标版本号之外),选择一个或者多个待升级的版本。
- 如不选择,表示对待升级设备OTA模块的当前版本不做限制。
3、包含符合条件的新激活设备
- 关闭:仅升级当前满足升级条件的设备
- 开启:升级当前和持续检查中,满足升级条件的设备。持续检查中包括但不限于以下情况的设备,可进行OTA升级:
- 推送速率,设置每分钟向多少个设备推送升级包下载URL。取值范围:10~1,000。
- 超时时间,设置单个设备的升级超时时间,即多长时间之后,升级未完成则为超时。可选值范围:1分钟~1,440分钟,始终以设备最开始的第一次上报升级进度时间作为开始时间
当目标设备已有其他升级任务
a) 忽略本任务,若设备已有升级任务,则只执行已有任务
b) 覆盖其他任务,则设备只执行新的升级任务,之前的升级任务会被取消
3.3.3 升级时间配置
指定设备OTA升级的时间立即升级, 立即进行OTA升级。
定时升级, 设置升级开始时间、升级结束时间。升级开始时间距当前时间最少5分钟,最多7天。升级结束时间距开始时间最少1小时,最多为30天,可不设置,不设置表示不会强制结束。
3.3.4 失败处理配置不重试,升级失败后不重试。
- 自动重试,升级失败后,自动重试
- 重试间隔,如果升级失败,选择重试升级的时间。可选:
- 不重试
- 立即重试
- 10分钟后重试
- 30分钟后重试
- 1小时后重试
- 24小时后重试
- 注意:升级失败重试间隔需要小于设备升级超时时间。例如:
- 设备升级超时时间为60分钟,升级失败重试间隔最大可设置为30分钟后重试。
- 设备升级超时时间为1440分钟,升级失败重试间隔最大可设置为1小时后重试。
- 若升级失败重试间隔需设置为24小时后重试,则建议不设置设备升级超时时间。因升级超时后,不会再触发升级重试。
重试次数,失败后,可选择重试的次数如下
a) 1次
b) 2次
c) 5次
3.4 查看升级情况
查看升级情况:可查看目标设备升级状态、升级包信息等。点击批次信息可查看本升级批次的详细信息,如下图所示。
- 在升级包列表中,单击目标升级包对应的查看,在设备列表中的下拉框中选择对应状态,即可查看到该状态下的全部设备信息,可针对单个设备进行取消升级和重升级操作,如下图所示。
升级状态说明如下
- 待推送
- 还未向设备推送OTA升级通知。
- 待推送状态原因有三种:设备离线、定时推送或速率限制,状态分别显示为:
- 待推送(设备离线)
- 待推送(定时:2020/XX/XX XX:XX:XX)
- 待推送
- 已推送
- 已向设备推送OTA升级通知,设备尚未上报进度。
- 升级中
- 设备已收到升级通知,并已上传升级进度。
- 已取消
- 已取消该设备的升级。
- 升级成功
- 设备上报升级成功后的正确版本号。
- 说明,设备升级成功后,建议第一时间上报升级成功后的正确版本号,否则,可能会因为超时,导致升级失败。
升级失败。
以下原因可能造成设备升级失败。
- 设备未结束上一次升级任务,又发起新的批量升级,且选择不覆盖之前的升级任务,则后发起的升级任务会升级失败。您可以:
- 等设备完成上一次升级后,再对设备发起新的升级。
- 在发起升级时,选择覆盖设备之前的升级任务。
备注:设备处于升级中状态的升级任务不会被覆盖。
- 设备通过升级进度的Topic,向物联网平台上报数值-1、-2、-3或-4,则认为升级失败。数值含义如下:
- -1:升级失败。
- -2:下载失败。
- -3:校验失败。
- -4:烧写失败。
- 设备升级时,从设备第一次上报升级进度开始计算升级时间,在设置的超时时间截止前,设备没有上报升级后的目标版本来完成升级,则认为升级失败。
- 设备在升级中状态下,上报了源版本和目标版本以外的版本信息,则认为升级失败。
- 如果发起批量升级时,指定了待升级版本号,且选择了升级失败后重试,在以下情况下会进行自动重试升级。
- 设备在升级中状态下,上报了源版本和目标版本以外的版本信息导致的升级失败。
- 设备通过上报升级进度的Topic,主动上报-1、-2、-3或-4导致的升级失败。
- 自动重试时,设备在物联网平台的升级状态显示不变,即在已推送状态下重试时,状态仍然显示为已推送;在升级中状态下重试时,状态仍然显示为升级中。物联网平台不会触发自动重试逻辑的情况:
- 因升级超时(失败原因:timeout)而导致的升级失败。
- 您主动取消的升级。
- 待推送