我们发现了IoT代理Ultralight中的错误。

如果尝试将度量发送到不存在的设备,则会收到404 - DEVICE_NOT_FOUND错误,但与此同时,将在IoTA和Orion CB的数据库中创建没有任何属性的设备。

当我说一个没有任何属性的设备时,我指的是以下内容:

{
    "device_id": "test",
    "service": "MyService",
    "service_path": "/MyServicePath",
    "entity_name": "MyEntity:test",
    "entity_type": "MyEntity",
    "attributes": [],
    "lazy": [],
    "commands": [],
    "static_attributes": []
}

这是一个非常重要的错误,因为创建任何人想要的设备数量非常简单,而且这可能会占用我们的数据库空间。

有人知道如何解决吗?

最佳答案

  • 我使用的是IotAgent-ul和外部组件的哪个版本(Fiware OCB和MongoDB)?强烈建议使用最新版本。
  • 这是使用docker镜像运行OCB和MongoDB的好方法
  • 您能提供用来发送测量值的命令/代码给我们吗?

  • 从我的自我出发,我对其进行了测试,并且效果很好:

    用于发送测量值的卷曲命令:
    #!/usr/local/bin
    mosquitto_pub -t /TEF/sensor03/attrs -m 't|45|c|extreme'
    

    来自IotAgent-ul的回复:
        {"op":"IOTAUL.Executable","time":"2018-09-21T09:59:17.906Z","lvl":"INFO","msg":"Ultralight 2.0 IoT Agent started"}
    time=2018-09-21T09:59:32.679Z | lvl=DEBUG | corr=dbbcd94d-50fc-4062-a05b-bccfa76c52c8 | trans=dbbcd94d-50fc-4062-a05b-bccfa76c52c8 | op=IoTAgentNGSI.MongoDBDeviceRegister | srv=n/a | subsrv=n/a | msg=Looking for device with filter [{"id":"sensor03"}]. | comp=IoTAgent
    Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html
    time=2018-09-21T09:59:32.717Z | lvl=ERROR | corr=dbbcd94d-50fc-4062-a05b-bccfa76c52c8 | trans=dbbcd94d-50fc-4062-a05b-bccfa76c52c8 | op=IOTAUL.IoTUtils | srv=n/a | subsrv=n/a | msg=MEASURES-001: Couldn't find device data for APIKey [TEF] and DeviceId[sensor03] | comp=IoTAgent
    time=2018-09-21T09:59:32.717Z | lvl=ERROR | corr=dbbcd94d-50fc-4062-a05b-bccfa76c52c8 | trans=dbbcd94d-50fc-4062-a05b-bccfa76c52c8 | op=IOTAUL.Common.Binding | srv=n/a | subsrv=n/a | msg=MEASURES-005: Error before processing device measures [/TEF/sensor03/attrs] | comp=IoTAgent
    time=2018-09-21T10:09:51.484Z | lvl=DEBUG | corr=dbbcd94d-50fc-4062-a05b-bccfa76c52c8 | trans=dbbcd94d-50fc-4062-a05b-bccfa76c52c8 | op=IoTAgentNGSI.MongoDBDeviceRegister | srv=n/a | subsrv=n/a | msg=Looking for device with filter [{"id":"sensor03"}]. | comp=IoTAgent
    time=2018-09-21T10:09:51.504Z | lvl=ERROR | corr=dbbcd94d-50fc-4062-a05b-bccfa76c52c8 | trans=dbbcd94d-50fc-4062-a05b-bccfa76c52c8 | op=IOTAUL.IoTUtils | srv=n/a | subsrv=n/a | msg=MEASURES-001: Couldn't find device data for APIKey [TEF] and DeviceId[sensor03] | comp=IoTAgent
    time=2018-09-21T10:09:51.509Z | lvl=ERROR | corr=dbbcd94d-50fc-4062-a05b-bccfa76c52c8 | trans=dbbcd94d-50fc-4062-a05b-bccfa76c52c8 | op=IOTAUL.Common.Binding | srv=n/a | subsrv=n/a | msg=MEASURES-005: Error before processing device measures [/TEF/sensor03/attrs] | comp=IoTAgent
    

    显示来自MongoDB的数据
        root@727724bdd3d9:/# mongo --shell
    MongoDB shell version: 3.2.21
    connecting to: test
    type "help" for help
    Welcome to the MongoDB shell.
    For interactive help, type "help".
    For more comprehensive documentation, see
        http://docs.mongodb.org/
    Questions? Try the support group
        http://groups.google.com/group/mongodb-user
    > show dbs
    iotagentul  0.000GB
    local       0.000GB
    orion       0.000GB
    

    在我看来,您的配置设置有问题。请在评论前向我们提供所有要点,并进行后续跟踪,您可以在Github网站上打开它吗? IotAgent-UL在那里

    谢谢,

    FernandoMéndez-研究初级软件工程师

    07-24 21:14