このトピックでは、IoT Platform コンソールで一度に複数のデバイスに更新パッケージをプッシュして、OTA(Over-The-Air)更新を実行する方法について説明します。
前提条件
以下の操作が実行されます。手順
IoT Platform コンソール にログオンします。
[概要] ページで、[すべての環境] をクリックします。「すべての環境」タブで、管理するインスタンスを見つけ、インスタンス ID またはインスタンス名をクリックします。
- 左側のナビゲーションウィンドウで、 を選択します。説明 より良いサービスを提供するために、IoT Platform は OTA 更新機能を改善し、更新パッケージバージョンの統計を追加しました。コンソールで新しい OTA 更新機能を初めて使用するときは、アップロードした更新パッケージをプロダクトに関連付ける必要があります。更新パッケージは 1 つのプロダクトにのみ関連付けることができます。更新パッケージをプロダクトに関連付ける方法の詳細については、コンソールの説明をご参照ください。
- 更新パッケージタブで、管理する更新パッケージを見つけ、「操作」列の [バッチ更新] をクリックします。「更新範囲の設定」ステップで、パラメータを設定し、[次へ] をクリックします。次の表でパラメータについて説明します。

パラメータ 説明 更新方法 更新のタイプ。このパラメータはオプションです。有効な値: - 静的更新:指定された条件を満たす既存のデバイスのみを更新します。
- 動的更新:指定された条件を満たすデバイスを継続的に更新します。
動的更新は、以下のシナリオで実行できます。
- 動的更新の実行後にアクティブ化されたデバイスが、指定された条件を満たしている。
- デバイスが報告する現在の OTA モジュールバージョンが、指定された条件を満たしていない。ただし、デバイスは指定された条件を満たす OTA モジュールバージョンを報告し続けます。
説明- 1 つの更新パッケージを使用して、1 つの動的更新バッチのみを作成できます。更新パッケージを使用して動的更新バッチを作成した場合は、別のバッチを作成する前に、この動的更新バッチをキャンセルする必要があります。
- バージョンベースの動的更新バッチでは、デバイスは最大 10 回更新できます。デバイスが 10 回更新されている場合、動的更新に必要な条件が後から満たされても、デバイスで更新を開始することはできません。
アップグレード範囲 更新の範囲。このパラメータはオプションです。有効な値: - すべてのデバイス:指定されたプロダクト内で指定された更新条件を満たすすべてのデバイスを更新します。
- 選択したデバイス:指定されたデバイスのみを更新します。
選択したデバイスを選択した場合、次のいずれかの方法を使用して必要なデバイスを選択できます。
- [選択]:「デバイス範囲」ドロップダウンリストから更新するデバイスを選択します。
東京リージョン で Enterprise Edition インスタンスを使用している場合は、高度な検索 機能を使用してデバイスを検索できます。一致するデバイスの名前を含む CSV ファイルをダウンロードすることもできます。
- [ファイルのアップロード]:.csv 形式のテンプレートファイルをダウンロードし、テンプレートファイルに必要なデバイスの名前を入力して、テンプレートファイルをアップロードします。各テンプレートファイルには、最大 1,000,000 レコードを含めることができます。
テンプレートファイルに 1 つ以上の無効なデバイス名が含まれている場合、エラーが発生します。[無効なデバイス名リストのダウンロード] をクリックして、無効なデバイス名を含むファイルをダウンロードします。次に、テンプレートファイルを修正して再アップロードします。
- [選択]:「デバイス範囲」ドロップダウンリストから更新するデバイスを選択します。
- 段階的更新:指定されたデバイスを更新します。このオプションは、「更新方法」パラメータを「静的更新」に設定した場合にのみ表示されます。段階的更新には、少なくとも 1 つのデバイスを指定する必要があります。
段階的更新を選択すると、「更新採用率(%)」フィールドが表示されます。フィールドに指定されたデバイスのパーセンテージを指定する必要があります。IoT Platform は、指定されたパーセンテージに基づいて更新できるデバイスの数を計算します。計算結果は切り捨てられます。
- グループ更新: 指定されたデバイスグループを更新します。このオプションは、[更新方法] パラメーターを [静的更新] に設定した場合にのみ表示されます。[グループリスト] ドロップダウンリストには、現在のインスタンスのすべての親グループとそのサブグループが表示されます。デバイスグループの作成方法の詳細については、「デバイスグループ」をご参照ください。
アップグレード対象バージョン番号 このパラメータを設定する前に、次の点に注意してください。 - 完全静的アップデートを実行する場合は、このパラメータはオプションです。完全動的アップデートを実行する場合は、このパラメータは必須です。[選択デバイス] に [アップグレード範囲] パラメータを設定した場合、このパラメータは表示されません。
[アップグレード対象バージョン番号] ドロップダウンリストには、更新対象バージョンを除き、現在のプロダクト内のすべてのデバイスの OTA モジュールバージョンが表示されます。1 つ以上のバージョンを選択できます。
このパラメータを設定しない場合、更新対象デバイスの OTA モジュールのバージョン番号に制限は指定されません。
- 差分アップデートを実行する場合、このパラメータの値は、アップデートパッケージを追加するときに指定したバージョン番号です。
アップデートバッチの作成時に [更新方法] パラメータを [動的更新] に設定し、アップデートバッチが [更新中] 状態の場合、このパラメータの値を変更できます。
- 更新ポリシーの設定ステップで、パラメーターを設定し、[完了] をクリックします。 その後、IoT Platform はデバイスに更新通知をプッシュします。 次の表にパラメーターを示します。

パラメーター 説明 アップグレード時間 OTA アップデートを実行する時間。有効値: - 更新:OTA アップデートをすぐに実行します。
- スケジュールされた更新:指定された時間範囲内で OTA アップデートを実行します。 OTA アップデートの開始時刻と終了時刻を指定できます。 開始時刻は現在の時刻から 5 分から 7 日後である必要があります。 終了時刻は開始時刻から 1 時間から 30 日後である必要があります。 終了時刻はオプションです。 終了時刻を指定しない場合、アップデートは強制的に停止されません。説明 スケジュールされた更新は、更新方法パラメーターを [静的更新] に設定した場合にのみサポートされます。
IoT Platform がアクティブに更新タスクをプッシュするかどうか IoT Platform がデバイスに更新タスクを自動的にプッシュするかどうかを指定します。 - [はい]:更新バッチが作成されると、IoT Platform は指定されたオンラインデバイスに更新タスクを自動的にプッシュします。 これはデフォルト値です。
この場合でも、デバイスは IoT Platform から OTA 更新タスクに関する情報を取得するリクエストを開始できます。
- [いいえ]:デバイスは IoT Platform から OTA 更新タスクに関する情報を取得するリクエストを開始します。
更新パッケージのプッシュレート 1 分あたりに更新パッケージのダウンロード URL をプッシュするデバイスの数。有効値:[一定レート] と [可変レート]。 重要- [iot Platform がアクティブに更新タスクをプッシュするかどうか] パラメーターを [いいえ] に設定した場合、このパラメーターは表示されません。
- [可変レート] オプションは、Enterprise Edition インスタンスでのみ使用できます。
以下にパラメーターを示します。
- [一定レート] を指定する場合は、[一定レートで更新] パラメーターを設定する必要があります。有効値:10 ~ 10000。値は整数である必要があります。単位:1 分あたりのデバイス数。一定レートで更新パラメーターの値を指定すると、プッシュレートは変更されません。
たとえば、リスクの高い脆弱性を修正する必要がある場合は、すべてのデバイスに更新パッケージをプッシュして更新を実行する必要があります。この場合、更新パッケージのプッシュレートパラメーターを一定レートに設定することをお勧めします。最大一定プッシュレートを 1 分あたり 10,000 デバイスに設定できます。このようにして、更新するデバイスにできるだけ早く更新パッケージをプッシュできます。
- [可変レート]:場合によっては、最初に低いレート(1 分あたり 1 デバイスなど)で更新パッケージをプッシュし、特定の条件に基づいてプッシュレートを継続的に増やす必要がある場合があります。更新パッケージのプッシュレートパラメーターを [可変レート] に設定できます。
たとえば、新機能が追加されたときに、すべてのデバイスに低いレートで更新パッケージをプッシュする場合があります。このようにして、更新プロセスの開始時に、デバイスのごく一部で最初に更新を実行できます。次に、更新されたデバイスが期待どおりに動作するかどうかを確認し、確認結果に基づいてプッシュレートを増やすかどうかを判断できます。このプロセスは、すべてのデバイスの更新を成功させるために、フルアップデートの前に段階的アップデートを実行するプロセスに似ています。
可変レートを指定する場合は、次のパラメーターを設定する必要があります。
- [基本プッシュレート]:更新パッケージがプッシュされるデバイスの数または更新されたデバイスの数が [プッシュレートの増加] セクションのプッシュされたデバイスまたは更新されたデバイスパラメーターの値に達しない場合に、1 分あたりに更新パッケージをプッシュするデバイスの数を指定します。有効値:1 ~ 10000。値は、[最大プッシュレート] パラメーターの値以下の整数である必要があります。
- [増分係数]:システムがプッシュレートを増加させる基準となる増分係数を指定します。このパラメーターは、更新パッケージがプッシュされるデバイスの数または更新されたデバイスの数が [プッシュレートの増加] セクションのプッシュされたデバイスまたは更新されたデバイスパラメーターの値に達した場合に適用されます。有効値:1.20 ~ 5.00。値は小数点以下 2 桁に四捨五入されます。
- [最大プッシュレート]:1 分あたりに更新パッケージをプッシュするデバイスの最大数を指定します。有効値:10 ~ 10000。値は整数である必要があります。システムが更新パッケージをプッシュするレートが最大プッシュレートに達すると、システムは最大プッシュレートで更新パッケージをプッシュし、プッシュレートを変更しなくなります。
- [プッシュレートの増加]:[プッシュされたデバイス] または [更新されたデバイス] パラメーターのしきい値を指定します。有効値:1 ~ 100000。値は整数である必要があります。更新パッケージがプッシュされるデバイスの数または更新されたデバイスの数がしきい値に達すると、システムは [増分係数] パラメーターの値に基づいてプッシュレートを増加させます。
例:- 次の設定を行って OTA アップデートを実行します。更新パッケージのプッシュ範囲パラメーターを可変レートに設定し、[基本プッシュレート] パラメーターを 50 に設定し、[増分係数] パラメーターを 2 に設定し、[最大プッシュレート] を 10000 に設定し、[プッシュされたデバイス] パラメーターを [プッシュレートの増加] セクションで 1000 に設定します。
- 次のプロセスは、OTA アップデートの実行方法を示しています。OTA 更新タスクが作成され、プロセスの開始時に 1 分あたり 50 デバイスのレートで 1,000 デバイスに更新パッケージがプッシュされます。次に、プッシュレートは増分係数に基づいて増加します。
- 次のプロセスは、システムがプッシュレートを増加させる方法を示しています。
- OTA 更新タスクは、1 分あたり 50 デバイスのレートで 1,000 デバイスに更新パッケージをプッシュします。次に、システムは [増分係数] パラメーターの値に基づいてプッシュレートを 1 分あたり 100 デバイスに増加させます。
- OTA 更新タスクは、1 分あたり 100 デバイスのレートでさらに 1,000 デバイスに更新パッケージをプッシュします。合計 2,000 デバイスが更新パッケージを受信しました。次に、システムはプッシュレートを 1 分あたり 200 デバイスに増加させます。
- OTA 更新タスクは、1 分あたり 200 デバイスのレートでさらに 1,000 デバイスに更新パッケージをプッシュします。合計 3,000 デバイスが更新パッケージを受信しました。次に、システムはプッシュレートを 1 分あたり 400 デバイスに増加させます。
- OTA 更新タスクは、1 分あたり 400 デバイスのレートでさらに 1,000 デバイスに更新パッケージをプッシュします。合計 4,000 デバイスが更新パッケージを受信しました。次に、システムはプッシュレートを 1 分あたり 800 デバイスに増加させます。
- このようにして、OTA 更新タスクは、合計 8,000 デバイスが更新パッケージを受信し、[増分係数] パラメーターの値に基づいてプッシュレートが 1 分あたり 12,800 デバイスに増加するまで、1 分あたり 800 デバイス、1 分あたり 1,600 デバイス、1 分あたり 3,200 デバイス、1 分あたり 6,400 デバイスのレートで更新パッケージをプッシュします。値 12800 は、[最大プッシュレート] パラメーターに指定したしきい値 10000 を超えています。したがって、OTA 更新タスクは、1 分あたり 10,000 デバイスの最大プッシュレートで更新パッケージをプッシュし、プッシュレートを変更しなくなります。
作成した更新バッチが [更新中] 状態の場合は、更新パッケージをプッシュするために指定したプッシュレートを変更できます。ただし、プッシュタイプを [一定レート] から [可変レート] に変更したり、その逆を行うことはできません。詳細については、「更新バッチの管理」をご参照ください。
アップグレード失敗時の再試行間隔 更新の失敗と失敗後の再試行の間隔。有効値: - 再試行しない
- すぐに再試行
- 10 分後に再試行
- 30 分後に再試行
- 1 時間後に再試行
- 24 時間後に再試行
重要 [アップグレード失敗時の再試行間隔] パラメーターの値は、[デバイスのアップグレードタイムアウト(分)] パラメーターの値よりも小さい必要があります。例:- タイムアウト期間を 60 分に設定した場合、指定できる最大再試行間隔は 30 分です。
- タイムアウト期間を 1,440 分に設定した場合、指定できる最大再試行間隔は 1 時間です。
[アップグレード失敗時の再試行間隔] パラメーターを [24 時間後に再試行] に設定する場合は、[デバイスのアップグレードタイムアウト(分)] パラメーターを設定しないことをお勧めします。更新がタイムアウトした場合、再試行は実行されません。
最大再試行回数 更新が失敗した場合に実行できる最大再試行回数。有効値: - 1
- 2
- 5
デバイスのアップグレードタイムアウト(分) 単一デバイスの更新のタイムアウト期間。指定されたデバイスがこの期間内に更新されない場合、更新はタイムアウトします。有効値:1 ~ 1440。単位:分。 説明 更新期間は、指定されたデバイスが更新の進捗状況を最初に報告したときから開始されます。更新中に、デバイスがオンラインとオフラインを複数回切り替えるため、更新パッケージが指定されたデバイスに繰り返しプッシュされる場合があります。更新期間の開始時刻は変更されません。
更新バッチの作成時に [更新方法] パラメーターを [動的更新] に設定し、更新バッチが [更新中] 状態の場合は、このパラメーターの値を変更できます。詳細については、「更新バッチの管理」をご参照ください。
デバイスは複数のモジュールの同時更新をサポートしています デバイスが複数のモジュールでの同時更新をサポートするかどうかを指定します。このパラメーターは、Enterprise Edition インスタンスまたは新しいバージョンのパブリックインスタンスに対してのみ表示されます。有効値: - [はい]:デバイスは複数のモジュールでの同時更新をサポートしています。
この場合、IoT Platform は現在の更新タスクを使用して同じモジュールの以前の更新タスクを上書きしますが、進行中の更新タスクは上書きしません。
重要- C 用 Link SDK V4.x を使用するデバイスのみが、複数のモジュールでの同時更新をサポートしています。詳細については、「概要」をご参照ください。
- [デバイスは複数のモジュールの同時更新をサポートしています] または [以前のデバイス更新タスクを上書き] パラメーターを [はい] に設定できます。
- デバイスグループの新しい動的更新バッチの [デバイスは複数のモジュールの同時更新をサポートしています] および [以前のデバイス更新タスクを上書き] パラメーターの設定は、デバイスグループの既存の動的更新バッチの設定と同じである必要があります。
詳細については、「概要」トピックの 複数のモジュールの同時更新 の表をご参照ください。概要
- [いいえ]:デバイスは複数のモジュールでの同時更新をサポートしていません。デフォルト値:いいえ。
以前のデバイス更新タスクを上書き デバイスの以前の更新タスクを上書きするかどうかを指定します。デバイスに複数の更新タスクがある場合は、現在の更新タスクを使用して以前の更新タスクを上書きするかどうかを指定する必要があります。デバイスの更新タスクは、確認待ち、プッシュ予定、またはプッシュ済みの状態にすることができます。有効値: - [はい]:最新の更新タスクのみが実行されます。以前の更新タスクはキャンセルされます。
- [いいえ]:既存の更新タスクのみが実行されます。デフォルト値:いいえ。
説明 進行中の更新タスクは上書きされません。新しくバージョンを報告するデバイスに対してのみ有効にする 後で新しい OTA モジュールバージョンを報告するデバイスのみを更新するかどうかを指定します。このパラメーターは、更新方法パラメーターを [動的更新] に設定した場合にのみ表示されます。有効値: - [はい]:新しい OTA モジュールバージョンを報告するデバイスのみを更新します。
- [いいえ]:更新条件を満たす既存のデバイスを更新し、新しい OTA モジュールバージョンを報告するデバイスが更新条件を満たすかどうかを継続的に確認します。デフォルト値:いいえ。
APP によるアップグレードの確認 モバイルアプリを使用して更新を実行できるかどうかを指定します。[はい] を選択した場合は、モバイルアプリを開発する必要があります。有効値: - [はい]:デバイスで OTA アップデートを実行するには、モバイルアプリを使用して更新を確認する必要があります。ConfirmOTATask 操作を呼び出して、確認待ち状態の複数の更新タスクを一度に確認できます。その後、デバイスは [iot Platform がアクティブに更新タスクをプッシュするかどうか] パラメーターの値に基づいて OTA 更新タスクに関する情報を取得できます。
- [いいえ]:デバイスは [iot Platform がアクティブに更新タスクをプッシュするかどうか] パラメーターの設定に基づいて OTA 更新タスクに関する情報を取得します。デフォルト値:いいえ。
更新パッケージのダウンロードプロトコル 更新パッケージのダウンロードに使用するプロトコル。有効値:[HTTPS] と [MQTT]。デバイスが IoT Platform から更新パッケージの URL を受信した後、このプロトコルを使用して更新パッケージをダウンロードできます。 重要 Message Queuing Telemetry Transport(MQTT)プロトコルを使用して更新パッケージをダウンロードする場合は、次の点に注意してください。- サービスは、中国(上海)、中国(北京)、または中国(深セン)リージョンにデプロイする必要があります。
- OTA 更新パッケージには 1 つのファイルのみを含めることができ、ファイルサイズは 16 MB を超えることはできません。
- C 用 Link SDK の最新バージョンを使用して、OTA アップデートを実行し、MQTT 経由でファイルをダウンロードするデバイス機能を開発する必要があります。詳細については、「サンプルコード」をご参照ください。
バッチラベル [タグを追加] をクリックします。表示されるフィールドに、タグキー と タグ値 を指定します。
作成した更新バッチが [更新中] 状態の場合は、タグを変更したり、タグを追加したりできます。詳細については、「更新バッチの管理」をご参照ください。
更新バッチのタグは、IoT Platform がこれらのデバイスに更新通知をプッシュするときにデバイスに送信されます。
アイコンの上にポインターを移動すると、タグを設定するためのルールが表示されます。 - オプション:[更新パッケージの詳細] ページの [バッチ管理] タブで、動的更新バッチを見つけ、[アクション] 列の [編集] をクリックします。[更新範囲の設定] と [更新ポリシーの設定] ステップで、[アップグレード対象のバージョン番号] パラメーターと [デバイスのアップグレード タイムアウト] パラメーターの値を変更できます。タイムアウト設定はキャンセルできます。重要
- 動的更新設定を変更する前に、次の項目に注意してください。
- [アップグレード対象のバージョン番号]: バージョン番号を追加すると、そのバージョンを使用している既存のデバイスと、動的ポリシーに一致する新しいデバイスが更新されます。バージョン番号を削除しても、既存のデバイスは影響を受けません。
- [デバイスのアップグレード タイムアウト]: このパラメーターは、新しいデバイスでの動的 OTA アップデートに対してのみ有効です。既存のデバイスは影響を受けません。
- グループベースの動的更新バッチでは、[アップグレード対象のバージョン番号] パラメーターの値を変更することはできません。
- 動的更新設定を変更する前に、次の項目に注意してください。
結果
バッチ更新を開始すると、IoT Platform は設定に基づいて指定されたデバイスに更新通知をプッシュします。IoT Platform コンソールで、各デバイスの更新ステータスと更新パッケージ情報を表示できます。詳細については、「更新ステータスの表示」をご参照ください。
関連 API 操作
| API | 説明 |
| CreateOTAStaticUpgradeJob | 静的更新バッチを作成します。 |
| CreateOTADynamicUpgradeJob | 動的更新バッチを作成します。 |
| CancelOTAStrategyByJob | 動的更新バッチに関連付けられている更新ポリシーをキャンセルします。 |
| CancelOTATaskByDevice | 更新パッケージの保留中のデバイス更新タスクをキャンセルします。 |
| CancelOTATaskByJob | 更新バッチのデバイス更新タスクをキャンセルします。 |
OTA 更新機能に関連する API 操作の詳細については、「OTA 更新」をご参照ください。