ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ – IDAS: проблема с зарегистрированным устройством

У меня проблемы с IDAS Iotagent. Используя агент MQTT Ultralight, в зависимости от того, как я регистрирую устройство, когда агент получает чтение, происходит сбой службы iotagent, а связанный объект в брокере контекста не обновляется.

Правильное поведение – следующее. Если создать службу:

curl -X POST 172.21.0.23:8090/iot/services \
-i  \
-H "Content-Type: application/json" \
-H "Fiware-Service: red_entrada _1" \
-H "Fiware-ServicePath: /Prueba" \
-d '{
    "services": [
    {
        "apikey": "pass_1", 
        "cbroker": "http://172.21.0.23:1026", 
        "entity_type": "disp_entrada_1", 
        "resource": "/iot/mqtt"
    }]}'

... и устройство, устанавливающее входящие атрибуты и имя для каждого из них:

curl -X POST 172.21.0.23:8090/iot/devices \
-i  \
-H "Content-Type: application/json" \
-H "Fiware-Service: red_entrada _1" \
-H "Fiware-ServicePath: /Prueba" \
-d '{
"devices":[
{
    "device_id": "AC_2", 
    "entity_name":"disp_entrada_1:AC_2",
    "protocol":"PDI-IoTA-MQTT-UltraLight", 
    "entity_type": "disp_entrada_1", 
    "timezone": "Europe/Madrid", 
    "attributes": [ 
    {
        "object_id": "LUX", 
        "name": "LUX_1", 
        "type": "string" 
    }, 
    { 
        "object_id": "LUM", 
        "name": "LUM_1",
        "type": "string" }, 
    { 
        "object_id": "HUMB", 
        "name": "HUMB_1", 
        "type": "string" 
    }, 
    { 
        "object_id": "TCB", 
        "name": "TCB_1", 
        "type": "string" 
    }, 
    { 
        "object_id": "IN_TEMP", 
        "name": "IN_TEMP_1", 
        "type": "string" }, 
    { 
        "object_id": "BAT", 
        "name": "BAT_1", 
        "type": "string" 
    } 
]}]}'

В результате в брокере контекста создается новая сущность, и по мере поступления показаний к агенту эта сущность обновляется:

{
        "_id" : {
                "id" : "disp_entrada_1:AC_2",
                "type" : "disp_entrada_1",
                "servicePath" : "/Prueba"
        },
        "attrNames" : [
                "TimeInstant",
                "LUX_1",
                "LUM_1",
                "HUMB_1",
                "TCB_1",
                "IN_TEMP_1",
                "BAT_1"
        ],
        "attrs" : {
                "TimeInstant" : {
                        "value" : "2016-03-14T08:11:49.810465Z",
                        "type" : "ISO8601",
                        "creDate" : 1457943015,
                        "modDate" : 1457943109
                },
                "LUX_1" : {
                        "value" : "464.000",
                        "type" : "string",
                        "md" : [
                                {
                                        "name" : "TimeInstant",
                                        "type" : "ISO8601",
                                        "value" : "2016-03-14T08:11:49.687585Z"
                                }
                        ],
                        "creDate" : 1457943103,
                        "modDate" : 1457943109
                },
                "LUM_1" : {
                        "value" : "2.694",
                        "type" : "string",
                        "md" : [
                                {
                                        "name" : "TimeInstant",
                                        "type" : "ISO8601",
                                        "value" : "2016-03-14T08:11:49.718131Z"
                                }
                        ],
                        "creDate" : 1457943103,
                        "modDate" : 1457943109
                },
                "HUMB_1" : {
                        "value" : "38.7",
                        "type" : "string",
                        "md" : [
                                {
                                        "name" : "TimeInstant",
                                        "type" : "ISO8601",
                                        "value" : "2016-03-14T08:11:49.748719Z"
                                }
                        ],
                        "creDate" : 1457943103,
                        "modDate" : 1457943109
                },
                "TCB_1" : {
                        "value" : "21.31",
                        "type" : "string",
                        "md" : [
                                {
                                        "name" : "TimeInstant",
                                        "type" : "ISO8601",
                                        "value" : "2016-03-14T08:11:49.779327Z"
                                }
                        ],
                        "creDate" : 1457943103,
                        "modDate" : 1457943109
                },
                "IN_TEMP_1" : {
                        "value" : "21.00",
                        "type" : "string",
                        "md" : [
                                {
                                        "name" : "TimeInstant",
                                        "type" : "ISO8601",
                                        "value" : "2016-03-14T08:11:49.810465Z"
                                }
                        ],
                        "creDate" : 1457943103,
                        "modDate" : 1457943109
                },
                "BAT_1" : {
                        "value" : "97",
                        "type" : "string",
                        "md" : [
                                {
                                        "name" : "TimeInstant",
                                        "type" : "ISO8601",
                                        "value" : "2016-03-14T08:11:49.230590Z"
                                }
                        ],
                        "creDate" : 1457943103,
                        "modDate" : 1457943109
                }
        },
        "creDate" : 1457943015,
        "modDate" : 1457943109
}

Проблема возникает, когда я регистрирую новое УСТРОЙСТВО и использую в качестве имени для атрибутов то же значение «object_id» (имя атрибута во входящих данных MQTT. Конечно, в этом сценарии нет необходимости регистрировать УСТРОЙСТВО). Например:

curl -X POST 172.21.0.23:8090/iot/devices \
-i  \
-H "Content-Type: application/json" \
-H "Fiware-Service: red_entrada_2" \
-H "Fiware-ServicePath: /Prueba" \
-d '{
"devices":[
{
    "device_id": "AC_2", 
    "entity_name":"disp_entrada_1:AC_2",
    "protocol":"PDI-IoTA-MQTT-UltraLight", 
    "entity_type": "disp_entrada_1", 
    "timezone": "Europe/Madrid", 
    "attributes": [ 
    { 
        "object_id": "LUX", 
        "name": "LUX", 
        "type": "string" 
    }, 
    { 
        "object_id": "LUM", 
        "name": "LUM", 
        "type": "string"
    },
    { 
        "object_id": "HUMB", 
        "name": "HUMB", 
        "type": "string" 
    }, 
    { 
        "object_id": "TCB", 
        "name": "TCB", 
        "type": "string" 
    }, 
    { 
        "object_id": "IN_TEMP", 
        "name": "IN_TEMP", 
        "type": "string" 
    }, 
    { 
        "object_id": "BAT", 
        "name": "BAT", 
        "type": "string" 
    } 
]}] }'    

В этом случае в брокере контекста также создается новый объект, но когда приходят показания, объект не обновляется, и происходит сбой службы IoTAgent. Статус объекта:

{
        "_id" : {
                "id" : " disp_entrada_1:AC_2",
                "type" : " disp_entrada_1",
                "servicePath" : "/Prueba"
        },
        "attrNames" : [
                "TimeInstant"
        ],
        "attrs" : {
                "TimeInstant" : {
                        "type" : "ISO8601",
                        "creDate" : 1457948167,
                        "modDate" : 1457948167,
                        "value" : "2016-03-14T09:36:07.432814Z"
                }
        },
        "creDate" : 1457948167,
        "modDate" : 1457948167
}

Я не вижу никакой логики в этом поведении. Если я не зарегистрирую устройство заранее, сущность будет создана автоматически, а атрибуты будут иметь в качестве имени значение поля «object_id» (именно это я пытался сделать во втором примере).

¿Может ли это быть связано с проблемой установки агента или менеджера?


person Julen    schedule 14.03.2016    source источник


Ответы (1)


На самом деле это ошибка, когда вы связываете параметр «t» для перевода с тем же («t»), что приводит к бесконечному циклу.

Лучшее решение — не запрашивать перевод, и тогда он будет сохранен как оригинал ("t").

В следующих версиях эта ошибка будет исправлена.

Благодарим за использование IDAS и приносим извинения за поздний ответ!

person Carlos Ralli    schedule 12.04.2016