我正在尝试使IONA-Broker与IoTA-LoRa一起运行。不幸的是,尝试将设备添加到代理时,我收到一条错误消息。
我使用以下方法来使用TheThingsNetwork:https://fiware-lorawan.readthedocs.io/en/latest/users_manual/index.html#the-things-network-ttn
有人让它运行吗?我总是得到错误: 无法读取未定义的属性'findOne'。
有解决任何想法吗?
很遗憾,重新启动IoTA无效。
这是我的Docker组成文件:
不幸的是,它对我不起作用。在我发布我的Docker-compose文件之后:
version: "3.1
services:
mongodb:
image: mongo:latest
hostname: mongo-db
container_name: db-mongo
ports:
- "27017:27017"
volumes:
- /mnt/docker/mongodb:/data
orion:
image: fiware/orion
hostname: orion
container_name: fiware-orion
depends_on:
- mongodb
expose:
- "1026"
ports:
- "1026:1026"
command: -dbhost mongodb
iot-agent:
image: ioeari/iotagent-lora
hostname: iot-agent
container_name: fiware-iot-agent
depends_on:
- mongodb
expose:
- "4041"
ports:
- "4041:4041"
environment:
- "IOTA_CB_HOST=orion"
- "IOTA_CB_PORT=1026"
- "IOTA_NORTH_PORT=4041"
- "IOTA_REGISTRY_TYPE=mongodb"
- "IOTA_MONGO_HOST=mongo-db"
- "IOTA_MONGO_PORT=27017"
- "IOTA_MONGO_DB=iotagent-lorawan"
- "IOTA_PROVIDER_URL=http://iot-agent:4041"
我尝试添加设备,如上面链接的FIWARE-HowTo中所述。
IoTA通常正在运行。呼叫:http://myhost:4041/iot/about工作正常。但是用它操作设备总是会失败。
这是完整的错误消息:
HTTP / 1.1 500内部服务器错误 X-Powered-By:快递 Fiware-相关器:c430da57-9b39-4ef1-a7e7-f27f2e6b2113 内容类型:application / json;字符集= utf-8 内容长度:76 ETag:W /“ 4c-Mk5iR3 / t76SWs53TC2DG + 2Oquj0” 日期:周二,2019年9月17日08:14:03 GMT 连接:关闭
{“名称”:“ TypeError”,“消息”:“无法读取未定义的属性'findOne'”}
答案 0 :(得分:0)
由于物联网代理与MongoDB之间的同步问题,通常在FIWARE环境设置中出现错误Cannot read property 'findOne' of undefined
。
在我们的案例中,我们也多次遇到此问题,其想法是先启动MongoDB,然后再启动IoT Agent,并且如果重新启动MongoDB,有时我们必须在MongoDB之后再次重新启动IoT Agent。
答案 1 :(得分:0)
该错误消息指示Mongo-DB问题,但我认为这可能与Docker有关,特别是映像版本控制问题。
mongodb:
image: mongo:latest
orion:
image: fiware/orion
iot-agent:
image: ioeari/iotagent-lora
在每种情况下,您都显式或隐式地使用尖端的最新 Docker映像,例如,在mongo-db情况下,当前为mongo:4.2.0
,也许是其他原因昨天,自从LoRaWAN IoT Agent上次更新以来,也许发生了重大变化。
最好修复为使用FIWARE_7.7.1 release时使用的通用构建集:
fiware/orion:2.2.0
mongo:3.6
fiware/iotagent-lorawan:1.2.3
然后再次尝试查看Mongo-DB的行为是否更好。
注意::
ioeari/iotagent-lora
似乎缺少版本标签,但最新版本对应于bff2c15d
,它是发行版1.2.1
,但尚未在其中复制FIWARE帐户。可以肯定的是,从源代码构建自己的资源可能会更好。
第二点-您的"IOTA_MONGO_HOST=mongo-db"
和Orion连接命令command: -dbhost mongodb
不匹配,请尝试以下操作:
version: "3.1"
services:
iot-agent:
image: fiware/iotagent-lorawan:1.2.2
hostname: iot-agent
container_name: fiware-iot-agent
depends_on:
- mongo-db
expose:
- "4041"
ports:
- "4041:4041"
environment:
- "IOTA_CB_HOST=orion"
- "IOTA_CB_PORT=1026"
- "IOTA_NORTH_PORT=4041"
- "IOTA_REGISTRY_TYPE=mongodb"
- "IOTA_MONGO_HOST=mongo-db"
- "IOTA_MONGO_PORT=27017"
- "IOTA_MONGO_DB=iotagent-lorawan"
- "IOTA_PROVIDER_URL=http://iot-agent:4041"
- IOTA_LOG_LEVEL=DEBUG # The log level of the IoT Agent
mongo-db:
image: mongo:3.6
hostname: mongo-db
container_name: db-mongo
expose:
- "27017"
ports:
- "27017:27017"
command: --bind_ip_all --smallfiles
volumes:
- mongo-db:/data
orion:
image: fiware/orion
hostname: orion
container_name: fiware-orion
depends_on:
- mongo-db
expose:
- "1026"
ports:
- "1026:1026"
command: -dbhost mongo-db
volumes:
mongo-db: ~
一个或其他mongo-db连接失败,这将导致猫鼬的指针为空。