#iot #complex-event-processing #esper #cumulocity
#iot #сложная обработка событий #esper #кумулятивность
Вопрос:
Все измерения были получены с отметкой времени (время события), когда измерение было создано. Некоторые из этих измерений являются искусственными, что означает, что они создаются не самим устройством, а правилом CEP, запущенным внутри CoT.
The "normal" measurements have the time format coded as UTC
[{
"id": "12704547",
"data": {
"data": {
"time": "2016-07-25T15:24:11.000Z",
"id": "1152930",
"self": "http://testTenant.c8y.com/measurement/measurements/1152930",
"source": {
"id": "222812",
"self": "http://testTenant.c8y.com/inventory/managedObjects/222812"
},
"type": "tsystems_cumulocity_energymeter_digital_ping",
"Energieverbrauch": {
"Ping": {
"unit": "Wh",
"value": 1
}
}
},
"realtimeAction": "CREATE"
},
"channel": "/measurements/222812"
}, {
"successful": true,
"channel": "/meta/connect"
}]
Но «искусственные» измерения (созданные правилом CEP) используют временную метку с указанием местного времени
[{
"id": "12704578",
"data": {
"data": {
"time": "2016-07-25T17:24:00.952 02:00",
"id": "1152931",
"self": "http://testTenant.c8y.com/measurement/measurements/1152931",
"source": {
"id": "222812",
"self": "http://testTenant.c8y.com/inventory/managedObjects/222812"
},
"type": "tsystems_cumulocity_energymeter_power_consumption",
"Leistung": {
"Aggregation_1min": {
"unit": "W",
"value": 900
}
}
},
"realtimeAction": "CREATE"
},
"channel": "/measurements/222812"
}]
Измерения с одного устройства всегда должны кодироваться в одном и том же часовом поясе (предпочтительно UTC), поскольку разные часовые пояса могут создавать проблемы у клиентов, использующих эти данные.
Я создаю «время» в CEP с помощью
current_timestamp().toDate() as time
Ответ №1:
пожалуйста, используйте:
com.cumulocity.model.util.DateTimeUtils.newUTC(current_timestamp().toDate()) as dateTime,
вместо
current_timestamp().toDate() as time
в вашем правиле cep.
С наилучшими пожеланиями,
Аркадиуш
, Команда поддержки Cumulocity