IoT-AgentUL如何获取数据

IoT-AgentUL how to get data

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

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

这些是我完成的步骤:

1 - 已安装 IoT-Agent Ultralight

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

config.mqtt = { 主持人:'HOST_NAME', 端口:1883, 协议:mqtt, 用户名:'USERNAME', 密码:'PASSWORD', 保留:假, 重试:5, 重试时间:5, 保活:0, 避免前导斜线:假 };

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=[​​=38=] |来自=n/a | srv=n/a | subsrv=n/a |味精=连接 | comp=IoTAgent

不清楚您是否需要 IoT Agent for Ultralight or the IoT Agent for LoRaWAN。 Ultralight 是一种有效负载语法,Ultralight IoT 代理支持 HTTP、MQTT 和 AMPQ 传输。 LoRaWAN 是一种传输方式,它支持多种 COAP 协议。

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

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

ID|D0001|T|23|H|60 

分步指南中存在 Ultralight over MQTT Tutorial

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

如果您的有效负载确实是:ID=D0001&T=23&H=60,您将需要像 Custom IoT Agent Tutorial 一样创建自己的解析器,并按照更改 IoT 代理代码库的步骤进行操作。

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

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

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

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