Skip to content

90002-tkl-notice-90002 Integration Guide

Capability Overview

tkl-notice-90002 is integrated with ThinkLink through Source file does not provide it in Source file does not provide it mode. This guide documents the current deployable artifacts and their source-traceable versions.

ItemValue
Projecttkl-notice-90002
VendorSource file does not provide it
Modeltkl-notice-90002
Business Code90002
Integration ModeSource file does not provide it
ProtocolSource file does not provide it

Model catalog

Search for these models in ThinkLink by name or ID.

Model typeNameid_namePlatform model ID
ThinkLink Model[TKL NOTICE] 90002tkl_notice_90002109268078822322176

Operations Skill

Use tkl-notice-operations to add or remove notification groups, verify idempotency, or diagnose notification routing. It verifies the group first and requires a minimal server_attrs.notify change with readback.

Features and Application Scope

This project covers tkl-notice-90002 through Source file does not provide it. Its capability boundary, fields, and deployable models follow the current descriptor, requirements, and model sources.

Deployment and Data Acquisition

| DTU | Not applicable | | Power | Source file does not provide it | | LoRaWAN Class | Source file does not provide it | | Interface | Source file does not provide it | | Baud Rate | Not applicable |

Telemetry and Register Definitions

The source does not provide a standalone telemetry table; use the current thing models listed in the model inventory.

Parameter Definitions

No project-specific parameters are defined.

Requirements Evidence

The requirements source was read, but no protocol, deployment, or unresolved-item lines were identified.

Thing Model and RPC Code

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

Thing Model Field Definitions

The models do not provide a telemetry_config field table.

RPC Parameter Definitions

No RPC input templates are defined.

Trigger Definitions

No project-specific triggers are defined.

Third-Party Platform Subscription

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

Template Selection and Verification

Search ThinkLink by project name, business code, or the id_name and ID values in the model inventory. After deployment, use real uplinks to verify fields, units, RPCs, and trigger behavior.

Supplementary Notes

Requirements and decisions: requirement/requirements.md.