星纵 LoRaWAN UG65 网关使用消息规则转发数据到子设备
约 585 字大约 2 分钟
星纵 LoRaWAN UG65 网关使用消息规则转发数据到子设备
客户使用星纵 LoRaWAN UG65 网关接入 ThingsCloud,网关连接多个 LoRa 子设备,这个示例介绍如何利用 ThingsCloud 消息规则,使平台上的网关设备收到的上报数据,转发给相应的子设备。
UG65 网关硬件端的配置,这里不做详细介绍,可参考另一篇博客:
略有不同的是,在这个示例中,我们不在网关硬件端对数据做解码,而是让网关将原始数据直接上报到 ThingsCloud,通过平台的消息规则转发到子设备,再由不同子设备的规则来解码数据。
网关设备接收属性上报
首先,确认在网关设备的调试日志中,看到属性上报消息,如下图:
![](https://img-1300291923.cos.accelerate.myqcloud.com/articles/2023/20231020161749_97dc826323c7e40c72cf4b284351a2f9.png)
通过分析消息 JSON
信息,可以看到 data
和 devEUI
,如下图:
![](https://img-1300291923.cos.accelerate.myqcloud.com/articles/2023/20231020150427_775e2551b93af605a2f7b444d863c579.png)
这两个字段非常重要,含义如下:
data
:设备上报的数据,使用 base64 格式编码。devEUI
:代表数据来自子设备的地址,用于转发给子设备。
创建属性上报规则
接下来,为网关设备或所属设备类型,创建一个属性上报规则,如下:
![](https://img-1300291923.cos.accelerate.myqcloud.com/articles/2023/20231020151428_64907a7bdaa21131e2cb0cf6d6be1436.png)
添加操作,选择向当前网关上报子设备属性,如下:
![](https://img-1300291923.cos.accelerate.myqcloud.com/articles/2023/20231020151611_6cac50534eb956e21b7d5b9cd20f3f05.png)
云函数中填写一段简单的 Javascript
代码,如下图:
![](https://img-1300291923.cos.accelerate.myqcloud.com/articles/2023/20231020151653_ff87704282dd24d486a8e79dde716cf9.png)
module.exports = function (report_attributes) {
/**
* report_attributes: 上报的属性对象,作为函数参数传入
*/
var data = {};
if (report_attributes.devEUI) {
data[report_attributes.devEUI] = report_attributes;
}
return data;
}
创建好的规则是这样的,如下图:
![](https://img-1300291923.cos.accelerate.myqcloud.com/articles/2023/20231020161837_85a1656913d26903e52dac314587af5c.png)
添加子设备及地址
在 ThingsCloud 平台上的网关设备中,添加子设备,并且设置子设备地址,使用前边的 devEUI
,注意大小写必须一致。
![](https://img-1300291923.cos.accelerate.myqcloud.com/articles/2023/20231020161911_47a9b80670175b5745f1169bc4b0be39.png)
详细了解 ThingsCloud 消息规则,请浏览 消息规则
子设备收到转发的消息
大功告成,子设备收到了从网关转发的消息,在设备调试日志中可以看到,如下图:
![](https://img-1300291923.cos.accelerate.myqcloud.com/articles/2023/20231020161945_4cde94bbdd469b7a8621077cf6e6a623.png)