SensorDataDBコンポーネントは、CoordinatorまたはHubKitに格納されているセンサデータを取得することができます。
CoordinatorまたはHubKitに格納されているSensorDataDBからデータをクエリーし、各レコードを1行毎に次のコンポーネントに渡します。
プロパティで指定された内容で、センサーDBを検索しマッチしたレコード毎にフィルター式を実行します。マッチしたレコードは“Value“変数で参照することが可能です。式の実行結果がtrueの時は、そのレコードは通過し出力ペイロード(cv.Payload
)となります。
出力ペイロード | 説明 |
---|---|
cv.Payload |
条件に一致した各レコードをJSON Object型をレコード毎に出力します。 |
出力例{
"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
センサデータのフィールド
フィールド名 | 説明 |
---|---|
HubId | HubId(Coordinatorからデータを取得する場合) |
AreaId | エリアID |
AreaName | エリア名 |
LayerId | レイヤーID |
LayerName | レイヤー名 |
KindId | 種別ID |
KindName | 種別名 |
TimeStamp | データの受信日時 |
Data | データ |
DataType | データタイプ |
DataId | データID |
VirtualDeviceId | 論理デバイスID |
PhysicalDeviceId | センサーの物理デバイスID |
PhysicalDeviceName | センサーの物理デバイス名 |
コンポーネントプロパティ
プロパティー名 | 説明 |
---|---|
Coordinator | Coordinatorのデータを取得する場合に指定 |
HubId | HubId(Coordinatorからデータを取得する場合)を指定 |
エリア | エリア名を指定 |
レイヤー | レイヤー名を指定 |
デバイスID | デバイスIDを指定 |
From Previous | 取得する数(例 From Previousが10でタイムスケールがレコードの場合は最新の10件を取得) |
タイムスケール | 取得する最新データの単位(レコード, ミリ秒,秒,分,時,日,週,月,年から選択). cp.Timescaleの値としては "Records" , "Milliseconds" , "Seconds" , "Minutes" , "Hours" , "Days" , "Weeks" , "Months" , "Years" のいずれか |
全てのレコード | From Previousとタイムスケールの条件を無効にして全てのレコードを取得 |
時間を丸める | データを丸めて取得(下記を参照)タイムスケールがレコードの時は無効 |
フィルター式 | 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件遡ったデータを取得
Need more help with this?
Join our slack community for help