Fiware Actuator/Sensor On Off 模式与状态

Fiware Actuator/Sensor On Off pattern with status

我的配置包括 orion、IoT Agent JSON 和 mongoDB。 我想构建一个 Fiware Lamp 执行器,我也想拥有 on/off 状态(作为传感器)。

目前我使用带有正文的 PATCH 请求(ORION 格式): 首先使用命令:

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

然后关闭命令:

{
  "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": ""
}

我想我在途中遗漏了一些东西,那么是否有任何响应必须发回 IoT 代理 json 才能使两个标签之一停止挂起?我必须在此过程中更新状态或信息吗?

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": ""
}

命令流程如下所示:

假设您的命令已到达 lamp 并且已打开,则需要将结果传回 IoT 代理。对于 JSON 物联网代理,有效负载看起来像这样:

{"on" : "OK"}

其中键是命令的名称,值是状态。我的猜测是您的设备只是在没有负载的情况下响应 200 OK,因此 IoT 代理不知道触发了哪个命令。

请注意,在分布式网络(例如 MQTT 或 AMPQ)的情况下,响应将异步发布到另一个主题上,因此该命令可能会在一段时间内处于 PENDING 状态。