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" }
.
我们有一个基于 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" }
.