IoT Platform のリモート設定機能を使用すると、デバイスを再起動したり中断したりすることなく、システムパラメーターやネットワークパラメーターなどのデバイス設定をリモートで更新できます。
前提条件
ご利用のデバイスの Link SDK がリモート設定サービスをサポートしている必要があります。 デバイスが設定リクエストに使用する Topic と Alink データ形式、および IoT Platform が設定プッシュに使用する Topic と Alink データ形式の詳細については、「リモート設定」をご参照ください。
Link SDK を使用した開発の詳細については、「Link SDK のダウンロード」をご参照ください。 IoT Platform が提供する C ベースの Link SDK を使用する場合:
-
C SDK v3.x または v2.x の場合、SDK で
FEATURE_SERVICE_OTA_ENABLED = yを定義し、linkkit_cota_init を呼び出してリモート設定 (Config Over The Air, COTA) を初期化する必要があります。 -
C SDK v4.x の場合、[SDK のカスタマイズ] ページで、[高度な機能] の下にある [OTA] を選択して、デバイスのリモート設定サービスを有効にします。 詳細については、「操作手順」をご参照ください。
背景情報
この方法では、ファームウェアバージョンのメンテナンスワークロードが増加し、更新を完了するためにデバイスをオフラインにする必要があります。
これらの問題に対処するため、IoT Platform はリモート設定機能を提供しています。この機能により、デバイスを再起動したり中断したりすることなく、オンラインで設定情報を更新できます。
リモート設定機能は、プロダクトレベルでデバイス設定を変更します。 つまり、IoT Platform にアップロードされた設定ファイルは、そのプロダクトのすべてのデバイスに適用されます。 単一のデバイスに適用することはできません。
機能
IoT Platform のリモート設定機能では、次のことが可能です:
-
プロダクトのリモート設定を有効または無効にする。
-
オンラインで設定ファイルを編集し、そのバージョンを管理する。
-
IoT Platform から設定ファイルをプッシュして、デバイス設定を一括で更新する。
-
デバイスが自発的に設定の更新をリクエストできるようにする。
ユースケース
リモート設定は、次の 2 つのシナリオで使用できます:
-
IoT Platform コンソールから、設定情報をデバイスに一括でプッシュできます。 デバイスは情報を受信した後、ローカルの設定ファイルを更新します。
-
デバイスが IoT Platform に新しい設定ファイルを自発的にリクエストして、更新を実行します。
以下のセクションでは、これらのユースケースの手順について説明します。
ユースケース 1:IoT Platform による設定のプッシュ
IoT Platform コンソールでは、プロダクトのすべてのデバイスに設定ファイルを一括でプッシュできます。

-
デバイスを IoT Platform に接続します。
デバイス開発プロセスとコードサンプルの詳細については、「Link SDK ドキュメント」をご参照ください。
重要デバイスを開発する際には、設定情報をプッシュするための Topic をサブスクライブするようにデバイスを設定する必要があります:
/sys/${productKey}/${deviceName}/thing/config/push。 -
IoT Platform コンソールで、設定ファイルを編集します。
-
IoT Platform コンソールにログインします。
[概要] ページで、[すべての環境] をクリックします。 [すべての環境] タブで、管理するインスタンスを見つけ、インスタンス ID またはインスタンス名をクリックします。
-
左側のナビゲーションウィンドウで、 を選択します。
-
プロダクトを選択し、リモート設定のスイッチをオンにして、[編集] をクリックします。
-
[設定テンプレート] の下にあるエディターに、JSON 形式で設定情報を書き込むか貼り付けます。
説明プロダクト設定テンプレートは、そのプロダクト配下のすべてのデバイスに適用されます。 IoT Platform コンソールから単一のデバイスに設定ファイルをプッシュすることはできません。
-
設定情報を編集した後、[保存] をクリックし、次に [確認] をクリックします。
保存後、プロダクト配下のすべてのデバイスに設定情報を手動で一括プッシュするか、デバイスがこの設定を自発的にリクエストすることができます。
-
-
[一括更新] をクリックし、次に [更新の確認] をクリックします。
確認後、IoT Platform はプロダクト配下のすべてのデバイスに設定ファイルを一括でプッシュします。
[一括更新] をクリックした後に、IoT Platform が信頼できない環境で操作が実行されたことを検出した場合、SMS 認証が開始されます。 IoT Platform は、認証が完了した後にのみ、デバイスに設定ファイルを送信します。
重要-
プッシュが成功した後、1 時間以内は同じプロダクトに新しい設定ファイルをプッシュすることはできません。
-
IoT Platform から同じ設定ファイルをプロダクトにプッシュできるのは 1 回だけです。
-
デバイス設定の一括更新を停止するには、プロダクトのリモート設定スイッチをオフにします。 リモート設定をオフにすると、IoT Platform はすべての更新プッシュを停止し、デバイスからの自発的な更新リクエストを拒否します。
-
-
デバイスは IoT Platform から設定ファイルのダウンロード URL を受信し、設定を更新します。
説明設定ファイルのダウンロード URL は 30 分間有効です。 デバイスはこの期間内にファイルをダウンロードする必要があります。
-
(オプション) 設定ファイルのバージョンを表示および管理します。
リモート設定機能は、デフォルトで直近 5 件の変更レコードを保存します。 新しい設定ファイルを正常に編集して送信すると、以前のバージョンが下のバージョン履歴リストに表示されます。
トレーサビリティのために、各バージョンの更新日時と内容を表示できます。 特定のバージョンの [表示] をクリックすると、ダイアログボックスにその設定内容が表示されます。 ダイアログボックスで [このバージョンに復元] をクリックすると、その内容がエディターにロードされます。 その後、内容を修正して一括更新を実行できます。
ユースケース 2:デバイスによる設定のリクエスト
次のフローチャートは、デバイスが自発的に設定情報をクエリして更新する方法を示しています。

-
デバイスを IoT Platform に接続します。
デバイス開発プロセスとコードサンプルの詳細については、「Link SDK ドキュメント」をご参照ください。
説明デバイスを開発する際には、デバイスからの設定情報リクエストに応答するために IoT Platform が使用する Topic をサブスクライブするように設定する必要があります:
/sys/${productKey}/${deviceName}/thing/config/get_reply。 -
IoT Platform コンソールで、リモート設定を有効にし、設定情報を編集します。 詳細については、「ユースケース 1」の手順 2 をご参照ください。
-
デバイスは linkkit_invoke_cota_get_config インターフェイスを呼び出して、リモート設定リクエストをトリガーします。
-
デバイスは
/sys/${productKey}/${deviceName}/thing/config/getTopic にリクエストを送信して、最新の設定情報をクエリします。 -
リクエストを受信した後、IoT Platform は最新の設定情報を次の Topic に返します:
/sys/${productKey}/${deviceName}/thing/config/get_reply。 -
デバイスは提供された URL を使用して設定ファイルをダウンロードします。
たとえば、C SDK v3.x は、設定ファイルをダウンロードして更新を完了するための cota_callback コールバック関数を提供します。
説明設定ファイルのダウンロード URL は 30 分間有効です。 デバイスはこの期間内にファイルをダウンロードする必要があります。