Thing プロパティ
Thing プロパティは Thing に関連するデータポイントの定義に使用されます。たとえば、顧客には名前プロパティと住所プロパティがあります。トラックにはドライバー、積載能力、場所のプロパティがあります。
プロパティはある Thing の現在の状態を把握するための簡単かつ便利な手段です。プロパティには静的なのもの (製造メーカー、型番など) と動的なもの (温度など) があります。アセットの構造、ビジネスプロセス、提供するソリューションに基づいてプロパティを設定します。
プロパティを作成する際には、以下のいずれかの種類のバインドを選択できます。
なし
ローカル Thing のプロパティ。これはデフォルトの設定です。
ローカルバインド
ThingWorx サーバー上で別の Thing に定義されているプロパティにプロパティをリンクします。このプロパティを読み取り専用に設定しても、サーバー上の別のプロパティから値を受信できます。リモートにバインドされているプロパティへのローカルバインドを作成する場合を除き、これはリモートデバイスには使用されません。
リモートバインド
リモートデバイスが初めて ThingWorx サーバーに接続するとき、サーバーはリモートデバイスを対応する Thing にバインドします。リモートデバイスがバインドされた後、そのリモートデバイスで定義されている各プロパティと ThingWorx でデバイスを表す Remote Thing の間にリモートバインドを作成しなければなりません。ThingWorx は、このバインドを使用して、アクティブな WebSocket 接続を介してリモートデバイスとの間で各プロパティ値の更新を送受信します。
* 
ローカル Thing と Remote Thing が同じ名前のプロパティを持つ場合に、リモートプロパティの設定に別のプロパティがバインドされると、そのリモートプロパティはローカルプロパティの値も設定します。
* 
プロパティのバインドのセットアップ (ローカルおよびリモート) については、プロパティバインドを管理を参照してください。
プロパティごとに、名前、説明、および ThingWorx データ型 (ThingWorx ではベースタイプと呼ばれている) があります。ベースタイプに応じて、追加のフィールドが有効になる場合があります。数値や文字列などの単純なスカラー型の場合、デフォルト値などの基本フィールドが追加されます。さらに複雑なベースタイプではさらにオプションが追加されます。たとえば、ベースタイプが「INFOTABLE」の場合、インフォテーブルのデータ構造体を説明するデータシェイプを定義できます。詳細については、「プロパティのベースタイプ」を参照してください。
Thing プロパティ値は、値、タイムスタンプ、および品質 (VTQ) の 3 つの特性で構成されます。VTQ 値は、指定することも自動的に設定することもでき、許容される品質のステータスは QualityStatus クラスにあります。プロパティが設定または更新されるたびに、その VTQ のすべての特性が更新されます。
通常、プロパティは Composer で me.PropertyName = value を設定することによって更新でき、タイムスタンプはサーバーの現在のタイムスタンプを反映させます。履歴更新では、UpdatePropertyValues サービスと UpdatePropertyValuesBatched サービスを使用して、複数のプロパティの値の更新を実行できます。プロパティ値を Null に設定することはできません。これらのサービスの詳細については、以下の表を参照してください。
オプション
説明
UpdatePropertyValues
複数の行から成る単一の values インフォテーブルパラメータを受け入れます。各行には、プロパティの名前、値、品質、および更新タイムスタンプが含まれています。プロパティ値を Null に設定することはできません。
デフォルトでは、プロパティごとに値の更新が別個に実行されます。値をプロパティではなくタイムスタンプによって並べ替えてグループ化するには、platform-settings.jsonBasicSettings セクションで GroupPropertyValuesByTime 設定を true に設定する必要があります。
上記の設定が true に設定されている場合、同じタイムスタンプで更新されたすべてのプロパティのデータトリガーイベント/アラートが一緒に発生します。その結果、これらの一部またはすべてのイベントに登録されているマルチイベント購読はタイムスタンプごとに 1 回だけ実行され、対応するイベントが events パラメータに渡されます。
UpdatePropertyValuesBatched
複数の行から成る単一の batches インフォテーブルパラメータを受け入れます。各行には、プロパティの値と更新タイムスタンプのバッチが含まれています。
batch フィールドの値は、複数の行から成るインフォテーブルです。各行には、プロパティの名前、値、品質が含まれています。プロパティ値を Null に設定することはできません。
プロパティの値はバッチのタイムスタンプによって並べ替えられてグループ化されます。つまり、同じタイムスタンプで更新されたすべてのプロパティのデータトリガーイベント/アラートが一緒に発生します。その結果、これらの一部またはすべてのイベントに登録されているマルチイベント購読はタイムスタンプごとに 1 回だけ実行され、対応するすべてのイベントが events パラメータに渡されます。
* 
カスタムサービスを作成する際に、特定のエンティティの同じプロパティを同時に修正する可能性があるコードを生成しないようにしてください。たとえば、予期しないプロパティ値が発生する可能性があるので、プロパティ値を同時に増減しないでください。同様に、購読内でカウンタのような働きをするプロパティを増分することはよくある誤用であり、結果が不正確になります。
HistoricalDataLogged イベントは、履歴プロパティ値が設定されたときに発生します。たとえば、エンティティの VTQ プロパティの現在の設定されているタイムスタンプが 2020-02-04 20:16:20 であり、そのエンティティの新規バージョンをインポートすることで、2019-12-24 19:00:45 などの古い VTQ プロパティが設定されるとします。この設定により、そのプロパティで HistoricalDataLogged イベントが発生し、そのプロパティでそのイベントに対するすべての購読が実行されます。
アラート
アラートの詳細については、アラートを参照してください。
プロパティの追加情報
プロパティには以下の追加情報を設定できます。
「ベースタイプ」 - 「プロパティのベースタイプ」を参照してください。
「デフォルト値あり」 - Thing が初期化された場合にプロパティのデフォルト値を設定します。
「インデックス」 - これを選択した場合、プロパティはデータベースプロパティ永続化プロバイダに保存されてインデックシングされ、QueryImplementingThingsOptimized サービスを使用したサーチが改善されます。詳細については、「インデックス付きプロパティ」を参照してください。
頻繁に変更されないプロパティだけをインデックシングするようにします。テレメトリデータプロパティをインデックシングしてはなりません。
「インデックス」を選択した場合、「永続化」設定が自動的に選択され、「永続化」設定の編集は無効になります。
「インデックス」設定を後からオフにした場合、「永続化」は選択されたままとなりますが、編集は再び有効になって設定や選択解除ができるようになります。
「インデックス」設定は次の基本タイプでのみサポートされます: STRINGNUMBERINTEGERLONGBOOLEANDATETIMETHINGNAMEUSERNAMEGROUPNAMEHYPERLINKIMAGELINKMASHUPNAMEMENUNAMEDASHBOARDNAMETEXTGUIDNOTIFICATIONCONTENTNAMENOTIFICATIONDEFINITIONNAMESTYLETHEMENAME、および THINGGROUPNAME
「永続化」 - 選択した場合 (true に設定した場合)、変化した各値がデータベースに永続化されます。デッドロックを回避するため、データベースへの永続プロパティの書き込みは非同期で行われます。プロパティ値はただちに設定されますが、データベースへの書き込みは後から非同期で行われます。永続プロパティの値がデータベースに書き込まれる前に以下の検証が行われます。
その Thing がまだ存在しなければならない。
その Thing に ID がなければならない。
その Thing の ID と保留中の書き込みの ID が一致しなければならない。
その Thing が保留中の書き込みと同じ名前のプロパティで定義されていなければならない。
定義済みのプロパティがまだ永続化されていなければならない。
更新と再起動はキューの処理に影響しません。
「読み取り専用」 - 選択した場合 (true に設定した場合)、データは静的であり、ランタイムで書き込むことはできません。値を変更する唯一の方法としては、デフォルト値を変更します。これは静的コンフィギュレーションデータの場合に役立ちます。
「ログ」 - 選択した場合 (true に設定した場合)、データが変化すると、(データ変更タイプに基づいて) プロパティの値が値ストリームに自動的に記録されます。
* 
特定の状況でデータ変更イベントが発生しなかった場合、値ストリームのエントリはログに記録されない可能性がありますが、プロパティ値セットは維持されます。エンティティに対してプロパティを設定することは可能ですが、これらの書き込みを含むキーがいっぱいになり、データベースを空にできないことが原因で、対応する値ストリームの書き込みが削除されることがあります。これは、キューを空にするように設定されている速度よりも受信書き込みの量が多くなった場合に発生することがあります。これは永続化プロバイダごとに platform-settings.json で調整できます。ThingWorx からデータベースへの接続が失われると、キューがバックアップされ、パフォーマンスの高い方法で空にならない場合もあります。
「範囲」 - プロパティの範囲を選択します。
データ変更情報
「データ変更タイプ」
この設定では、プロパティ値の変化によってデータ変更イベントがいつトリガされるかを指定します。プロパティの値に基づいてその他のプロセスを開始しなければならない場合にこれを使用します。各購読ユーザーには、新旧のプロパティ値を含むインフォテーブルとともに変更通知が送信されます。たとえば、DeliverySchedule プロパティに対する変更の購読を設定できます。スケジュールが変わった場合、SMS を介してドライバーに通知できます。
「データ変更タイプ」のオプションは以下のとおりです。
「常時」 - プロパティの値が変化した場合に購読ユーザーに対してイベントを発生させます。
「なし」 - 変更イベントを発生させません。
「オン」 - ほとんどの値で、変化が生じるとイベントがトリガされます。インフォテーブルなどのさらに複雑なベースタイプでは、イベント規則が異なる場合があります。
「オフ」 - 新しい値の評価結果がブール型 false である場合にイベントを発生させます。
「値」 - 数値タイプでは、新しい値がしきい値を超えて変化した場合、変更イベントが発生します。数値以外のタイプでは、値が元の値から少しでも変化したときに変更イベントが発生します。値ストリームへの値の記録は、値の変化が検出された場合にのみ行われます。
廃止予定
「廃止予定」チェックボックスをオンにすると、エンティティが廃止予定になります。エンティティを廃止予定にする必要のあるバージョンを major.minor.patch のフォーマットで「バージョン」に入力します。必要に応じて、コメントを追加します。
リモートバインド情報
次の表に、「バインド」オプションが「リモートバインド」に設定されている場合に使用できるオプションを示します。
オプション
説明
「リモートプロパティ名」
Edge に存在しているプロパティの名前。
* 
このプロパティ名とバインドする Edge Thing のプロパティ名は、同じである必要はありません。
「キャッシュメソッド」
キャッシュメソッドには、バインドする Edge プロパティ値を読み取るために、次の方法が提示されます。
「サーバーキャッシュから読み取り」では、サーバーが Edge プロパティ値をリクエストすることが禁止されます。サーバーから値を取得するだけになります。サーバーにキャッシュされた Edge プロパティ値への更新は、Edge プロパティの「データ変更タイプ」と「スキャン率」(Edge プロパティ値のプッシュ定義) によって決まります。Edge プロパティに正しい設定が行われていない場合、サーバーが Edge プロパティ値を持たず、サーバープロパティのデフォルト値を返してしまう可能性もあります。バインド先の Edge プロパティの「データ変更タイプ」が ALWAYS または VALUE と等しい場合、キャッシュタイプはこの設定がデフォルトになります。
「読み取りのたびにリモートからフェッチ」では、リクエストのたびに Edge から Edge プロパティ値を取得します。このオプションではキャッシュは行われません。バインド先の Edge プロパティの「データ変更タイプ」が NEVER と等しい場合、キャッシュタイプはこの設定がデフォルトになります。
「特定の時間のキャッシュ」は、Edge プロパティへのリクエストの頻度を制御します。最初のリクエストの後、サーバーはその値の Edge プロパティにアクセスし、定義されている秒数にわたって別の Edge プロパティへのリクエストを行いません。その間に Edge プロパティがサーバーの値を (プッシュを介して) 更新する可能性があることに注意してください。
「キャッシュ間隔」
リクエストによって Edge プロパティ値を Edge から取得する前に、サーバーが Edge プロパティ値をキャッシュしておく時間の長さ (秒数)。この値は、常に最初のリクエスト時に Edge から取得されます。
「開始タイプ」
リモートバインドされているプロパティの Thing の起動時または再起動時に、そのプロパティの初期化に使用する値を指定します。この初期化された値は、プロパティの変更イベントをトリガーしません。
「デフォルト値を使用」 - Edge 側の値にかかわらず、プロパティの初期値を指定されたデフォルト値に設定します。プロパティが永続化されている場合、初期値は、データベースに永続された最後の値に設定されます。
「Edge の値を読み取り」 - サーバー上で Thing が再起動された場合でも、サーバーの値と Edge の値が常に同期するように、Edge に対して現在の値をクエリーします。
「プッシュタイプ」
「プッシュタイプ」は強化された Edge Thing プロパティにのみ適用されます。これらのコンポーネントは、その値の変更をサーバーにプッシュできます。この機能は、サーバープロパティのバインドを使用して設定できます。
「値の変更に基づいてプッシュ」: 値の変更しきい値を設定できます。この設定を使用する場合は、「プッシュのしきい値」も設定できます。このしきい値は、Edge からサーバーに新しい値をプッシュするために超える必要があるデッドバンドです。
「プッシュしない」
「常時プッシュ」
「プッシュのしきい値」
このオプションは、「プッシュタイプ」「値の変更に基づいてプッシュ」に設定されている場合に使用できます。プロパティ値のプッシュが発生するための、Edge プロパティ値の変更範囲 (プラスまたはマイナス) を指定します。プロパティ値が指定した値を超えて変更される必要があります。
「切断時」
Remote Thing への接続が一時的に失われた場合の、リモートのプロパティ値バインドの処理方法を指定します。
変更される値を無視する: 切断中。
「すべての変更を 1 つの最終変更値に折り込む」 - 接続が回復したら、最後の変更値を送信します。
* 
「切断時」がサービスを介して「すべての変更を 1 つの最終変更値に折り込む」に設定されている場合、foldType: FOLD を定義します。
「切断時」がサービスを介して「変更される値を無視する」に設定されている場合、foldType: NONE を定義します。
「タイムアウト」
プロパティの読み取りまたは書き込みの実行中に Remote Thing への呼び出しに使用されるタイムアウト。
「システムデフォルトを使用」 - デフォルトは 30 秒です。
「カスタムタイムアウト」「タイムアウト間隔 (秒)」に追加します。
関連リンク
これは役に立ちましたか?