JSON 的 IoT 代理 - 传感器发送已在 NGSI 中的测量值

IoT Agent for a JSON - Sensor sends measures already in NGSI

我们有一个基于 FIWARE 的架构,它使用 IoT Agent for a JSON based protocol

我们有一个发送测量值的传感器,其格式已经是 NGSI。

我以为agent的行为是识别NGSI格式并对数据进行操作,使最终结果正确。

相反,当前的结果是 Orion 上的值变成了完整的 NGSI。

例如

Orion 实体的属性:

"altitude": {
    "type": "number",
    "value": "12",
    "metadata": {
        "TimeInstant": {
            "type": "ISO8601",
            "value": "2019-10-16T09:01:40.460Z"
        }
    }
}

发送:

{
    "altitude": {
        "value": "22"
      }
  }

结果:

  "altitude": {
        "type": "number",
        "value": {
            "value": "22"
        },
        "metadata": {
            "TimeInstant": {
                "type": "ISO8601",
                "value": "2019-10-16T09:08:50.307Z"
            }
        }
    }

是否正确?

IOTA 的目的(嗯,其中之一 :) 是将设备发送的测量值转换为 Context Broker 中的 NGSI 信息。因此,在设备 IOTA 级别,设备发送:

{ <measure_name>: <measure_value> }

所以 IOTA 寻找对应于 <measure_name> 的属性(在不存在映射的情况下,对应于 <measure_name>)并用 <measure_value> 更新它的值。

在你的例子中,我理解 <measure_name>"altitude"<measure_value> 是一个 JSON 对象 { "value": "22" }。我也知道您没有适当的度量属性映射,因此 Context Broker 中的属性名称是 "altitude",它接收值为 { "value": "22" }.

的更新

所以一切似乎都很正常,虽然也许你想要的是在设备-IOTA 接口上发送 "22" 作为值而不是 { "value": "22" }.