Skip to content

系统配置

系统管理 → 系统配置 涵盖三块租户级设置:浏览器如何播放告警提示音、本租户的公共模型是否允许被下游节点拉取、以及注入所有脚本的共享环境变量(org_params)。

本页与系统平台 → 系统配置(管理员层:SMTP / 品牌 / OAuth)同名但作用域不同,两者互相独立。


告警配置

控制浏览器在新告警触发时如何播放提示音。

告警音频

从三种音频来源中选择一种:

选项说明
远程地址播放托管在外部 URL 的音频,在旁边的输入框填写完整 URL;填写后立即出现预览播放器。
自定义铃声上传本地音频文件(mp3/wav),文件会保存到平台服务器。上传后出现预览播放器。若需移除已上传文件,点击删除音频链接。
默认铃声使用平台内置的告警音频(audio/public.mp3),无需额外配置。

响铃时机

控制何时播放音频:

选项说明
始终不播放音频。
新增告警每次新告警记录创建时播放一次。
存在/新增告警新增告警时播放,且在存在任何未处理告警期间持续播放。

告警音频在用户打开 ThinkLink 的浏览器标签页中播放,不会向移动端发送推送通知。


跨服务配置

租户级的远程数据拉取准入控制。下游 ThinkLink 节点(TKG 或 TKE)只有在以下设置允许的情况下,才能拉取本租户的公共模型和模板。

字段说明
允许数据拉取总开关。关闭后,所有对本租户的外部拉取请求一律拒绝。
秘钥下游拉取时须携带的凭证。点击右侧重新生成按钮可轮换秘钥(立即使所有已有下游配置失效)。

这是租户级秘钥,与系统平台层的秘钥相互独立。每个希望对外暴露数据的租户需单独配置。

配置下游拉取步骤:

  1. 开启允许数据拉取,复制本页的秘钥
  2. 在下游节点进入系统平台 → 远程数据拉取,填入本节点 URL、本组织的 tenant_code 以及秘钥。
  3. 下游即可从本租户拉取公共模型、模板、插件和设备配置。

组织参数(Org Params)

组织(租户)级别的键值对"环境变量",配置一次后由平台自动注入本组织所有脚本的 org_params 入参:

  • RPC 模型rpc_script({ device, params, alarms, logger, org_params })
  • 物模型解析脚本payload_parser(device, msg, thingModelId, noticeAttrs, org_params)
  • 触发模型trigger_script(device, thingModelId, org_params)
  • MQTT 转发器脚本forwardScript({ topic, msg, org_params })

设计目的:把凭证、地址、业务标识从脚本逻辑里剥离——脚本只写逻辑,密钥放这里。换 webhook、轮换密钥、切换环境时只改一处,无需逐一修改 RPC/触发/转发器脚本。

与其他属性来源的区别

来源作用域写在哪里谁能看到
params单次 RPC 调用调用方传入调用方
device.shared_attrs单个设备设备 ↔ 平台双向同步该设备运维
device.server_attrs单个设备平台侧设备详情页该设备运维
org_params整个组织系统配置 → 组织参数组织管理员(普通运维不可见)

配置方式

编辑器以键值对表格呈现,每条记录包含:

字段说明
Key在脚本中通过 org_params.<key> 读取,建议小写下划线命名,如 wecom_webhook_url
Value字符串;若需结构化数据,填 JSON 字符串并在脚本中 JSON.parse
Remark给平台操作者看的说明,如"企业微信告警机器人 webhook,每季度轮换"

点击提交,新值即刻对本组织所有脚本生效(无需重启)。

在脚本中读取

javascript
// RPC:从 org_params 拿企业微信 webhook
function rpc_script({ device, params, alarms, logger, org_params }) {
    let webhook = org_params?.wecom_webhook_url;
    if (!webhook) {
        logger.error("wecom_webhook_url not configured in org_params");
        return null;
    }
    return [{
        sleepTimeMs: 0,
        type: "axios",
        dnMsg: {
            method: "POST",
            url: webhook,
            headers: { "Content-Type": "application/json" },
            data: { msgtype: "text", text: { content: params.content } },
            timeout: 5000
        }
    }];
}

安全提示

  • 组织参数页面仅组织管理员可访问——普通运维看不到 webhook key/secret,可放心存放敏感凭证
  • 若怀疑凭证泄露:在第三方平台重置密钥后,回本页更新 Value 即可;所有脚本自动使用新值
  • 建议每季度轮换 webhook/access key,并在 Remark 里记录上次轮换时间

⚠️ 不要把 org_params 的值写回到 device.server_attrs 或日志正文里——那等于把"安全藏起来的密钥"暴露给调用方/日志读者。