首页 > 解决方案 > IoT-AgentUL 如何获取数据

问题描述

目前我有自己的 LoRaWAN 网络,大约有 45 台设备使用此有效负载发送数据: ID=D0001&T=23&H=60 其中 ID 是 sensorId;T-温度;H - 湿度。

接下来我必须采取哪些步骤才能从我的设备中获取上下文?

这些是我所做的步骤:

1 - 安装 IoT-Agent Ultralight

2 - 使用我的 MQTT 数据在 config.js 文件上配置 MQTT

config.mqtt = { 主机:'HOST_NAME',端口:1883,协议:mqtt,用户名:'USERNAME',密码:'PASSWORD',保留:false,重试:5,retryTime:5,keepalive:0,avoidLeadingSlash:false } ;

3 - IoTAgent-ul(节点 bin/iot-agentul),收到此消息:time=2020-12-01T10:44:48.197Z | lvl=信息 | corr=526cdc56-62b8-4791-b95d-f5110ca18b7e | 反式=526cdc56-62b8-4791-b95d-f5110ca18b7e | op=IOTAUL.MQTT.绑定 | 来自=n/a | srv=n/a | 订阅服务器=不适用 | 味精=已连接 | comp=IoTAgent

标签: fiwarefiware-orion

解决方案


目前尚不清楚您是否需要Ultralight的 IoT 代理或LoRaWAN的 IoT 代理。Ultralight 是一种有效负载语法,Ultralight IoT 代理支持 HTTP、MQTT 和 AMPQ 传输。LoRaWAN 是一种传输,它支持几个 COAP 协议。

如果您真的要发送 LoRa COAP 消息,那么您将需要 LoRaWAN 代理。

如果您在 MQTT 上使用 Ultralight,那么您的消息负载应如下所示

ID|D0001|T|23|H|60 

分步指南中有一个Ultralight over MQTT 教程。

如果您在 LoRaWAN 上使用 COAP,那么您的消息负载将是base64来自 LoRa 网关的字节流。物联网教程描述了设置。

如果您的有效负载实际上是:ID=D0001&T=23&H=60,您将需要创建自己的解析器,如自定义 IoT 代理教程,并按照更改 IoT 代理代码库的步骤操作。

具体来说,使用HTTPBindings parseData()函数的控制流程。ulParser需要重写以接受您的替代语法。它看起来很相似,您需要做的就是:

if (payload) {
    data = ulParser.parse(payload.replace(/&/g, "|").replace(/=/g, "|"));
}

(如果可以在发送到 Ultralight IoT 代理之前完成,那就更好了)

重用现有物联网代理(或使用物联网代理节点库编写新代理)的优势在于,使用现有代码实现实体创建和属性映射等功能。


推荐阅读