複数のデバイスのプロパティ値を同時に設定するには、IoT Platform の一括プロパティ設定タスク機能を使用します。 このトピックでは、タスクの作成方法、実行時に使用するトピックとデータ形式、およびステータスの表示方法について説明します。
前提条件
- デバイスが属するプロダクトに TSL モデルのプロパティが追加されている必要があります。 デバイスのプロパティ識別子が同じである必要があります。 詳細については、「TSL モデルの追加」をご参照ください。
- TSL モデルのプロパティを設定するようにデバイスがプログラムされている必要があります。 詳細については、「TSL モデルのプロパティ設定」をご参照ください。
ワークフロー
- 一括プロパティ設定タスクを作成します。
- IoT Platform コンソール で、インスタンスに移動します。 左側のナビゲーションペインで、 を選択します。 [タスク] ページで、[タスクの作成] をクリックします。
- [タスクの作成] ページで、タスクとサブタスクを設定します。 パラメーター名の横にあるヘルプアイコンをクリックすると、詳細が表示されます。
- タスク設定
パラメーター 説明 タスク名 命名規則に準拠したカスタムタスク名を入力します。 タスクタイプ [一括プロパティ設定タスク] を選択します。 タスクの説明 タスクの目的などの説明を入力します。 これにより、異なるタスクを識別しやすくなります。 対象デバイス、プロダクト、またはグループ タスクの対象デバイスを選択します。 デバイス、プロダクト、またはグループ単位で選択できます。重要 グループ単位でデバイスを選択する場合、動的グループは選択できません。デバイスのタスク実行ルール .json形式のルールファイルをアップロードします。 ファイルサイズは 64 KB を超えることはできません。[テンプレートのダウンロード] をクリックして、ルールファイルのテンプレートを取得できます。
たとえば、プロダクトの TSL モデルのプロパティが Temperature であるとします。 [識別子]は temperature、[データ型]は [double] です。 次にコード例を示します。
{ "params": { "temperature": 30.5 } }- params:プロパティを設定するためのパラメーター。 複数のプロパティを含めることができます。
- temperature と 30.5:プロパティ識別子とその値。 プロパティ識別子は、IoT Platform コンソール でプロダクトの [機能定義] タブで確認できます。
カスタムモジュール
testFb(デフォルトモジュール以外) に属するプロパティtemperatureの場合、パラメーターは"testFb:temperature":30.5になります。
- サブタスク設定
パラメーター 説明 サブタスクの実行レート 1 分あたりにプッシュするサブタスクの数を指定します。 このパラメーターは必須です。 サブタスクの実行タイムアウト このパラメーターはカスタムタスクにのみ適用されます。 設定する必要はありません。 サブタスクの開始時間 このパラメーターはオプションです。 この設定をおこなった時点からの相対時間です。
タスクが作成されると、初期化され、スケジュールされた開始時刻まで待機します。
- タスク設定
- [完了] をクリックします。
- タスクが作成されると、IoT Platform は SetDeviceProperty API または SetDevicesProperty API を呼び出して、プロパティ設定コマンドをデバイスに送信します。 その後、デバイスは IoT Platform に応答を返します。
データフォーマット (下り)
リクエストとレスポンスのトピック
パススルー/カスタム
-
リクエストトピック:
/sys/${productKey}/${deviceName}/thing/model/down_raw -
レスポンストピック:
/sys/${productKey}/${deviceName}/thing/model/down_raw_reply
Alink JSON
-
リクエストトピック:
/sys/${productKey}/${deviceName}/thing/service/property/set -
レスポンストピック:
/sys/${productKey}/${deviceName}/thing/service/property/set_reply
次にメッセージのサンプルを示します。
{ "id": "123", "version": "1.0", "params": { "temperature": "30.5" }, "method": "thing.service.property.set" }params フィールドには、タスクルールファイル内の params フィールドと同じデータが含まれています。
デバイスプロパティを設定するための Alink プロトコルの詳細については、「デバイスプロパティの設定」をご参照ください。
-
- インスタンスの ページで、作成されたタスクとその現在のステータスを表示します。
重要 ステータスが [タイムアウト] のタスクは、再実行をスケジュールすることはできません。
タイマーはタスクの作成時に開始されます。 7 日以内にすべてのサブタスクが完了しない場合、タスクのステータスは [タイムアウト] になります。
次の操作を実行できます。
- [処理中]状態のタスクをキャンセルします。
- タスクの横にある [表示] をクリックして詳細ページを開くと、タスク情報とサブタスクの実行統計を表示できます。
タブ 説明 [タスク情報] タスク情報を表示し、タスクの説明とサブタスクの設定を変更し、デバイスタスクファイルをダウンロードできます。 [タスク概要] ステータス別にグループ化されたサブタスクの統計を表示できます。 -
デバイスの横にある [表示] をクリックして、その [デバイス詳細] ページに移動します。
- [タスク] タブで、デバイスのすべてのタスクのリストを表示します。
- [デバイスログ] タブで、[表示に進む] をクリックします。 [クラウド実行ログ] タブで、[ワークロードタイプ] ドロップダウンリストから [クラウドからデバイスへのメッセージ] を選択して、デバイスタスクログを表示します。
- サブタスクが失敗した場合は、[実行の詳細] をクリックして失敗の原因を表示します。
- サブタスクが [タイムアウト] または [失敗] 状態の場合、対応するステータスボタンをクリックして、その状態のサブタスクのリストを表示します。
リストの上にある [再実行] をクリックすると、現在のタスクでタイムアウトまたは失敗したすべてのサブタスクを再実行できます。
-
デバイスの横にある [表示] をクリックして、その [デバイス詳細] ページに移動します。
- 対象のタスクの横にある [削除] をクリックし、[OK] をクリックします。警告 デバイスタスクを削除すると、関連するすべてのデータが消去されます。 このタスクに依存するサービスがある場合、それらのサービスが利用できなくなったり、ビジネスに影響が及ぶ可能性があります。 慎重に操作してください。