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