星纵 LoRaWAN UG65 网关使用消息规则转发数据到子设备


星纵 LoRaWAN UG65 网关使用消息规则转发数据到子设备

客户使用星纵 LoRaWAN UG65 网关接入 ThingsCloud,网关连接多个 LoRa 子设备,这个示例介绍如何利用 ThingsCloud 消息规则,使平台上的网关设备收到的上报数据,转发给相应的子设备。

UG65 网关硬件端的配置,这里不做详细介绍,可参考另一篇博客:

略有不同的是,在这个示例中,我们不在网关硬件端对数据做解码,而是让网关将原始数据直接上报到 ThingsCloud,通过平台的消息规则转发到子设备,再由不同子设备的规则来解码数据。

网关设备接收属性上报

首先,确认在网关设备的调试日志中,看到属性上报消息,如下图:

articles/2023/20231020161749_97dc826323c7e40c72cf4b284351a2f9.png

通过分析消息 JSON 信息,可以看到 datadevEUI,如下图:

articles/2023/20231020150427_775e2551b93af605a2f7b444d863c579.png

这两个字段非常重要,含义如下:

  • data:设备上报的数据,使用 base64 格式编码。
  • devEUI:代表数据来自子设备的地址,用于转发给子设备

创建属性上报规则

接下来,为网关设备或所属设备类型,创建一个属性上报规则,如下:

articles/2023/20231020151428_64907a7bdaa21131e2cb0cf6d6be1436.png

添加操作,选择向当前网关上报子设备属性,如下:

articles/2023/20231020151611_6cac50534eb956e21b7d5b9cd20f3f05.png

云函数中填写一段简单的 Javascript 代码,如下图:

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;
}   

创建好的规则是这样的,如下图:

articles/2023/20231020161837_85a1656913d26903e52dac314587af5c.png

添加子设备及地址

在 ThingsCloud 平台上的网关设备中,添加子设备,并且设置子设备地址,使用前边的 devEUI,注意大小写必须一致。

articles/2023/20231020161911_47a9b80670175b5745f1169bc4b0be39.png

详细了解 ThingsCloud 消息规则,请浏览 消息规则

子设备收到转发的消息

大功告成,子设备收到了从网关转发的消息,在设备调试日志中可以看到,如下图:

articles/2023/20231020161945_4cde94bbdd469b7a8621077cf6e6a623.png

更多功能