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
状态。
我的配置包括 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
状态。