确保 IoT 设备已成功更新的最佳实践是什么?
您需要做什么才能测试 OTA 更新和验证设备?更进一步,您如何监控/管理一组物联网设备的软件版本(更新)?
确保 IoT 设备已成功更新的最佳实践是什么?
您需要做什么才能测试 OTA 更新和验证设备?更进一步,您如何监控/管理一组物联网设备的软件版本(更新)?
我有每 24 小时调用一次的软件(Windows Server - 与“事物”略有不同,但原理相同) - 它会发回有关自身的各种元数据:
Web 服务解析数据并在数据库中插入(或更新,如果客户有现有行)一行。
通过这种方式,新客户会自动添加到数据库中,现有客户会更新他们的“上次看到”时间戳,并且我们始终拥有他们的最新软件版本。我可以运行数据库查询,告诉我哪些客户在使用旧版本,和/或哪些客户有一段时间没有联系过。
我们最近还实施了自动更新(想想 OTA 更新),因为这是一个关键过程,我们为此实施了特定的遥测 - 记录:
这使我们能够确定自动更新的某些方面是否失败,并且在许多情况下,我们可以在客户注意到任何问题之前经常打电话给他们。
与“事物”的最大区别在于您通常会受到内存限制,因此要xxx Kb
对固件进行 OTA 更新,您需要xxx Kb * 2
可用内存(现有固件 + 足够的内存在开始实际固件更新之前存储新固件)
例如,您可以每 X 周/天/小时...向具有当前软件版本号的服务器发出请求。之后,您将能够使用分析来查看当前更新的设备百分比和数量。
这一切都与智能同步策略有关
您需要一个与您的更新推出方法协同工作的智能同步策略。物联网设备应该同步其版本的最明显的时间点是直接在更新之后。同步计划的其余部分高度依赖于设备的类型。
它是否始终开启并通过有线连接进行连接,其中单个同步不会花费(很多),定期同步以保持有关设备的数据是最新的是有意义的。
如果设备在某个地方因为您使用昂贵的卫星连接而每一点都很昂贵,则同步计划必须适应这种情况。
同步验证
在足够先进的设备中(读取证明其合理的价格范围或操作区域),每个设备都可以配备客户端证书,以实现同步的真实性检查。
无论如何,对于最终客户设备,您总是会因电池电量耗尽、设备无法使用或只是客户更改其无线密码而未通知物联网设备而导致设备失灵。那些可能不必对您的更新做任何事情,即使它们在时间上合在一起。