Fiware 无法在IoT代理软件中注册命令
我使用的是直接运行Ultralight的IoT代理(不是作为停靠组件)。我能够注册新设备,它被映射到Orion上下文代理中。但是,我有一个问题,即注册执行器需要配置数据中的命令。我使用: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: /' \
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-v2或NGSI-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