Схема включения-выключения привода/датчика Fiware со статусом

#sensors #fiware #actuator

#датчики #fiware #привод

Вопрос:

Моя конфигурация включает orion, JSON IoT Agent и MongoDB. Я хочу создать привод лампы Fiware, и я также хочу иметь статус вкл / выкл (как датчик).

На данный момент я использую запрос на ИСПРАВЛЕНИЕ с телом (форма ORION): сначала с помощью команды on:

 {
  "on": {
      "type" : "command",
      "value" : ""
  }
}
  

А затем с помощью команды off:

 {
  "off": {
      "type" : "command",
      "value" : ""
  }
}
  

Когда я получаю что-либо из вышеперечисленного, я отвечаю с фиктивного устройства 200 OK.

Приведенное выше в моей конфигурации делает метки включения и выключения ожидающими:

 {
    "id": "urn:ngsi-ld:Lamp:001",
    "type": "Lamp",
    "TimeInstant": "2020-11-04T22:42:37.00Z",
    "category": [
        "actuator",
        "sensor"
    ],
    "controlledProperty": "lamp",
    "function": [
        "onOff",
        "sensing"
    ],
    "off_info": " ",
    "off_status": "PENDING",
    "on_info": " ",
    "on_status": "PENDING",
    "refStore": "urn:ngsi-ld:Store:001",
    "state": " ",
    "supportedProtocol": [
        "JSON"
    ],
    "supportedUnits": "My Unit 2",
    "on": "",
    "off": ""
}
  

Я предполагаю, что я что-то упустил, так есть ли какой-либо ответ, который я должен отправить обратно в json IoT Agent, чтобы заставить один из двух тегов перестать ожидать? Должен ли я обновлять состояние или информацию по пути?

P.S Я ожидал получить такой ответ:

 {
    "id": "urn:ngsi-ld:Lamp:001",
    "type": "Lamp",
    "TimeInstant": "2020-11-04T22:42:37.00Z",
    "category": [
        "actuator",
        "sensor"
    ],
    "controlledProperty": "lamp",
    "function": [
        "onOff",
        "sensing"
    ],
    "off_info": " ",
    "off_status": "PENDING",
    "on_info": " ",
    "on_status": "OFF",
    "refStore": "urn:ngsi-ld:Store:001",
    "state": " ",
    "supportedProtocol": [
        "JSON"
    ],
    "supportedUnits": "My Unit 2",
    "on": "",
    "off": ""
}
  

Ответ №1:

Поток команды можно увидеть ниже:

введите описание изображения здесь

Предполагая, что ваша команда достигла лампы и она включилась, результат необходимо передать обратно в агент Интернета вещей. Для агента интернета вещей JSON полезная нагрузка выглядит примерно так:

 {"on" : "OK"}
  

Где ключ — это имя команды, а значение — статус. Я предполагаю, что ваше устройство просто отвечает 200 OK без полезной нагрузки, поэтому агент IoT не знает, какая команда была запущена.

Обратите внимание, что в случае распределенной сети (например, MQTT или AMPQ) ответ будет размещен асинхронно в другой теме, поэтому команда может быть оставлена в PENDING состоянии на некоторое время.

Комментарии:

1. Отличное объяснение! Ранее я не добавлял полезную нагрузку в свой ответ, и это стало причиной того, что статус ожидания остался навсегда. Есть ли какая-либо ссылка, содержащая допустимые полезные нагрузки агента IoT JSON?

2. Документацию можно найти здесь — однако я ничего не смог найти о полезных нагрузках результатов команд.