Sensor Data DB If Zero

説明

SensorDataDBIfZeroコンポーネントは1行も検索されなかった場合に入力ペイロード(cv.Payload)を出力ペイロード(cv.Payload)として出力します。1行でもレコードがあった場合は、何も出力しません。

プロパティで指定された内容で、センサーDBを検索しマッチしたレコード毎にフィルター式を実行します。マッチしたレコードは"Value"変数で参照することが可能です。式を実行した結果がtrueだった場合は通過しますが、1行でもレコードがあった場合に該当するので、出力ペイロード(cv.Payload)はありません。DBからの検索で0件でもSensorDataDBIfZeroは入力ペイロードを出力しますが、DBからの検索でなにかレコードがあっても式の実行結果が全てfalseでも入力ペイロード(cv.Payload)を出力します。

出力ペイロード説明
cv.Payload1行も検索されなかった場合に入力ペイロードを出力ペイロードとして出力します
出力例{
"AreaId":"c753b341-c856-42fc-9170-69edaa5d8246",
"AreaName":"オフィス",
"Data":460,
"DataId":"f969129db906491e876cef43afb4fcb8",
"DataType":"double",
"KindId":"7e87a819-135e-40d3-9d5f-c0330f38ec4e",
"KindName":"Gravio-CO2",
"LayerId":"1efe01a1-41c7-4d21-bd98-d6bc87af74bd",
"LayerName":"CO2",
"PhysicalDeviceId":"DE-8D-06-FE-FF-57-B5-15",
"PhysicalDeviceName":"オフィスCO2",
"Timestamp":"2021-09-13T00:26:42.594348934Z",
"VirtualDeviceId":"2ce70be6-257b-4854-9680-af1f02d575b4"
}

TimestampはJSON Object型の中では日時型として出力されます。

各レコード毎に、コンポーネント変数( cv.Id )にレコードID、コンポーネント変数( cv.Count )に一致したレコーとを1して、IDを順にインクリメントした番号が付与されます。

フィルター式例

Value.Data > 123

Value.Data.key1 == "abc" && Value.Data.key2 > 123

センサデータのフィールド

プロパティー名説明
AreaIdエリアID
AreaNameエリア名
LayerIdレイヤーID
LayerNameレイヤー名
KindId種別ID
KindName種別名
TimeStampデータの受信日時
Dataデータ
DataTypeデータタイプ
DataIdデータID
VirtualDeviceId論理デバイスID
PhysicalDeviceIdセンサーの物理デバイスID
PhysicalDeviceNameセンサーの物理デバイス名

コンポーネントプロパティ

プロパティー名説明
エリアエリア名を指定
レイヤーレイヤー名を指定
デバイスIDデバイスIDを指定
From Previous取得する数(例 From Previousが10でタイムスケールがレコードの場合は最新の10件を取得)
タイムスケール取得する最新データの単位(レコード, ミリ秒,秒,分,時,日,週,月,年から選択). cp.Timescaleの値としては "Records" , "Milliseconds" , "Seconds" , "Minutes", "Hours" , "Days" , "Weeks", "Months" , "Years" のいずれか
全てのレコードFrom PreviousとTimescaleの条件を無効にして全てのレコードを取得
時間を丸める直近の秒,分,時,日,週,月,年で丸めた時刻からコンポーネントが実行される直前までのデータを取得。データを丸めて取得(下記を参照)タイムスケールがレコードの時は無効
フィルター式Filterコンポーネントのように式でペイロードを出力させるかを選べるようにします

時間を丸める

コンポーネントが実行された日時を指定されたタイムスケール(取得する最新データの単位)で丸め、From Previous(取得する数)で指定された値分遡ってデータを取得します。

例)
  • 分単位の場合:
    コンポーネントが実行された日時が 2021-01-20 12:15:15、タイムスケールが 分、From Previousが 5の場合には
    2021-01-20 12:15:00より5分遡ったデータ(2021-01-20 12:10:00〜2021-01-20 12:15:00未満のデータ)を取得
  • 時単位の場合:
    コンポーネントが実行された日時が 2021-01-20 12:15:15、タイムスケールが 時、From Previousが 24の場合には
    2021-01-20 12:00:00より24時間遡ったデータ(2021-01-19 12:00:00〜2021-01-20 12:00:00未満のデータ)を取得
  • 日単位の場合:
    コンポーネントが実行された日時が 2021-01-20 12:15:15、タイムスケールが 日、From Previousが 1の場合には
    2021-01-20 00:00:00より1日遡ったデータ(2021-01-19 00:00:00〜2021-01-20 00:00:00未満のデータ)を取得

注意:タイムスケールがレコードの時は時間を丸めるは無効となりレコード件数で取得されます。

レコード単位の例)

コンポーネントが実行された日時が 2021-01-20 12:15:15、タイムスケールが レコード、From Previousが 10の場合には
2021-01-20 12:15:15より10件遡ったデータを取得