DataTime в Perseo CEP

Я использую CEP для изменения полей даты типа с режимом обновления.

Объекты:

{
  "id":"controller",
  "type":"control",
  "lasmodify":{
    "type":"DataTime",
    "value":""
    }
 }

{
   "id":"Device01",
   "type":"device",
   "id_controller":{
      "type":"Text",
      "value":"controller01"
    }
   "datemodify":{
   "type":"DataTime",
   "value":"2018-12-04T20:05:00.00Z"
   }
 }

Я хочу, чтобы подписка Device01 снималась, атрибут controller01 lasmodify будет изменен с помощью datemodify объекта device01.

Заранее большое спасибо С наилучшими пожеланиями.

1 ответ

Если я правильно понял, вы хотите обновить контроллер, когда CEP получает уведомление об изменении устройства. Решение должно быть чем-то похожим на это правило:

{
   "name":"update_rule",
   "text":"select ev.controler? as controlerID, ev.datemodify? as newDate, \"update_rule\" as ruleName from pattern [every ev=iotEvent(type=\"device\")]",
   "action":{
      "type":"update",
      "parameters":{
          "id":"${controlerID}",
          "type":"control",
          "attributes": [
                {
                "name":"lasmodify",
                "type":"DataTime"
                "value":"${newDate}"
                }
          ]
      }
   }
}

Я не знаю, какую версию Perseo вы используете, но используя последний образ fiware для perseo-fe и perseo-core, вы можете опустить ruleName и использовать NGSIv2

{
   "name":"update_rule",
   "text":"select ev.controler? as controlerID, ev.datemodify? as newDate from pattern [every ev=iotEvent(type=\"device\")]",
   "action":{
      "type":"update",
      "parameters":{
          "id":"${controlerID}",
          "type":"control",
          "version": "2",
          "attributes": [
                {
                "name":"lasmodify",
                "type":"DataTime"
                "value":"${newDate}"
                }
          ]
      }
   }
}
Другие вопросы по тегам