デバイス プロパティとプロパティ定義に関する作業

完了

プロパティ定義を使用すると、IoT デバイスに関連付けられた特定のプロパティの事前定義が簡単になります。 プロパティ定義を利用できる 2 つのプライマリ領域があります。

  • デバイス ツインとの同期と通信を支援

  • コマンド定義でのプロパティの設定の効率化。

プロパティ定義には、次の情報が含まれています。

  • 名前: 特定のプロパティの名前。 上の例では、メッセージは名前として設定されます。これが定義対象のプロパティであるためです。

  • 種類: プロパティの種類を定義します。 6 つの異なる種類から選択できます。

種類 説明
文字列 プロパティに渡す値がテキスト ベースの値である場合に使用されます。 追加プロパティには、最大長と既定値が含まれています。 例: メッセージのコンテンツはテキストであるため、メッセージ プロパティでは文字列型が使用されます。
日付と時間 プロパティに渡す値が日付や時刻に基づく場合に使用されます。 追加プロパティには、最小値と最大値が含まれています。
ブール値 可能な 2 つの値のいずれかをプロパティに渡す場合に使用されます。 追加プロパティには、true の場合の表示名、false の場合の表示名、および既定値が含まれています。
整数 プロパティに整数を渡す場合に使用されます。 追加プロパティには、最小値、最大値、および既定値が含まれています。
10 進数 プロパティに 10 進数を渡す場合に使用されます。 追加プロパティには、最小値、最大値、および既定値のほか、小数点以下の精度が含まれています
オブジェクト 渡す項目がオブジェクトの場合に使用されます。 例: 読み取り値プロパティには、温度と湿度の両方のプロパティが含まれる場合があります。 読み取り値プロパティをオブジェクトの種類に設定することで、そのプロパティの特定のサブプロパティを定義できるようになります。 (詳細については、後述します)
  • 親プロパティ: プロパティが別のプロパティの親プロパティであることを指定します。

  • 編集可能: プロパティがコマンド定義で使用される場合に編集可能になるかどうかを指定します。

  • 表示: これがコマンド定義に表示されない非表示プロパティであるかどうかを指定します。

  • 追加プロパティ: そのプロパティの種類に固有の定義可能な追加項目。 例: メッセージ プロパティと併用される既定のテキスト文字列。 (追加プロパティは、選択した種類によって異なります。)

デバイス ツインでのプロパティ定義の使用

デバイス タグを使用して IoT デバイスの特定の場所を定義するとします。 通常、デバイスはビル内の特定の階にあります。 プロパティ定義を使用してタグを定義できます。 デバイス カテゴリにそのタグが追加されると、そのカテゴリに存在するすべてのデバイスにそれが自動的に入力されます。

デバイス ツインとプロパティ定義を使用した [デバイス設定] のスクリーンショット。

[デバイス カテゴリ] にプロパティ定義を追加するときに、それをタグとしてマークするかどうかを選択できます。 タグとしてマークすると、デバイスではデバイス タグとして表示されます。 タグとしてマークしない場合、[デバイス設定] として表示されます。

[はい] として記録された [タグとしてマーク] 機能のスクリーンショット。

コマンド定義でのプロパティ定義の使用

IoT 通知の一部として送信されるデータを見る、またはデバイスにリモート コマンドを送信しているときに、その通知データや送信されるメッセージに複数のプロパティが関連付けられていることがわかります。 プロパティは、イベントに関連するパラメーターを表示または提供する名前/値のペアを表します。

例:

  • 温度関連の IoT デバイス通知には、デバイス ID、読み取りの種類、実際の読み取り値、またはその超えたしきい値が含まれる場合があります。

  • IoT デバイスに送り返すコマンドに、送信されるメッセージ、またはプロパティを設定する特定の値が含まれている場合があります。

次の画像は、デバイスに送信されるコマンド (左の画像) と IoT 通知 (右の画像) の両方に対してプロパティがどのように表示されるかを示しています。

デバイスおよび [IoT 通知] に送信される両方のコマンドのプロパティのスクリーンショット。

前の学習ユニットで説明したように、コマンド定義を使用して、使用したい特定のパラメーターをあらかじめ定義した事前定義済みコマンドを作成できます。 これは、プロパティ定義を作成し、それらのプロパティ定義を特定のコマンド定義に関連付けることによって行われます。 プロパティ定義により、コマンドに渡されるプロパティに関する詳細が定義されます。

次のコマンドの例を見てみましょう。

{"CommandName":"Notification","Parameters":{"Message":"Technician has been dispatched"}}

パラメーターは、コマンドに含める特定のプロパティです。 "メッセージ" プロパティはデバイスにメッセージを送信することを示し、テキストはメッセージに含めるメッセージです。 上記のメッセージ プロパティは、プロパティ定義を使用できる適切な場所の例です。

親プロパティに関する作業

多くの場合、プロパティにはプロパティ定義全体を構成する複数のサブプロパティがあります。 この場合、親のプロパティを使用してプロパティを複数のサブプロパティに関連付けることができます。

次の例を見てみましょう。

{"CommandName":"Set Values","Parameters":{"Reading":{"Temperature":"30","Humidity":"30"}}}

この例では、読み取り値は温度および湿度の親プロパティと見なされます。 読み取り値の型をオブジェクトに設定します。 これは、読み取り値プロパティがオブジェクトと見なされる必要があり、全体的な値を構成するその他のプロパティを含む可能性があることを定義します。

[オブジェクト] に設定された [親プロパティ] および [タイプ] としての [読み取り] のスクリーンショット。

[温度] と [湿度] の両方のプロパティ定義に、[読み取り] プロパティ定義が親プロパティとして設定されます。 読み取りプロパティを活用する必要があるコマンド定義を作成するとき、必要なのは、その読み取りプロパティ定義への参照を含めることだけです。 読み取りにオブジェクトの種類があり、温度と湿度の両方に読み取りが親プロパティとして含まれているため、読み取りプロパティが使用されると、必ず温度と湿度の両方のプロパティも追加されます。

次の画像は、読み取り値プロパティ定義を含むコマンド定義が使用されている場合にコマンド メッセージがどのようになるかを示しています。

読み取りプロパティ定義を含むコマンド定義ありコマンド メッセージのスクリーンショット。

パラメーターの下に、その読み取りプロパティが含まれていることを確認できます。 読み取り値プロパティには、定義済みの既定値に基づいて設定される初期値に含まれている温度プロパティと湿度プロパティの両方があります。 コマンドが作成されたら、これらの個々の値を必要に応じて操作できます。

プロパティ定義を使用して [デバイス タグ] または [デバイスの設定] を設定する場合、この同じ思考プロセスが適用されます。

次の潜在的なデバイス タグ例を見てみましょう。

{"deploymentlocation":{"building":"34","floor":"3"}}

ここでは、展開先は、建物および階に対する親プロパティであると見なされます。 展開場所の [タイプ] を [オブジェクト] に設定し、[建物] と [階] の両方で展開場所が親として定義されています。

建物および階に対する親プロパティとしての展開先のスクリーンショット。