IoTデバイスが正常に更新されたことを確認するためのベストプラクティスは何ですか?
OTAの更新をテストしてデバイスを認証するには、何をする必要がありますか?さらに一歩進んで、IoTデバイスのフリートのソフトウェアバージョン(更新)をどのように監視/管理できますか?
IoTデバイスが正常に更新されたことを確認するためのベストプラクティスは何ですか?
OTAの更新をテストしてデバイスを認証するには、何をする必要がありますか?さらに一歩進んで、IoTデバイスのフリートのソフトウェアバージョン(更新)をどのように監視/管理できますか?
回答:
私は24時間ごとに呼び出すソフトウェア(Windows Server-「もの」とは少し異なりますが、プリンシパルは同じです)を持っています-それ自体についてのさまざまなメタデータを送り返します。
Webサービスはデータを解析し、データベースに行を挿入(または顧客が既存の行を持っている場合は更新)します。
このようにして、新しい顧客は自動的にDBに追加され、既存の顧客は「最後に見た」タイムスタンプが更新され、常に最新のソフトウェアバージョンを使用できます。古いバージョンを使用している顧客や、しばらくの間電話をかけていない顧客を示すDBクエリを実行できます。
最近、自動更新(OTA更新を考える)も実装しました。これは重要なプロセスであるため、これに特定のテレメトリを実装しました。
これにより、自動更新の特定の側面が失敗しているかどうかを判断でき、多くの場合、何かが間違っていることに気付く前に頻繁に電話をかけることができます。
「もの」との大きな違いは、通常メモリに制約があるためxxx Kb
、ファームウェアのOTAアップデートを実行するには、xxx Kb * 2
利用可能なメモリが必要です(既存のファームウェア+新しいファームウェアを保存するのに十分なメモリ、実際のファームウェアのアップデートを開始する前)
thing
私はおそらく(アップデートを「許可」にユーザーをしたいと仮定した場合)、ユーザーに警告するLEDか何かを点滅した後、それらを「長押し」、それを開始するためのボタンがあるだろう...
たとえば、X週/日/時間ごとに、ソフトウェアの現在のバージョン番号を備えたサーバーに要求を出すことができます。その後、分析を使用して、更新されたデバイスの現在の割合と数を確認できます。
スマートな同期ポリシーがすべてです
更新のロールアウトアプローチと連携して機能するスマートな同期ポリシーが必要です。IoTデバイスがそのバージョンを同期する最も明白な時点は、更新直後です。残りの同期スケジュールは、デバイスのタイプに大きく依存します。
常にオンで、ケーブル接続を介して接続されていますが、1回の同期にコストはかかりません(かなり)。定期的に同期して、デバイスに関するデータを最新の状態に保つことは理にかなっています。
高価な衛星接続を使用しているためにデバイスがどこかにある場合、ビットごとにコストがかかります。同期スケジュールはその状況に対応する必要があります。
同期の確認
十分に高度なデバイス(それを正当化する価格帯または操作領域を読み取る)では、各デバイスに、同期の信頼性チェックを可能にするクライアント証明書を装備できます。
とにかく、エンドユーザーのデバイスでは、バッテリーの寿命が尽きてデバイスが使用できなくなったり、デバイスが使用できなくなったり、顧客がワイヤレスパスワードを変更しただけでIoTデバイスに通知されなくなったりします。それらは、タイミング的にまとめられたとしても、更新で何もする必要がない場合があります。