無線アップデートの成功のテスト[終了]


10

IoTデバイスが正常に更新されたことを確認するためのベストプラクティスは何ですか?

OTAの更新をテストしてデバイスを認証するには、何をする必要がありますか?さらに一歩進んで、IoTデバイスのフリートのソフトウェアバージョン(更新)をどのように監視/管理できますか?


1
これは、他の質問のように広すぎます。そして、それはデバイスのタイプと展開のモードに大きく依存します。
Gilles 'SO-邪悪なことをやめよう'

1
「艦隊」とは、車両の艦隊ですか?もしそうなら、私はSkyWaveモデムのようなものを使用して、(暗号化された)SMS、GPRS上のHTTPS、またはイベント衛星による通信を想定しています。質問を編集して明確にできる場合は、再開されると思います。
Mawgはモニカを2016

回答:


10

私は24時間ごとに呼び出すソフトウェア(Windows Server-「もの」とは少し異なりますが、プリンシパルは同じです)を持っています-それ自体についてのさまざまなメタデータを送り返します。

  • 顧客名(または一意のID)
  • ソフトウェアバージョン
  • 呼び出し/リクエストのタイムスタンプ
  • 製品タイプ/ ID

Webサービスはデータを解析し、データベースに行を挿入(または顧客が既存の行を持っている場合は更新)します。

このようにして、新しい顧客は自動的にDBに追加され、既存の顧客は「最後に見た」タイムスタンプが更新され、常に最新のソフトウェアバージョンを使用できます。古いバージョンを使用している顧客や、しばらくの間電話をかけていない顧客を示すDBクエリを実行できます。

最近、自動更新(OTA更新を考える)も実装しました。これは重要なプロセスであるため、これに特定のテレメトリを実装しました。

  • 現行版。
  • 更新するバージョン。
  • 誰が/いつそれを承認したか(顧客の同意が必要な場合)。
  • 主要な各ステップのタイムスタンプとステータスコード。

これにより、自動更新の特定の側面が失敗しているかどうかを判断でき、多くの場合、何かが間違っていることに気付く前に頻繁に電話をかけることができます。

「もの」との大きな違いは、通常メモリに制約があるためxxx Kb、ファームウェアのOTAアップデートを実行するには、xxx Kb * 2利用可能なメモリが必要です(既存のファームウェア+新しいファームウェアを保存するのに十分なメモリ、実際のファームウェアのアップデートを開始する前)


1
共有してくれてありがとう。メモリ使用量は重要なポイントです。該当する場合、承認と顧客の受け入れについてどのように進めますか?更新を受け入れるためにパスワードが必要ですか?
Noam Hacker

2
これは別のユースケースです(Windows Serverであるため)が、OTA更新がダウンロードされたときにアラートをポップアップするUIがあります-アラートは、更新するかどうかを顧客に尋ねます(リリースノートへのリンクなどが含まれます)。上のthing私はおそらく(アップデートを「許可」にユーザーをしたいと仮定した場合)、ユーザーに警告するLEDか何かを点滅した後、それらを「長押し」、それを開始するためのボタンがあるだろう...
KennetRunner

5

たとえば、X週/日/時間ごとに、ソフトウェアの現在のバージョン番号を備えたサーバーに要求を出すことができます。その後、分析を使用して、更新されたデバイスの現在の割合と数を確認できます。


1
これは、ブリックされたデバイス、または更新の完了に失敗したデバイスを考慮していますか(再起動、ダウンロード、クラッシュサイクルでスタックした可能性があります)
Sean Houlihane

1
ある意味では、はい。1日目に100台のデバイスがあり、2日目に更新をプッシュし、3日目に分析で25台のデバイスしか取得しなかった場合、何か問題が発生したことを意味します
WayToDoor

1
それは面白い。障害の種類を区別する方法はありますか?
Noam Hacker

1
更新を個別の手順に分割します(たとえば、新しい構成値の追加gpsの再起動デバイスIDの設定ファームウェアの上書きなど)それぞれに開始.. call send 'home'と完了したstatus xx callがhomeに送信されます。そうすれば、(おおまかに)どこで失敗したか、(できれば)ステータスコードが何であったかを知ることができます。
KennetRunner 16

4

スマートな同期ポリシーがすべてです

更新のロールアウトアプローチと連携して機能するスマートな同期ポリシーが必要です。IoTデバイスがそのバージョンを同期する最も明白な時点は、更新直後です。残りの同期スケジュールは、デバイスのタイプに大きく依存します。

常にオンで、ケーブル接続を介して接続されていますが、1回の同期にコストはかかりません(かなり)。定期的に同期して、デバイスに関するデータを最新の状態に保つことは理にかなっています。

高価な衛星接続を使用しているためにデバイスがどこかにある場合、ビットごとにコストがかかります。同期スケジュールはその状況に対応する必要があります。

同期の確認

十分に高度なデバイス(それを正当化する価格帯または操作領域を読み取る)では、各デバイスに、同期の信頼性チェックを可能にするクライアント証明書を装備できます。

とにかく、エンドユーザーのデバイスでは、バッテリーの寿命が尽きてデバイスが使用できなくなったり、デバイスが使用できなくなったり、顧客がワイヤレスパスワードを変更しただけでIoTデバイスに通知されなくなったりします。それらは、タイミング的にまとめられたとしても、更新で何もする必要がない場合があります。


これがOPの問題を解決するとは思わない。
WayToDoor 2016

@WayToDoor最初の段落では、更新直後に同期することをお勧めしています。これにより、新しいバージョンに正常に到達したかどうかがわかります。それが事実でない場合に考えられる対策は、非常に広範である(そして要求されていない)。残りの私の答えは、現場でのバージョンの監視について扱います。見逃した質問は?
ヘルマー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.