廊坊市网站建设_网站建设公司_C#_seo优化
2026/1/18 23:35:42 网站建设 项目流程

1. 功能概述

ThinkLink 的告警通知功能是基于平台强大的RPC (Remote Procedure Call) 机制实现的。通过将告警逻辑封装在触发联动模型中,平台能够根据设备上报的数据实时判断是否达到告警条件,并调用预设的alarm类型 RPC 消息,实现告警的触发和消除,并通知相关用户或系统。

ThinkLink 平台已内置默认的ALARMRPC 实现。用户可以基于此默认实现进行修改,以满足特定的告警通知需求。

2. 核心机制:RPC 与数据流

2.1 告警 RPC 消息类型

告警功能通过特定的 RPC 消息类型alarm来实现。该 RPC 负责将告警事件(包括触发、消除、告警详情等)发送给平台的告警处理模块,进而触发邮件、短信等通知动作。

关于alarmRPC 的具体参数配置和实现方法,请参考平台官方文档:

https://mensikeji.yuque.com/staff-zesscp/gqdw7f/lyh7hfbvi9sumrs2#kHHGt

2.2 告警数据流逻辑

告警的触发是一个完整的链式数据处理过程,确保了从原始数据到最终告警通知的准确性和实时性。

步骤

描述

关键组件

1. 数据上行

设备将遥测数据 (Telemetry Data) 上报至 ThinkLink 平台。

设备

2. 物模型解析

平台根据设备的物模型 (Thing Model) 对上行数据进行解析和标准化。

物模型

3. 调用触发模型

平台调用与设备/资产关联的触发联动模型 (Trigger Linkage Model)。

触发联动模型

4. 条件判断与 RPC 调用

触发模型中的脚本判断数据是否达到预设的告警或消除条件,并调用alarmRPC。

触发脚本 /alarmRPC

3. 告警功能配置流程

用户需要通过以下两个主要步骤来实现自定义告警功能:

步骤一:建立触发联动模型 (Trigger Linkage Model)

告警的触发和消除逻辑完全由触发联动模型中的JavaScript 脚本控制。

配置建议:

  • 触发阈值:建议将告警阈值(如alarm_depthalarm_weight)和通知接收组(如group)等信息配置在设备的服务端属性 (Server Attributes)中。这样可以通过修改设备属性来实现告警逻辑的动态配置,无需修改脚本。
  • RPC 方法:脚本中必须调用alarm方法,并传递必要的参数。

触发脚本示例:

以下示例展示了如何根据设备的遥测数据 (depthweight1) 与服务端属性 (alarm_depthalarm_weight) 进行比较,从而决定是触发新告警 (new) 还是消除告警 (clear)。

function trigger_script(device, thingModelId) { // 定义告警动作常量 const ACTION = { no: "no", // 无动作 new: 'new', // 触发新告警 clear: 'clear' // 消除告警 }; // 定义告警级别常量 const LEVEL = { low: 'low', mid: 'mid', high: 'high', urgent: 'urgent' }; let name = "alarm_bin"; // 告警名称,用于唯一标识 let title = "Alarming : [" + device.name + "]"; // 告警标题 let desc = ""; // 告警描述 let level = LEVEL.high; // 默认告警级别 // 从服务端属性获取通知组,如果未定义则为空数组 let group = device.server_attrs?.group ?? []; let action = ACTION.clear; // 默认动作为消除告警 let tdata = device?.telemetry_data[thingModelId]; // 获取遥测数据 // 检查关键数据是否存在,若不存在则不处理 if (tdata?.depth === undefined && tdata?.weight1 === undefined) { return null; } // 告警触发逻辑 1: 深度低于阈值 if (tdata?.depth <= device.server_attrs.alarm_depth) { desc = "[" + device.name + "]" + " warning, please process "; action = ACTION.new; } // 告警触发逻辑 2: 重量高于阈值 if (tdata?.weight1 >= device.server_attrs.alarm_weight) { desc = "[" + device.name + "]" + " caution!!!!"; action = ACTION.new; } // 如果 action 仍为 clear,则表示告警条件已消除 // 如果 action 为 new,则表示触发新告警 // 返回 RPC 调用指令 return { delayms: 0, abort_previous_timer: true, actions: [{ method: "alarm", // 调用告警 RPC params: { _eui: device.eui, // 设备 EUI action: action, // 告警动作 (new/clear) name: name, // 告警名称 title: title, // 告警标题 level: level, // 告警级别 desc: desc, // 告警描述 group: group // 通知组 } }] } }

步骤二:挂载告警规则

完成触发联动模型的创建后,需要将其与告警规则关联,并挂载到目标对象上。

  1. 关联规则:将包含上述脚本的触发联动模型与ALARM 规则进行关联。
  2. 挂载对象:将该 ALARM 规则挂载到对应的设备 (Device)资产 (Asset)子设备 (Sub-device)上。

完成挂载后,当目标对象上报新的遥测数据时,系统将自动执行触发脚本,并根据脚本的返回结果调用alarmRPC,从而实现告警通知功能。

TKL+EB组合方案重新定义了LoRaWAN在存量市场改造中的角色:
它不仅解决了传感器无线化接入的难题,更通过EB的灵活性与远程可控性,实现了硬件先行、软件后置、快速迭代的新型部署范式。对于广大缺乏技术积累的集成商而言,这是一条通往规模化、标准化物联网项目的捷径。

无论您是传感器厂商、系统集成商,还是智慧城市解决方案提供商,只要您有将传统设备接入 LoRaWAN 网络的需求,我们都诚挚邀请您与门思科技合作。

  • 免费提供技术支持与对接服务;
  • 无需支付任何费用;
  • 只需提供设备样品、说明书及相关接入需求,即可启动对接流程。

ThinkLink 体验地址 :https://thinklink.manthink.cn

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询