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. 升级批次:物联网平台将已发起的各个升级任务展示为不同的升级批次。您可以在升级包详情页的批次管理页签下,查看该升级包的升级批次。
    • 使用同一个升级包,对不同待升级版本,可分别发起多个批次升级,也可发起一个批次升级。
    • 使用同一个升级包,对同一个待升级版本只能发起1个动态升级批次。
    • 一个设备下模块升级,同一时间只能在一个正在进行的升级批次中(设备处于待推送、已推送或升级中状态)。
  • 仅支持通过MQTT协议接入HaaS物联网平台的设备使用OTA升级功能。
  • 设备在线时可以立即接收到升级通知;不在线的设备下次上线时,系统会再次推送升级通知。

3 操作步骤


大体步骤如下,详细操作见各章节说明。

  1. 添加升级包
  2. 验证升级包(可选)
  3. 发起升级批次任务
  4. 查看升级情况


    3.1 添加升级包

  5. 添加升级包:为产品添加OTA模块和升级包。

  6. 登录HaaS云服务控制台
  7. 在左侧选择升级服务-系统升级目录
  8. 在下来框中选择创建升级包所在产品名称;
  9. 点击添加升级包,如下图所示

image.png

  1. 在弹出的创建升级包界面,选择产品名称、版本号信息、升级包是否需要平台验证后,点击下一步,如下图所示。

image.png

  1. 点击上传文件,选择你要上传的升级包,仅支持.zip和.bin格式,点击创建升级。

image.png

  1. 创建成功后,返回升级包列表界面,如下图所示。请注意在下拉框里选择你需要的产品。

image.png

3.2 验证升级包


如果升级包中升级包是否需要平台验证选择了否,可跳过4.7.3.2章节。

  1. 在升级包列表中,单击升级包对应的验证,配置参数后,单击确认,如下图所示,在一个或多个设备上进行升级包验证。
  2. 测试设备全部升级成功后,升级包状态显示为已验证,才能进行下一步批量升级。
  • 配置参数说明
    • 待升级版本号:整包升级时,该参数为非必选配置。下拉列表中,展示当前产品下所有设备的除升级目标版本号外的其他版本号,您可以选择一个或者多个待升级的版本。选择后,相应的设备将作为待验证设备列表中的备选设备。
      如不选择,表示对备选待验证设备的OTA模块当前版本不做限制。
    • 待验证设备:选择用于此次测试的设备。
    • 设备升级超时时间:设置单个设备的升级超时时间,即多长时间后,设备升级未完成则为超时。可选值范围:1分钟~1,440分钟。升级包第一次发起OTA升级时,建议将该参数设置为最大值,可提高设备升级成功率。推荐不填写直接使用平台默认值。

image.png
image.png

3.3 发起批次升级任务


发起升级批次任务:物联网平台向设备批量下发升级相关信息(升级包URL、版本、大小等),设备端需使用升级包URL下载升级包,进行OTA升级。
在升级包列表页或升级包详情页点击批量升级,在弹出的页面上填写配置项,点击完成即可,如下图所示。
image.png

  •  升级包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。

3.3.1 批量升级配置项说明


1、升级范围

  • 全部设备:升级该产品下满足升级条件的全部设备。
  • 定向升级:仅升级被选中的设备。选择为定向升级后,提供两种设备选择方式:
    • 手动勾选:从设备范围下拉列表选择要升级的设备。
    • 文件上传:下载模板,填写、上传CSV格式的设备列表文件。单次最多包含10,000条记录。
      若设备列表文件中有不合法的设备名称,将出现错误提示。
  • 灰度升级:即局部升级。升级方式为静态升级时出现的可选项。灰度升级的设备至少为1个。选择为灰度升级后,下方出现灰度范围输入框,需针对已选择的设备,设置灰度百分比。物联网平台根据设置的灰度百分进行计算,计算结果向下取整。

2、待升级版本号

  • 当包含符合条件的新激活设备关闭时,该参数为非必选配置;开启时为必选配置。
  • 当升级范围为定向升级时,不配置该参数。下拉列表中,展示当前产品下所有设备的版本号(除升级目标版本号之外),选择一个或者多个待升级的版本。
  • 如不选择,表示对待升级设备OTA模块的当前版本不做限制。

3、包含符合条件的新激活设备

  • 关闭:仅升级当前满足升级条件的设备
  • 开启:升级当前和持续检查中,满足升级条件的设备。持续检查中包括但不限于以下情况的设备,可进行OTA升级:
    • 后续新激活设备满足升级条件。
    • 设备当前上报的OTA模块版本号不满足升级条件,后续上报了满足升级条件的OTA模块版本号。
    • 注意
      • 一个升级包下仅可有1个动态升级批次。若升级包下已有动态升级批次,您将无法创建新的动态升级,如需创建请先取消原有动态升级批次。
      • 一个设备在一个动态升级批次下只能匹配10次升级。超过10次后,即使后续满足动态升级匹配条件,物联网平台也不会再触发设备升级。


        3.3.2 升级策略配置

        image.png
  1. 推送速率,设置每分钟向多少个设备推送升级包下载URL。取值范围:10~1,000。
  2. 超时时间,设置单个设备的升级超时时间,即多长时间之后,升级未完成则为超时。可选值范围:1分钟~1,440分钟,始终以设备最开始的第一次上报升级进度时间作为开始时间
  3. 当目标设备已有其他升级任务
    a) 忽略本任务,若设备已有升级任务,则只执行已有任务
    b) 覆盖其他任务,则设备只执行新的升级任务,之前的升级任务会被取消


    3.3.3 升级时间配置

    image.png
    指定设备OTA升级的时间

  4. 立即升级, 立即进行OTA升级。

  5. 定时升级, 设置升级开始时间、升级结束时间。升级开始时间距当前时间最少5分钟,最多7天。升级结束时间距开始时间最少1小时,最多为30天,可不设置,不设置表示不会强制结束。


    3.3.4 失败处理配置

    image.png

  6. 不重试,升级失败后不重试。

  7. 自动重试,升级失败后,自动重试
  8. 重试间隔,如果升级失败,选择重试升级的时间。可选:
    1. 不重试
    2. 立即重试
      1. 10分钟后重试
      2. 30分钟后重试
      3. 1小时后重试
      4. 24小时后重试
      5. 注意:升级失败重试间隔需要小于设备升级超时时间。例如:
        1. 设备升级超时时间为60分钟,升级失败重试间隔最大可设置为30分钟后重试。
        2. 设备升级超时时间为1440分钟,升级失败重试间隔最大可设置为1小时后重试。
        3. 若升级失败重试间隔需设置为24小时后重试,则建议不设置设备升级超时时间。因升级超时后,不会再触发升级重试。
  9. 重试次数,失败后,可选择重试的次数如下
    a) 1次
    b) 2次
    c) 5次


    3.4 查看升级情况


    查看升级情况:可查看目标设备升级状态、升级包信息等。

  10. 点击批次信息可查看本升级批次的详细信息,如下图所示。

image.png

  1. 在升级包列表中,单击目标升级包对应的查看,在设备列表中的下拉框中选择对应状态,即可查看到该状态下的全部设备信息,可针对单个设备进行取消升级和重升级操作,如下图所示。

image.png

  1. 升级状态说明如下

    1. 待推送
      1. 还未向设备推送OTA升级通知。
      2. 待推送状态原因有三种:设备离线、定时推送或速率限制,状态分别显示为:
        1. 待推送(设备离线)
        2. 待推送(定时:2020/XX/XX XX:XX:XX)
        3. 待推送
    2. 已推送
      1. 已向设备推送OTA升级通知,设备尚未上报进度。
    3. 升级中
      1. 设备已收到升级通知,并已上传升级进度。
    4. 已取消
      1. 已取消该设备的升级。
    5. 升级成功
      1. 设备上报升级成功后的正确版本号。
      2. 说明,设备升级成功后,建议第一时间上报升级成功后的正确版本号,否则,可能会因为超时,导致升级失败。
    6. 升级失败。

      1. 以下原因可能造成设备升级失败。
      1. 设备未结束上一次升级任务,又发起新的批量升级,且选择不覆盖之前的升级任务,则后发起的升级任务会升级失败。您可以:
        1. 等设备完成上一次升级后,再对设备发起新的升级。
        2. 在发起升级时,选择覆盖设备之前的升级任务。
          备注:设备处于升级中状态的升级任务不会被覆盖。
      2. 设备通过升级进度的Topic,向物联网平台上报数值-1、-2、-3或-4,则认为升级失败。数值含义如下:
        1. -1:升级失败。
        2. -2:下载失败。
        3. -3:校验失败。
        4. -4:烧写失败。
      3. 设备升级时,从设备第一次上报升级进度开始计算升级时间,在设置的超时时间截止前,设备没有上报升级后的目标版本来完成升级,则认为升级失败。
      4. 设备在升级中状态下,上报了源版本和目标版本以外的版本信息,则认为升级失败。
      5. 如果发起批量升级时,指定了待升级版本号,且选择了升级失败后重试,在以下情况下会进行自动重试升级。
        1. 设备在升级中状态下,上报了源版本和目标版本以外的版本信息导致的升级失败。
        2. 设备通过上报升级进度的Topic,主动上报-1、-2、-3或-4导致的升级失败。
      6. 自动重试时,设备在物联网平台的升级状态显示不变,即在已推送状态下重试时,状态仍然显示为已推送;在升级中状态下重试时,状态仍然显示为升级中。物联网平台不会触发自动重试逻辑的情况:
        1. 因升级超时(失败原因:timeout)而导致的升级失败。
        2. 您主动取消的升级。