如何解决设备OTA升级失败问题

本文介绍设备OTA升级失败的原因分析和解决方法。

设备升级超时

问题描述

在物联网平台控制台的监控运维>OTA升级页面,发起升级批次任务时,设置了设备升级超时时间。当设备第一次上报升级进度时就会触发计时,超出设备升级超时时间,设备未完成升级,物联网平台判断设备OTA升级失败。

可能原因

  • 设备所属网络环境不稳定,下载OTA升级包时间超过设备升级超时时间

  • 设备第一次下载OTA升级包失败或升级失败,设备重启后获取物联网平台推送的升级任务,重新开始下载OTA升级包并升级,最终升级成功时长超过设备升级超时时间

解决方法

设置较长的设备升级超时时间(例如1小时以上),或不设置设备升级超时时间,提升设备OTA升级成功率。

说明

仅动态升级的批次任务中,支持修改设备升级超时时间,且可修改多次,修改后的设备升级超时时间仅对增量设备的升级任务生效。

设备上报错误版本

问题描述

在物联网平台控制台的监控运维>OTA升级页面,发起升级批次任务时,设置了待升级版本号。当设备开始下载升级包或开始升级,上报升级进度后,设备离线再上线且上报的版本,既不是源版本,也不是目标版本,物联网平台判断设备OTA升级失败。

可能原因

设备进行OTA升级(例如从源版本1.0升级到目标版本1.1)时,在设备联网状态下,同时进行了本地固件更新(目标版本为1.1.1),设备本地固件更新完成会上报固件版本1.1.1,与物联网平台发起升级的版本不一致(既不是1.0也不是1.1)。

解决方法

设备有本地固件更新的操作时,需要先将设备断网,完成本地固件更新,然后再上线并上报版本。设备上线和上报版本的时间间隔需要控制在2秒内完成。

您可在物联网平台控制台的监控运维>OTA升级页面,发起升级批次任务时,设置升级重试上限次数,例如5次。当设备上报错误版本后,物联网平台根据设置的升级重试上限次数,允许设备再次升级,直至升级重试次数用完。此方法可提升设备OTA升级成功率。

设备上报错误进度

问题描述

设备升级过程中通过升级进度的Topic,向物联网平台上报进度-1(升级失败)、-2(下载失败)、-3(校验失败)或-4(烧写失败),物联网平台判断设备OTA升级失败。

可能原因

设备在升级过程中,可能会出现多种升级异常。因此,设备端会上报已定义的错误进度值(-1、-2、-3、-4)和自定义描述,用于设备OTA升级后的失败原因分析。
上述-1、-2、-3、-4的描述是物联网平台定义的默认值,支持修改。即设备端可上报符合设备升级实际情况的错误描述信息。

解决方法

在物联网平台控制台的监控运维>OTA升级页面,发起升级批次任务时,设置升级重试上限次数,例如5次。

当设备上报错误进度后,物联网平台根据设置的升级重试上限次数,允许设备再次升级,直至升级重试次数用完。此方法可提升设备OTA升级成功率。

设备升级冲突

问题描述

同一时间,一个设备只能处于一个升级批次任务中。此时,对该设备再次发起新的升级批次任务,导致设备OTA升级的新任务与原任务出现升级冲突,物联网平台判断设备OTA升级的新任务升级失败。

可能原因

对正在进行OTA升级的设备,再次发起升级批次任务时,选中了是否覆盖设备之前的升级任务

解决方法

  • 在物联网平台控制台的监控运维>OTA升级页面,发起升级批次任务时,设置是否覆盖设备之前的升级任务

  • 在物联网平台控制台,OTA升级的批次详情页面,取消待推送、已推送、升级中的任务后,再对该设备发起新的批次升级任务。

注意

升级中的设备OTA升级任务,不支持被覆盖,仅支持取消。