Fiware 无法在IoT代理软件中注册命令

Fiware 无法在IoT代理软件中注册命令,fiware,agent,broker,Fiware,Agent,Broker,我使用的是直接运行Ultralight的IoT代理(不是作为停靠组件)。我能够注册新设备,它被映射到Orion上下文代理中。但是,我有一个问题,即注册执行器需要配置数据中的命令。我使用: curl -iX POST \ 'http://MYIP:4061/iot/devices' \ -H 'Content-Type: application/json' \ -H 'fiware-service: openiot' \ -H 'fiware-servicepath: /' \

我使用的是直接运行Ultralight的IoT代理(不是作为停靠组件)。我能够注册新设备,它被映射到Orion上下文代理中。但是,我有一个问题,即注册执行器需要配置数据中的命令。我使用:

curl -iX POST \
  'http://MYIP:4061/iot/devices' \
  -H 'Content-Type: application/json' \
  -H 'fiware-service: openiot' \
  -H 'fiware-servicepath: /' \
  -d '{
  "devices": [
    {
      "device_id": "lamp003",
      "entity_name": "urn:ngsi-ld:Lamp:003",
      "entity_type": "Lamp",
      "protocol": "PDI-IoTA-UltraLight",
      "transport": "MQTT",
      "commands": [
        {"name": "on","type": "command"},
        {"name": "off","type": "command"}
       ]}
  ]
}
作为回应,我想到了:

op=IoAgentNGSI.DeviceProvision | from=n/a | srv=n/a | subsrv=n/a| msg=由于以下错误,设备设置失败:| comp=IoTAgent请求连接到上下文代理时出错: {“代码”:“400”,“原因短语”:“错误请求”,“详细信息”:“缺少isDomain” 注册属性“}的值


我尝试将“isDomain”:“false”添加到命令表的元素中,但没有成功。它以前是有效的,而且类似的解决方案也出现在上。

isDomain
是不推荐的NGSI-v1语法的一部分。它不用于NGSI-v2NGSI-LD

我认为您可能正在以NGSI-v1的身份运行物联网代理。您需要在
config.js
中设置
contextBroker.ngsiVersion
,或者设置以下或Docker组合

IOTA_CB_NGSI_VERSION=v2
config.js
{
主持人:“192.168.56.101”,
端口:'1026',
NGS版本:“v2”
}

它是以前错误的罪魁祸首,但现在我仍然无法注册命令。我收到以下错误:
{“name”:“错误的请求”,“消息”:“连接到上下文代理的请求错误:501”}
IotA正在v2 ngsi版本中运行。在没有命令的情况下注册设备效果很好。我正在将OCB作为默认docker容器运行。IotA的调试输入:
op=IoTAgentNGSI.Registration | from=n/a | srv=n/a | subsrv=n/a | msg=Registration错误连接到上下文代理:501 | comp=IoTAgentNGSI
op=IoTAgentNGSI.DeviceProvisioning | from=n/a | srv=n/a | subsrv=n/a | n/a | msg=n/a | msg=n/a |设备配置失败,因为以下错误:| comp=IoTAgent请求连接到上下文代理时出错:501
,因为它可能连接到OCB,我添加了它的配置。OCB运行在与IotA不同的机器上,但它们能够通信(请参阅传感器的注册)。也许我缺少一些跨平台的特权
orion:image:fiware/orion主机名:orion容器\u名称:fiware-orion依赖于:-mongodb expose:-“1026”端口:-“1026:1026”命令:-dbhost-mongodb