IoT Platformのリモート設定機能を使用すると、デバイスを再起動または停止することなく、リモートデバイスの設定を更新できます。 設定には、システムパラメータとネットワークパラメータが含まれます。
前提条件
リモート設定機能は、使用するLink SDKでサポートされています。 デバイスが設定情報を要求するために使用し、IoT Platformが設定情報をプッシュするために使用するトピックとAlink JSON形式の詳細については、「リモート設定」をご参照ください。
Link SDKを設定する方法については、「Link SDKを使用してデバイスをIoT Platformに接続する」をご参照ください。 IoT PlatformのLink SDK for Cを使用してデバイスを設定する場合、次の項目に注意してください。
C V3.xまたはV2.xのリンクSDK: SDKで
FEATURE_SERVICE_OTA_ENABLED = y
を指定する必要があります。 SDKのlinkkit_cota_init操作を呼び出して、リモート設定を初期化できます。Link SDK for C V4.x: SDKのカスタマイズページで、Advanced CapabilitiesパラメーターをOTAに設定して、デバイスのリモート設定機能を有効にします。 詳細については、「SDKの取得」をご参照ください。
背景情報
更新パッケージをデバイスにプッシュして、システムパラメーター、ネットワークパラメーター、セキュリティポリシーなどのデバイス設定を更新できます。 この方法を使用すると、ファームウェアのバージョンメンテナンスのワークロードが増加し、更新を実装するためにデバイスの実行を停止する必要があります。
上記の問題を解決するために、IoT Platformはリモート設定機能を提供します。 この機能により、デバイスを再起動または停止することなく設定を更新できます。
リモート設定機能は、製品ベースで適用されます。 IoT Platformにアップロードされた設定ファイルは、製品のすべてのデバイスで有効になります。 リモート設定に単一のデバイスを指定することはできません。
特徴
リモート設定機能に関連する次の操作を実行できます。
リモート設定機能を有効または無効にします。
IoT Platformコンソールで設定ファイルを編集し、ファイルのバージョンを管理します。
一度にIoT Platformから複数のデバイスに設定ファイルをプッシュして、設定を更新します。
設定ファイルを要求するデバイスを有効にします。
シナリオ
リモート設定機能は、次のシナリオに適しています。
IoT Platformは、一度に複数のデバイスに設定情報をプッシュします。 各デバイスは、その情報を受信し、その情報に基づいてオンプレミス構成ファイルを修正する。
デバイスがIoT Platformに設定ファイルを要求し、更新を実行します。
次のセクションでは、上記のシナリオの手順について説明します。
シナリオ1: IoT Platformが設定情報をデバイスにプッシュ
IoT Platformコンソールでは、設定ファイルを製品のすべてのデバイスに一度にプッシュできます。
デバイスをIoT Platformに接続します。
Link SDKの設定方法については、Link SDKのドキュメントをご参照ください。
重要デバイスを設定するときは、設定情報のプッシュに使用される次のトピック /sys/${productKey}/${deviceName}/thing/config/pushをサブスクライブします。
IoT Platformコンソールで、設定ファイルを変更します。
IoT Platformコンソールにログインします。
[概要] ページで、[すべての環境] をクリックします。 [すべての環境] タブで、管理するインスタンスを見つけ、インスタンスIDまたはインスタンス名をクリックします。
左側のナビゲーションウィンドウで、 [デバイスログ] を選択します。
プロダクトを選択して [リモート設定] をオンにし、[編集] をクリックします。
[テンプレートの設定] セクションのコードエディターで、設定情報をJSON形式で記述または貼り付けます。
説明設定テンプレートは、製品のすべてのデバイスに適用されます。 IoT Platformコンソールで構成ファイルを1つのデバイスにプッシュすることはできません。
[保存] をクリックし、[OK] をクリックします。
一度に製品のすべてのデバイスに構成ファイルをプッシュできます。 デバイスで設定ファイルを要求できるようにすることもできます。
[一括更新] をクリックし、[更新の確認] をクリックします。
IoT Platformは、設定ファイルを製品のすべてのデバイスにプッシュします。
[バッチ更新] をクリックした後、操作が信頼できる環境で実行されていないとIoT Platformが判断した場合、IoT Platformは検証用のテキストメッセージを送信します。 IoT Platformは、検証が完了した後にのみ、設定ファイルをデバイスに送信します。
重要構成ファイルを製品にプッシュした後、1時間以内に別の構成ファイルを製品にプッシュすることはできません。
IoT Platformコンソールで、設定ファイルをプロダクトに1回だけプッシュできます。 次に前の手順を繰り返して同じ構成ファイルを製品にプッシュすると、プッシュ操作は失敗します。
バッチ更新を停止する場合は、製品のリモート設定をオフにすることができます。 製品のリモート設定をオフにすると、IoT Platformは設定ファイルのプッシュを停止し、デバイスからの更新要求を拒否します。
デバイスは、IoT Platformから設定ファイルのダウンロードURLを受信した後、自動的に設定を更新します。
説明ダウンロードURLは30分間有効です。 デバイスは、ダウンロードURLの有効期間内に構成ファイルをダウンロードする必要があります。
オプション。 構成ファイルのバージョンを表示および管理します。
デフォルトでは、設定ファイルの最新の5つのバージョンがIoT Platformコンソールに保存されます。 新しいバージョンの設定ファイルを編集して保存すると、以前のバージョンが自動的に設定バージョンレコードセクションに表示されます。
設定ファイルの更新時間と内容を表示できます。 更新時間とコンテンツを表示する設定ファイルを見つけ、[操作] 列の [表示] をクリックします。 表示されるダイアログボックスで、コンテンツを表示できます。 [このバージョンに復元] をクリックして、選択したバージョンのコンテンツをコードエディターに復元することもできます。 次に、コンテンツを変更し、一度に複数のデバイスの設定を更新できます。
シナリオ2: デバイスが設定ファイルを要求できるようにする
次の図にプロセスを示します。
デバイスをIoT Platformに接続します。
Link SDKを使用してデバイスを設定する方法とサンプルコードの詳細については、「Link SDKドキュメント」をご参照ください。
説明デバイスを設定するときに、デバイスからの設定情報要求への応答を送信するためにIoT Platformが使用する次のトピックをサブスクライブします: /sys/${productKey}/${deviceName}/thing/config/get_reply。
IoT Platformコンソールで、リモート設定機能を有効にし、設定ファイルを変更します。 詳細については、「」の手順2をご参照ください。シナリオ1: IoT Platformが設定情報をデバイスにプッシュ
linkkit_invoke_cota_get_config操作を呼び出して、リモート設定のリクエストを生成します。
リクエストを次のトピックに送信して、最新の構成情報を照会します。/sys/${productKey}/${deviceName}/thing/config/get。
IoT Platformはリクエストを受信し、最新の設定情報を /sys/${productKey}/${deviceName}/thing/config/get_replyトピックに返します。
次に、デバイスはIoT Platformから送信されたURLを使用して設定ファイルをダウンロードします。
たとえば、Link SDK For C V3.xが提供するcota_callbackコールバック関数を呼び出して、構成ファイルのダウンロードURLを処理し、更新を実行できます。
説明ダウンロードURLは30分間有効です。 デバイスは、ダウンロードURLの有効期間内に構成ファイルをダウンロードする必要があります。