Fiware 如何向Orion发出命令

Fiware 如何向Orion发出命令,fiware,fiware-orion,Fiware,Fiware Orion,我有一个相机,我想给它发送一个拍摄快照的命令。我的设置是Orion Mosquito设备 但是,当我尝试发出命令时,IoAgent没有收到任何内容 我用于(向代理)配置设备的请求: 在代理上创建的设备: { "device_id":"actuatorCamera002", "service":"actuatoriot", "service_path":"/", "entity_name":"urn:ngsi-ld:ActuatorCamera:002", "en

我有一个相机,我想给它发送一个拍摄快照的命令。我的设置是Orion Mosquito设备

但是,当我尝试发出命令时,IoAgent没有收到任何内容

我用于(向代理)配置设备的请求:

在代理上创建的设备:

{  
   "device_id":"actuatorCamera002",
   "service":"actuatoriot",
   "service_path":"/",
   "entity_name":"urn:ngsi-ld:ActuatorCamera:002",
   "entity_type":"Actuator",
   "transport":"MQTT",
   "attributes":[  

   ],
   "lazy":[  

   ],
   "commands":[  
      {  
         "object_id":"screen",
         "name":"Screen",
         "type":"command"
      }
   ],
   "static_attributes":[  

   ],
   "protocol":"PDI-IoTA-UltraLight"
}
在Orion上创建的实体:

{
    "id": "urn:ngsi-ld:ActuatorCamera:002",
    "type": "Actuator",
    "Screen_info": {
        "type": "commandResult",
        "value": "aaa",
        "metadata": {}
    },
    "Screen_status": {
        "type": "commandStatus",
        "value": "UNKNOWN",
        "metadata": {}
    },
    "TimeInstant": {
        "type": "ISO8601",
        "value": " ",
        "metadata": {}
    }
}
我已经尝试发送关于实体值的补丁请求,但似乎没有任何东西被推送到IoAgent json

(我一直在使用IoAgent和Orion进行传感器测量,一切正常。)

编辑:

获取v2/注册

[
    {
        "id": "5d3af2188d657958a5cefec1",
        "expires": "2019-08-25T12:29:12.00Z",
        "dataProvided": {
            "entities": [
                {
                    "id": "urn:ngsi-ld:ActuatorCamera:002",
                    "type": "Actuator"
                }
            ],
            "attrs": [
                "Screen"
            ]
        },
        "provider": {
            "http": {
                "url": "http://localhost:4041"
            },
            "supportedForwardingMode": "all",
            "legacyForwarding": true
        },
        "status": "active"
    }
]
多亏了,我发现我在发布补丁时使用了错误的命令名

发出命令的正确请求是:

curl -X PATCH \
  http://<contextBrokerIp>:1026/v2/entities/urn:ngsi-ld:ActuatorCamera:002/attrs \
  -H 'fiware-service: actuatoriot' \
  -H 'fiware-servicepath: /' \
  -d '{
  "Screen": {
      "type" : "command",
      "value" : ""
  }
}'
curl-X面片\
http://:1026/v2/entities/urn:ngsi-ld:ActuatorCamera:002/attrs\
-H'固件服务:actuatoriot'\
-H'固件服务路径:/'\
-d'{
“屏幕”:{
“类型”:“命令”,
“值”:”
}
}'

请编辑您的问题以添加此额外信息:1)与“屏幕”命令相关联的注册(它应该在Orion上的
GET/v2/registrations
的结果中),2)您用于更新Orion中属性的确切补丁命令(url+标题+负载)。谢谢很高兴知道你解决了它!:)注意:建议在要转发的请求中使用
?键入
(请参阅:“在转发时,NGSIv2更新/查询中的任何类型的实体都匹配没有实体类型的注册。但是,相反的情况不起作用,因此如果您有类型的注册,那么您必须在NGSIv2更新/查询中使用?type以获得匹配”)。但在您的情况下,您似乎不需要它(可能是因为注册没有使用type,GET/v2/registrations会显示它)。
curl -X PATCH \
  http://<contextBrokerIp>:1026/v2/entities/urn:ngsi-ld:ActuatorCamera:002/attrs \
  -H 'fiware-service: actuatoriot' \
  -H 'fiware-servicepath: /' \
  -d '{
  "Screen": {
      "type" : "command",
      "value" : ""
  }
}'