用户指南
联犀物联网平台
推送数据到联犀物联网平台

RHILEX 推送数据到联犀物联网平台

RHILEX 有强大的数据处理能力,本文主要展示如何通过 RHILEX 边缘规则引擎将 Modbus 数据推送到联犀物联网平台。

新建产品

首先在联犀系统内新建一个网关产品:

ithings

配置基本信息:

ithings

新建物模型

然后根据自己的数据字段来新建物模型。

ithings

新建设备

产品设计完成以后新建一个设备。

ithings

新建设备完成后即可在列表查看:

ithings

获取认证信息

打开设备详情最底下找到连接参数:

ithings

RHILEX 配置

RHILEX 北向资源新建一个“数据转发到 MQTT Broker” 资源,然后将上面获取到的基本信息填写到对应的位置。最后确认无误后提交。

ithings

ithings

数据采集

下面我们使用模拟器来模拟 15 个 Modbus 从设备,使用 RHILEX 来采集,最后上传到联犀。

首先使用 ModbusSlaver 软件开启 15 个节点:

ithings

然后新建采集的节点点位,对应到下面的点位表。确认连接没问题以后数据即可立即采集上来。

ithings

数据上传

RHILEX 快速配置规则,然后选择刚才新建的 Modbus 网关,给网关挂规则上去。

ithings

ithings

如果你比较关注背后的原理,可以查看生成的规则。为了支持灵活场景,默认生成的规则可以实现自定义修改,取决于用户自己的需求。

ithings

查看数据

当数据开始采集的时候,如果网络没问题,数据即可到达联犀。

ithings

高级扩展

除此之外,RHILEX 还内置了针对联犀平台的扩展 API,用户可以很容易通过 lua 脚本来增强功能。

上报属性

假设无模型是 temp、humi、oxygen 三个参数,可以通过下面的方式向云端上报。

Lua
Actions = {
  function(args)
    local errIothub = ithings:PropertyReport('DEVICE62MJLVLS', {
        temp = 12.45,
        humi = 45.6,
        oxygen = 23.1
      })
    if errIothub ~= nil then
      Throw("ithings:PropertyReport Error:" .. errIothub)
      return false, args
    end
    return true, args
  end
}

行为响应

当平台下发指令的时候,可以灵活的响应,下面是个简单的实例。本次使用的设备是 rhilexg1。rhilexg1 是一款轻量级网关,其内置了 1 个用户 LED 和两个继电器。用户可以使用联犀来控制 rhilexg1 的 LED 状态和继电器状态。

Lua
Actions = {
    function(args)
        Debug("[====] Received Remote Data:" .. args)
        local dataT, errJ2T = json:J2T(args)
        if (errJ2T ~= nil) then
            Throw('json:J2T error:' .. errJ2T)
            return false, args
        end
        if dataT.method == "control" then
            Debug("[====] Ithings Send Control CMD:" .. args)
            if dataT.params.led1 == 0 then
                rhilexg1:Led1Off()
            end
            if dataT.params.led1 == 1 then
                rhilexg1:Led1On()
            end
            if dataT.params.do1 == 1 then
                rhilexg1:DO1Set(1)
            end
            if dataT.params.do1 == 0 then
                rhilexg1:DO1Set(0)
            end
            if dataT.params.do2 == 1 then
                rhilexg1:DO2Set(1)
            end
            if dataT.params.do2 == 0 then
                rhilexg1:DO2Set(0)
            end
            local errIothub = ithings:ActionReplySuccess('OUTSKGLIQJX', dataT.token)
            if errIothub ~= nil then
                Throw("data:ToMqtt Error:" .. errIothub)
                return false, args
            end
        end
        return true, args
    end
}

关键函数

  • rhilexg1:Led1Off():LED 点亮
  • rhilexg1:Led1On():LED 熄灭
  • rhilexg1:DO2Set(1):继电器 2 闭合
  • rhilexg1:DO2Set(0):继电器 2 开启
  • rhilexg1:DO1Set(1):继电器 1 闭合
  • rhilexg1:DO1Set(0):继电器 1 闭合
  • ithings:ActionReplySuccess('OUTSKGLIQJX', dataT.token):向联犀反馈状态
© 2023-2025 RHILEX Technologies Inc. All rights reserved.