我正在使用带有MQTT绑定的IOT代理JSON。
我有一个传感器驱动器注册在猎户座使用物联网代理和我创建了订阅。
如果第三方应用程序修改传感器值,orion必须向设备发送物联网代理信息和物联网代理。
例如,如果我在传感器内有3个属性,其中一个属性控制一个阀门。
在orion中,该属性是true或false。
如果属性在orion中被修改,则必须将此属性发送给物联网代理和物联网代理,以关闭或打开阀门。
额外信息:
该软件是Fiware泛型启用的两个组件。
物联网代理JSON:https://github.com/telefonicaid/iotagent-json Fiware-orionCB:https://github.com/telefonicaid/fiware-orion
有可能吗?
发布于 2018-10-04 09:36:17
没有官方教程将JSON IoT代理连接到MQTT上的设备,但对于超轻IoT试剂存在一个非常类似的教程
IoT设备要么是:
这里的问题是不能让Orion直接更新传感器的属性/状态。上下文代理中实体的属性表示传感器的传入状态-即来自该传感器的度量。
例如,对于读取阀门状态的传感器,它可能是"open: "true"
。
为了更新执行器,您需要发送一个命令,而不是修改这个值。
在提供设备时,应该设置命令(假定您已经有了服务):
curl -iX POST \
'http://localhost:4041/iot/devices' \
-H 'Content-Type: application/json' \
-H 'fiware-service: openiot' \
-H 'fiware-servicepath: /' \
-d '{
"devices": [
{
"device_id": "bell001",
"entity_name": "urn:ngsi-ld:Bell:001",
"entity_type": "Bell",
"protocol": "PDI-IoTA-UltraLight",
"transport": "MQTT",
"commands": [
{ "name": "ring", "type": "command" }
],
"static_attributes": [
{"name":"refStore", "type": "Relationship","value": "urn:ngsi-ld:Store:001"}
]
}
]
}
'
然后你可以发送命令去做一些事情(比如敲响铃铛,打开阀门等等)。通过更改命令属性的状态。
curl -iX PATCH \
'http://localhost:1026/v2/entities/urn:ngsi-ld:Bell:001/attrs' \
-H 'Content-Type: application/json' \
-H 'fiware-service: openiot' \
-H 'fiware-servicepath: /' \
-d '{
"ring": {
"type" : "command",
"value" : ""
}
}'
根据配置设备的方式,您可能还需要注册命令 --尽管这可能不是必要的。
https://stackoverflow.com/questions/52499615
复制相似问题