【发布时间】:2022-11-12 00:29:40
【问题描述】:
我对 Orion Context Broker 有一些问题。我正在使用树莓派将 JSON 数据发布到作为 docker 容器运行的 mosquitto 代理。我可以从发布者那里接收数据,代理应该将数据传递给 Orion 上下文代理。我创建了一个这样的实体:
curl localhost:1026/v2/entities -s -S -H 'Content-Type: application/json' -d @- <<EOF
{
"id": "SensTemp",
"type": "Sensor",
"temperature": {
"value": 28,
"type": "Float"
}
}
EOF
我可以使用 curl 命令手动更新温度值而不会出现任何问题。问题是我的 mosquitto 容器中的数据没有进入 Orion Context Broker。这是我的码头集装箱:
version: "3.3"
services:
mongo-db:
image: mongo:3.6
hostname: mongo-db
container_name: db-mongo
expose:
- "27017"
ports:
- "27017:27017"
networks:
- default
command: --bind_ip_all --smallfiles
orion:
image: fiware/orion
ports:
- "1026:1026"
networks:
- default
depends_on:
- mongo-db
command: -dbhost mongo-db -logLevel DEBUG
healthcheck:
test: ["CMD", "curl", "-f", "http://0.0.0.0:1026/version"]
interval: 1m
timeout: 10s
retries: 3
mqtt:
image: eclipse-mosquitto:latest
container_name: mqtt
ports:
- "1883:1883"
- "9001:9001"
expose:
- "1883"
- "9001"
volumes:
- /opt/mosquitto/var/run:/var/run
这是我的树莓派发布者收到的数据的证明:
如何设置 Orion 以从我的 mosquitto 容器中获取数据?
【问题讨论】:
-
是的,每个容器都可以工作,我能够通过 mqtt 发布者发送数据。 mosquitto 容器接收到数据(从wireshark 照片中可以看到),就是这样。数据应该去 Orion Context Broker 并且实体应该改变温度的值......但是 Orion 不使用数据......也许我在创建实体时犯了一些错误?或者我应该怎么做才能让 Orion 从 Mosquitto 容器中获取数据?我应该让你知道,我的笔记本电脑上有 mosquitto orion 和 mongo,发布的数据来自树莓派。如果有人可以帮助我吗?
-
您在哪里配置 Orion 以连接到 MQTT 代理?您告诉它订阅哪些主题?
-
至于主题,当我从我的覆盆子发布消息时,主题的名称是“无”。所以也许我在创建实体时也应该输入主题的名称?我知道如果我想创建订阅,会提到该主题...
-
如何配置 Orion?
-
我可以告诉 IOT 代理处理我的 mosquitto 容器中的数据吗?据我所知,我只需要在 IOT 代理中创建一个服务......其余的将自动进行......但我也应该创建一个实体吗?也是订阅?和设备的注册?从树莓派传来的数据是 {"temperature":10} JSON 格式,如图所示。
标签: docker mosquitto fiware-orion