Skip to content

90002-tkl-notice-90002 平台能力对接文档

能力简介

Source file does not provide it

项目
项目名称tkl-notice-90002
厂商Source file does not provide it
型号tkl-notice-90002
业务代码90002
对接模式Source file does not provide it
协议Source file does not provide it

模型清单

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

模型类型名称id_name平台模型 ID
ThinkLink Model[TKL NOTICE] 90002tkl_notice_90002109268078822322176

运维 Skill

增加或删除设备通知组、验证幂等性或排查通知路由时,使用 tkl-notice-operations。该 Skill 会先确认通知组存在,再对 server_attrs.notify 做最小变更和读回。

产品特点与适用范围

本项目面向“server_attrs_mutation”场景。能力边界、字段和可部署模型均以当前 descriptor、requirements 与模型源文件为准。

部署与采集信息

| DTU | Not applicable | | 供电 | Source file does not provide it | | LoRaWAN Class | Source file does not provide it | | 接口 | Source file does not provide it | | 波特率 | Not applicable |

遥测与寄存器定义

源文件未提供独立遥测字段表;请以模型清单中的当前物模型为准。

参数定义

无项目专用参数定义。

Requirements 证据

已读取 requirement/requirements.md,但未识别到协议、部署或未确认事项行。

物模型与 RPC 代码

id_name: tkl_notice_90002 · ID: 109268078822322176

javascript
// tkl_notice_90002 — server_attrs.notify 通知组成员维护
//
// 用一次 RPC 调用向 server 的 server_attrs.notify 数组增加或删除一个通知组名称。
// 幂等:重复 add 已存在的组、remove 不存在的组都是 no-op。
//
// 入参:
//   action  "add" | "remove"
//   group   string  通知组名称
//
// 存储位置: device.server_attrs.notify (string[])

function rpc_script({ device, params, alarms, logger, org_params }) {
    let action = params.action;
    let group  = params.group;

    if (action !== "add" && action !== "remove") {
        logger.error("invalid action, expect add|remove", { action: action });
        return null;
    }
    if (typeof group !== "string" || group.length === 0) {
        logger.error("group must be a non-empty string", { group: group });
        return null;
    }

    let current = Array.isArray(device.server_attrs?.notify)
        ? device.server_attrs.notify.slice()
        : [];

    let exists = current.indexOf(group) !== -1;
    let next   = current;

    if (action === "add") {
        if (exists) {
            logger.info("notice group already present, no-op", { group: group, notify: current });
            return null;
        }
        next = current.concat([group]);
    } else {
        if (!exists) {
            logger.info("notice group not present, no-op", { group: group, notify: current });
            return null;
        }
        next = current.filter(function (g) { return g !== group; });
    }

    return [
        {
            sleepTimeMs: 0,
            type: "modifyAttrs",
            dnMsg: {
                server_attrs: { notify: next }
            }
        }
    ];
}

// === 本地调试 ===
const testResult = rpc_script({
    device: {
        name: "test-server",
        eui:  "0011223344556677",
        server_attrs: { notify: ["ops-day"] }
    },
    params: { action: "add", group: "ops-night" },
    alarms: {},
    org_params: {},
    logger: console
});
console.log(JSON.stringify(testResult, null, 2));

物模型字段定义

模型未提供 telemetry_config 字段表。

RPC 参数定义

无 RPC 入参模板。

触发器定义

无项目专用触发器。

第三方平台数据订阅

MQTT Topic: /v32/{Organization Account}/tkl/up/telemetry/{eui}

json
{
  "eui": "6353012af10a9331",
  "active_time": "2026-07-13T08:35:48.000Z",
  "thingModelId": "Use the platform model ID from the model inventory",
  "thingModelIdName": "Use the current telemetry model id_name",
  "telemetry_data": {
    "snr": 13.5,
    "rssi": -51,
    "battery": 3.37
  }
}

模板选择与验证

在 ThinkLink 平台按项目名称、业务代码或模型清单中的 id_name、ID 搜索并绑定模型。部署后使用真实上行帧核对字段、单位、RPC 和触发器行为。

补充说明

需求与决策依据:requirement/requirements.md