Skip to content

1. 传感器简介

模型清单

可使用下列名称或 ID 在 ThinkLink 中搜索对应模型。

模型类型名称id_name平台模型 ID
RPC[CT30xLF-A0 ACT] 21308ct30xlfa0_action_21308841830626125414403
RPC[CT30xLF-A0 GET] 21308ct30xlfa0_get_21308841830626125414402
RPC[CT30xLF-A0 SET] 21308ct30xlfa0_set_21308841830626125414401
TemplateCT30xLF-A0ct30xlfa0_21308841830626125414404
Thing Model[CT30xLF-A0]ct30xlfa0_21308841827660052037632
Thing Model[REJEEE-21308-CT30xLF-A0资产] 区域聚合ct30xlfa0_asset_21308119677174411063300
Parameter Thing Model[CT30xLF-A0-PARA]ct30xlfa0_para_21308841830626125414400

CT30x-LF-A0 是南京芮捷电子科技有限公司(REJEEE)生产的一款 LoRa 智能开关面板,采用 86 型墙壁开关盒设计,可在不改变室内布线的情况下,通过火线串联接入实现灯具的远程无线控制。设备支持 1~3 路开关控制(CT301 单控、CT302 双控、CT303 三控),适用于仓库、机房、办公楼等室内物联网场景。

本次对接方案中,设备型号为 CT30x-LF-A0,业务代码为 21308,模板名称为 CT30xLF-A0


2. 产品特点

根据厂家资料,CT30x-LF-A0 具备以下特点:

  • LoRa/LoRaWAN 通信,支持远程 + 本地手动控制
  • 86 型标准面板,可直接替代老式机械开关
  • 零火线接入,单路最大负载 400W
  • 支持单控、双控、三控面板,灵活适配不同场景
  • 内置天线,安装方便
  • Class C 常在线,下行控制无延迟

3. 适用范围

CT30x-LF-A0 可广泛应用于以下场景:

  • 仓库照明远程开关控制
  • 机房设备电源远程管理
  • 办公楼灯光集中控制
  • 工厂车间照明智能化改造

4. 产品规格

参数
通信方式LoRa / LoRaWAN
通信频率470~510MHz(CN470)
发射功率最大 22dBm
接收灵敏度-141dBm(SF12, BW125kHz)
供电火线 AC85V~265V
单路最大负载400W
待机功耗≤0.22W
产品尺寸86mm × 86mm × 34mm
工作环境-30℃ ~ +70℃, ≤95%RH

5. 数据采集

5.1 协议概述

CT30x-LF-A0 采用 自定义 TLV 变长帧协议,通过 LoRaWAN 的 FRMPayload 承载传感器数据。数据格式不依赖端口号区分——所有数据在同一端口上通过 Type 字段区分。

5.2 TLV 帧结构

Type 范围格式说明
0x00~0x0F, 0xFFT+V(固定长度)基础传感器类型,省略长度字节
0x10 以上T+L+V(可变长度)含长度字节,支持扩展

5.3 上行数据类型

Type名称长度说明
0x00设备信息2 字节version(3b) + battery_level(5b) + reserve(1B)
0x09开关状态1 字节每 bit 代表一路开关状态
0x1A电流电压2~4 字节current(int16BE, mA) [+ voltage(int16BE, 0.1V)]
0x1B功率电能≥4 字节active power(uint32BE, W)

5.4 上行示例

FRMPayload (hex): 003300 0901 1A04011D08D1 1B040000003F

解析结果:

  • 设备信息: version=1, battery_level=19
  • 开关: 通道1=ON
  • 电流=285mA, 电压=225.7V
  • 功率=63W

6. 物模型

6.1 物模型基本信息

数据物模型

  • 名称:[CT30xLF-A0]
  • id Name:ct30xlfa0_21308

参数物模型

  • 名称:[CT30xLF-A0-PARA]
  • id Name:ct30xlfa0_para_21308

6.2 数据物模型脚本

javascript
let payload = msg?.userdata?.payload;
if (!payload) return null;
let bytes = Buffer.from(payload, 'base64');
let data = {};
let i = 0;
while (i < bytes.length) {
    let type = bytes[i++];
    if ((type >= 0x00 && type <= 0x0F) || type === 0xFF) {
        // T+V format
        switch (type) {
            case 0x00: // Device Info
                let info = bytes[i++];
                data.version = (info >> 5) & 0x07;
                data.battery_level = info & 0x1F;
                data.reserve = bytes[i++];
                break;
            case 0x09: // Switch Status
                let sw = bytes[i++];
                data.switch_1 = (sw & 0x01) === 0x01;
                data.switch_2 = (sw & 0x02) === 0x02;
                data.switch_3 = (sw & 0x04) === 0x04;
                data.switch_status = sw;
                break;
            default: i = bytes.length; break;
        }
    } else {
        // T+L+V format
        let len = bytes[i++];
        let value = bytes.slice(i, i + len);
        i += len;
        switch (type) {
            case 0x1A:
                if (len >= 2) data.current = value.readInt16BE(0);
                if (len >= 4) data.voltage = value.readInt16BE(2) / 10.0;
                break;
            case 0x1B:
                if (len >= 4) data.power = value.readUInt32BE(0);
                break;
        }
    }
}
return {
    telemetry_data: data,
    server_attrs: null,
    shared_attrs: null
};

7. 第三方平台数据订阅

7.1 MQTT Topic

/v32/{Organization Account}/tkl/up/telemetry/{eui}

7.2 上报示例数据

json
{
    "eui": "0123456789abcdef",
    "active_time": "2026-05-11T09:00:00.000Z",
    "thingModelId": "21308",
    "thingModelIdName": "ct30xlfa0_21308",
    "telemetry_data": {
        "snr": 10.5,
        "rssi": -45,
        "switch_1": true,
        "switch_2": false,
        "switch_3": true,
        "switch_status": 5,
        "current": 285,
        "voltage": 225.7,
        "power": 63,
        "version": 1,
        "battery_level": 19
    }
}

8. RPC

8.1 参数配置 RPC(SET)

上报周期配置

  • 名称:[CT30xLF-A0 SET] 21308
  • id Name:ct30xlfa0_set_21308

参数定义

参数类型说明
period_upnumber上报周期(秒),范围 1-65535

RPC 代码

javascript
const rpcName = "ct30xlfa0_set_21308";
let classMode = (device && device.shared_attrs && device.shared_attrs.class_mode) || "ClassC";

let dnBuffer = Buffer.alloc(4);
dnBuffer[0] = 0x02;
dnBuffer[1] = 0x11;
dnBuffer.writeUInt16BE(params.period_up, 2);

let paraDef = {
    app_11: {name: "period_up", field_name: "period_up", unit: "s", type: "uint16BE"}
};

let readBuffer = Buffer.alloc(2);
readBuffer[0] = 0x01;
readBuffer[1] = 0x81;

let paraDownBuffer = Buffer.alloc(dnBuffer.length + readBuffer.length);
dnBuffer.copy(paraDownBuffer, 0);
readBuffer.copy(paraDownBuffer, dnBuffer.length);

let msgQue = Utils.makeParaSetMSG({
    device: device,
    classMode: classMode,
    rpcName: rpcName,
    params: params,
    paraDownBuffer: paraDownBuffer,
});
if (msgQue.length === 0) return null;
return msgQue;

下行报文格式:0x02 0x11 + period_up(uint16BE),通过 LoRaWAN 透传端口(51)下发。

8.2 参数读取 RPC(GET)

用户配置读取

  • 名称:[CT30xLF-A0 GET] 21308
  • id Name:ct30xlfa0_get_21308

无参数,读取后设备返回包含 period_up、period_read 等字段的配置数据。

RPC 代码

javascript
let dnBuffer = Buffer.alloc(2);
dnBuffer[0] = 0x01;
dnBuffer[1] = 0x81;

let msg = RPCHelper.makeMSG({
    msgType: Utils.msgType.transParent,
    device: device,
    dnBuffer: dnBuffer,
    sleepTime: 2000
});
return [msg];

下行报文格式:0x01 0x81,通过 LoRaWAN 透传端口(51)下发。

8.3 开关控制 RPC(ACTION)

多通道开关控制

  • 名称:[CT30xLF-A0 ACT] 21308
  • id Name:ct30xlfa0_action_21308

参数定义

参数类型说明
switch_1boolean通道 1 开关(true=开, false=关)
switch_2boolean通道 2 开关
switch_3boolean通道 3 开关

RPC 代码

javascript
let mask = 0x00;
let action = 0x00;
if (params.switch_1 !== undefined) { mask |= 0x01; if (params.switch_1) action |= 0x01; }
if (params.switch_2 !== undefined) { mask |= 0x02; if (params.switch_2) action |= 0x02; }
if (params.switch_3 !== undefined) { mask |= 0x04; if (params.switch_3) action |= 0x04; }
if (mask === 0x00) return null;

let dnBuffer = Buffer.alloc(3);
dnBuffer[0] = 0x23;
dnBuffer[1] = mask;
dnBuffer[2] = action;

let msg = RPCHelper.makeMSG({
    msgType: Utils.msgType.transParent,
    device: device,
    dnBuffer: dnBuffer,
    sleepTime: 2000
});
return [msg];

下行报文格式:0x23 + mask(1B) + action(1B),通过 LoRaWAN 透传端口(51)下发。


9. 模板选择

在 ThinkLink 平台中搜索模板: CT30xLF-A0

或按业务类型查找: 21308 / LoRa 智能开关 / REJEEE 灯控面板


补充说明

  1. 设备默认运行参数可通过 SensorTool 桌面工具配置(需拆机、断电操作)。
  2. CT301/CT302/CT303 共用同一套物模型,通道数由设备型号决定。
  3. 设备为 Class C 常在线,下行控制可随时下发,无延迟。
  4. 零线为可选接入——正常接零线不影响功能,可在单火接入灯微量发光时解决灯闪问题。
  5. 接线时禁止带电操作。