データモデル
重要事項: イベント処理機能(Esper)の新規利用は終了し、ご利用中のお客様におかれましてはApama CEPエンジンへの切替完了後、順次サポートを終了いたします。Apama によるカスタムストリーミング処理機能の詳細は カスタムストリーミング処理ガイド をご覧ください。
本章の記載内容は新規利用終了済みのイベント処理機能(Esper)に関する記述になりますのでご注意ください。
重要事項: イベント処理機能(Esper)の新規利用は終了し、ご利用中のお客様におかれましてはApama CEPエンジンへの切替完了後、順次サポートを終了いたします。Apama によるカスタムストリーミング処理機能の詳細は カスタムストリーミング処理ガイド をご覧ください。
本章の記載内容は新規利用終了済みのイベント処理機能(Esper)に関する記述になりますのでご注意ください。
入力ストリームの構造はすべて同様です。
パラメータ | データ型 | 説明 |
---|---|---|
_type | String | イベントの型。下表にある、それぞれのストリームに適用できる型値を見てください |
_mode | String | Things Cloud に送信されるデータの処理モード。処理モード参照。 |
_origin | String | イベントの作成元。CEPルールで作成されたデータの場合"cep"となります。 |
payload | Object | イベントに含まれる実データ |
型
ストリーム | 型 |
---|---|
ManagedObjectCreated | MANAGED_OBJECT_CREATE |
ManagedObjectUpdated | MANAGED_OBJECT_UPDATE |
ManagedObjectDeleted | MANAGED_OBJECT_DELETE |
EventCreated | EVENT_CREATE |
EventUpdated | EVENT_UPDATED |
EventDeleted | EVENT_DELETE |
MeasurementCreated | MEASUREMENT_CREATE |
MeasurementDeleted | MEASUREMENT_DELETE |
OperationCreated | OPERATION_CREATE |
OperationUpdated | OPERATION_UPDATE |
AlarmCreated | ALARM_CREATE |
AlarmUpdated | ALARM_UPDATE |
ResponseReceived | REQUEST_RESULT |
より簡単にアクセスする方法として、APIに定義されたパラメータを介してアクセスすることで、それぞれのストリームのデータ型の payloadを直接受け取れます。
API | パラメータ | データ型 |
---|---|---|
Inventory | managedObject | ManagedObject |
Events | event | Event |
Measurements | measurement | Measurement |
Device control | operation | Operation |
Alarms | alarm | Alarm |
クラス: com.cumulocity.model.ManagedObject
パラメータ | データ型 | 説明 |
---|---|---|
id | ID | マネージドオブジェクトのID |
type | String | マネージドオブジェクトの型 |
name | String | マネージドオブジェクトの名称 |
lastUpdated | Date | マネージドオブジェクトの最終更新時間 |
owner | String | マネージドオブジェクトの所有者 |
childAssets | Object[] | すべての子アセットのIDの配列 |
childDevices | Object[] | すべての子デバイスのIDの配列 |
assetParents | Object[] | すべての親アセットのIDの配列 |
deviceParents | Object[] | すべての親デバイスのIDの配列 |
親や子への参照の Object[] に含まれるのはIDのみです。キャスト関数を使用できます。例:cast(event.managedObject.childAssets[0], com.cumulocity.model.ID)
.
例:
select
event.managedObject.id,
event.managedObject.type,
event.managedObject.name,
event.managedObject.lastUpdated,
event.managedObject.owner,
event.managedObject.childAssets,
event.managedObject.assetParents,
event.managedObject.deviceParents,
event.managedObject.childDevices
from ManagedObjectCreated event;
クラス: com.cumulocity.model.event.Event
パラメータ | データ型 | 説明 |
---|---|---|
id | ID | イベントのID |
creationTime | Date | イベントがデータベースに作成された時間 |
type | String | イベントの型 |
text | String | イベントのテキスト |
time | Date | イベントが発生した時間(デバイスから送信されたもの) |
source | ID | イベントを生成したデバイスのID |
例:
select
event.event.id,
event.event.creationTime,
event.event.type,
event.event.text,
event.event.time,
event.event.source
from EventCreated event;
クラス: com.cumulocity.model.measurement.Measurement
パラメータ | データ型 | 説明 |
---|---|---|
id | ID | メジャーメントのID |
type | String | メジャーメントの型 |
time | Date | メジャーメントが作成された時間 (デバイスから送信したもの) |
source | ID | メジャーメントを生成したデバイスのID |
例:
select
event.measurement.id,
event.measurement.type,
event.measurement.time,
event.measurement.source
from MeasurementCreated event;
クラス: com.cumulocity.model.operation.Operation
パラメータ | データ型 | 説明 |
---|---|---|
id | ID | オペレーションのID |
creationTime | Date | オペレーションがデータベースに生成された時間 |
status | OperationStatus | オペレーションの現在の状態 |
deviceId | ID | オペレーションが実行されるデバイスのID |
例:
select
event.operation.id,
event.operation.creationTime,
event.operation.status,
event.operation.deviceId
from OperationCreated event;
クラス: com.cumulocity.model.event.Alarm
パラメータ | データ型 | 説明 |
---|---|---|
id | ID | アラームのID |
creationTime | Date | データベースにアラームが生成された時間 |
type | String | アラームのタイプ |
count | long | アクティブな間に報告されたアラームの回数 |
severity | Severity | アラームの重大度 |
status | AlarmStatus | アラームの状態 |
text | String | イベントのテキスト |
time | Date | イベントが生成された時間(デバイスから送信されたもの) |
source | ID | アラームを生成したデバイスのID |
例:
select
event.alarm.id,
event.alarm.creationTime,
event.alarm.type,
event.alarm.count,
event.alarm.severity,
event.alarm.status,
event.alarm.text,
event.alarm.time,
event.alarm.source
from AlarmCreated event;
出力ストリームによって、 Things Cloud のデータに対して CREATE, UPDATE, DELETE を行うことができます。 データの更新や削除を行う場合、対象となるオブジェクトのIDを準備する必要があります。 データを生成する時にイベント処理でIDの設定がされていない場合、Things Cloud がIDを生成します。また、データ生成では(REST APIと同様)特定のパラメータをいくつか設定する必要があります。 下記の既定パラメータに加え、自由にカスタムフラグメントを追加することもできます。カスタムフラグメントの追加については、フラグメントのカスタマイズ セクションをご覧ください。
注記: 独自のID登録はマネージドオブジェクトのみ可能です。
利用可能な出力 |
---|
CreateManagedObject |
UpdateManagedObject |
DeleteManagedObject |
パラメータ | データ型 | 説明 | 必須 |
---|---|---|---|
id | ID または String | マネージドオブジェクトのID | UPDATE, DELETEの場合 |
type | String | マネージドオブジェクトの型 | いいえ |
name | String | マネージドオブジェクト名 | いいえ |
owner | String | マネージドオブジェクトの所有者。イベント処理で生成されたデータで設定されていない場合、所有者は"cep"になります | いいえ |
childAssets | Set |
すべての子アセットのID | いいえ |
childDevices | Set |
すべての子デバイスのID | いいえ |
例:
insert into CreateManagedObject
select
"myManagedObject" as name,
"myType" as type
from EventCreated event;
insert into UpdateManagedObject
select
"12345" as id,
"myNewManagedObject" as name
from EventCreated event;
insert into DeleteManagedObject
select
"12345" as id
from EventCreated event;
利用可能な出力 |
---|
CreateEvent |
EventUpdated |
DeleteEvent |
パラメータ | データ型 | 説明 | 必須 |
---|---|---|---|
id | ID or String | イベントのID | DELETE |
type | String | イベントの型 | CREATE |
text | String | イベントのテキスト | CREATE |
time | Date | イベントが生成された時間(デバイスが送信したもの) | CREATE |
source | ID または String | イベントを生成したデバイスのID | CREATE |
例:
insert into CreateEvent
select
"copiedEventType" as type,
"This event was copied" as text,
event.event.time as time,
event.event.source as source
from EventCreated event;
insert into DeleteEvent
select
"12345" as id
from EventCreated event;
利用可能な出力 |
---|
CreateMeasurement |
DeleteMeasurement |
パラメータ | データ型 | 説明 | 必須 |
---|---|---|---|
id | ID または String | メジャーメントのID | DELETE |
type | String | メジャーメントの型 | CREATE |
time | Date | メジャーメント が生成された時間(デバイスから送信されたもの) | CREATE |
source | ID または String | メジャーメントを生成したデバイスのID | CREATE |
例:
insert into CreateMeasurement
select
"c8y_TemperatureMeasurement" as type,
event.event.time as time,
event.event.source as source,
{
"c8y_TemperatureMeasurement.T.value", 5
} as fragments
from EventCreated event;
insert into DeleteMeasurement
select
"12345" as id
from EventCreated event;
利用可能な出力 |
---|
CreateOperation |
UpdateOperation |
パラメータ | データ型 | 説明 | 必須 |
---|---|---|---|
id | ID または String | オペレーションのID | UPDATE |
status | OperationStatus または String | オペレーションの現在の状態 | CREATE |
deviceId | ID または String | オペレーションの対象となるデバイスのID | CREATE |
例:
insert into CreateOperation
select
OperationStatus.PENDING as status,
event.event.source as deviceId,
{
"c8y_Restart", {}
} as fragments
from EventCreated event;
insert into UpdateOperation
select
"12345" as id,
OperationStatus.EXECUTING as status
from EventCreated event;
利用可能な出力 |
---|
CreateAlarm |
UpdateAlarm |
パラメータ | データ型 | 説明 | 必須 |
---|---|---|---|
id | ID または String | アラームのID | UPDATE |
type | String | アラームの型 | CREATE |
severity | Severity または String | アラームの重大度 | CREATE |
status | AlarmStatus または String | アラームの状態 | CREATE |
text | String | イベントのテキスト | CREATE |
time | Date | イベントが生成された時間(デバイスから送信されたもの) | CREATE |
source | ID または String | アラームを生成したデバイスのID | CREATE |
例:
insert into CreateAlarm
select
"c8y_HighTemperatureAlarm" as type,
event.event.time as time,
event.event.source as source,
CumulocitySeverities.WARNING as severity,
CumulocityAlarmStatuses.ACTIVE as status,
"The device has high temperature" as text
from EventCreated event;
insert into UpdateAlarmn
select
"12345" as id,
CumulocityAlarmStatuses.ACKNOWLEDGED as status
from EventCreated event;
この章で触れるストリームは Things Cloud のデータベースにアクセスせず、外部サービスの起動を行います。
パラメータ | データ型 | 説明 | 必須 |
---|---|---|---|
receiver | String | 受信者のメールアドレス | はい |
cc | String | CCのメールアドレス | いいえ |
bcc | String | BCCのメールアドレス | いいえ |
replyTo | String | 送信メールに対するリプライの受信メールアドレス | はい |
subject | String | メールの件名の行 | はい |
text | String | メール本文 | はい |
receiver, cc, bcc には複数のメールアドレスを設定できます。それには、コンマ区切りですべてのメールアドレスを含んだ文字列を設定してください。
例 receiver1@mail.com,receiver2@mail.com
例:
insert into SendEmail
select
"receiver1@cumulocity.com,receiver2@cumulocity.com" as receiver,
"cc@cumulocity.com" as cc,
"bcc@cumulocity.com" as bcc,
"reply@cumulocity.com" as replyTo,
"Example mail" as subject,
"This mail was sent to test the SendEmail stream in Cumulocity" as text
from AlarmCreated;
このストリームにより、エクスポートを生成することができます。
パラメータ | データ型 | 説明 | 必須 |
---|---|---|---|
enabledSources | List | 構成IDのエクスポート | はい |
subject | String | 電子メールの件名 | いいえ |
text | String | 電子メールの本文。使用可能なプレースホルダ: {host}, {binaryId}.デフォルトのメッセージ: “File with exported data can be downloaded from {host}/inventory/binaries/{binaryId}” | いいえ |
receiver | String | 電子メールの受信者 | いいえ |
例:
insert into SendExport
select
'configurationExportId' as enabledSources,
'subject' as subject,
'text' as text,
'receiver@example.com' as receiver
from
pattern [every timer:at(5, *, *, *, *)]
クラス: com.cumulocity.model.ID
パラメータ | データ型 | 説明 |
---|---|---|
value | String | 実際のID値 |
type | String | IDの型 |
name | String | デバイス名(measurement.source 内のような場合のみデバイスにリンクします |
例:
select
event.measurement.source.value,
event.measurement.source.type,
event.measurement.source.name
from MeasurementCreated event;
クラス: com.cumulocity.model.operation.OperationStatus
OperationStatus は次のような列挙型です:
PENDING
, SUCCESSFUL
, FAILED
, EXECUTING
例:
insert into UpdateOperation
select
event.operation.id.value as id,
OperationStatus.FAILED as status
from OperationCreated event;
クラス: com.cumulocity.model.event.Severity
Severity は CumulocitySeverities で定義される列挙型です。CumulocitySeverities は次の値を提供します:
CRITICAL
, MAJOR
, MINOR
, WARNING
例:
insert into UpdateAlarm
select
event.alarm.id.value as id,
CumulocitySeverities.MAJOR as severity
from AlarmCreated event;
クラス: com.cumulocity.model.event.AlarmStatus
AlarmStatus は、CumulocityAlarmStatuses で定義される列挙型です。CumulocityAlarmStatuses は次の値を提供します:
ACTIVE
, ACKNOWLEDGED
, CLEARED
例:
insert into UpdateAlarm
select
event.alarm.id.value as id,
CumulocityAlarmStatuses.ACKNOWLEDGED as status
from AlarmCreated event;