用户id生成规则_开源物联网平台Thingsboard——规则引擎节点详解

本文深入解析开源物联网平台Thingsboard的规则引擎节点,涵盖核心概念如规则消息、预定义消息类型、规则节点及其关联、规则链结构。规则引擎能过滤、增强和转换设备数据,支持告警处理、远程控制等功能,通过脚本和过滤条件灵活处理消息,并与外部系统交互。
摘要由CSDN通过智能技术生成

1.规则节点能力

  • 在设备数据(实时数据/属性数据)保存到数据库之前,支持对接收的遥测数据或属性数据进行拦截验证和修改;
  • 将设备遥测数据(实时数据)或者设备属性从设备复制到相关资产,以便可以汇总遥测;
  • 自定义告警规则/函数,进行设备告警触发、更新、清除;
  • 根据设备生命周期事件触发操作。如设备上线、设备离线状态,创建告警事件;
  • 加载所需的其他处理数据。在客户设备或租户属性中定义的设备的负载温度阈值;
  • 发生复杂事件时发送电子邮件,并使用“电子邮件模板”中其他实体的属性;
  • 根据定义的条件进行远程设备控制的RPC调用。
  • 将设备实时数据、远程控制RPC指令,或者由规则引擎触发的告警或者事件,推送到与外部消息中间件或者第三方系统(如Kafka,MQTT,RabbitMQ, Spark,AWS服务等等)

简单的总结:能够用于接收任何事件,可以是来自设备的,设备生命周期事件、REST API事件、RPC请求等的传入;能够处理单个传入消息并生成一个或多个传出消息,发往不同的规则链路进行消息的路由处理,同时可以过滤,丰富,转换传入消息,执行操作或与外部系统通信。

2. 核心概念

规则引擎是一个事件处理系统。

  • 能对由设备和资产上传的消息进行 filter, enrich, transform 处理
  • 并触发不同的动作,如 notification, 与外部系统交互等

2.1. Rule Engine Message 规则引擎消息

Rule Engine Message is a serializable, immutable data structure that represent various messages in the system. 例如:

  • 上传数据、属性更新、设备调用服务端 RPC
  • 实体生命周期事件: created, updated, deleted, assigned, unassigned, attributes updated;
  • 设备状态事件: connected, disconnected, active, inactive, etc;
  • 其它系统事件。

Rule Engine Message contains the following information:

  • Message ID: time based, universally unique identifier;
  • Originator of the message: Device, Asset or other Entity identifier;
  • Message Type: “Post telemetry” or “Inactivity Event”, etc;
  • Payload of the message: JSON body with actual message payload;
  • Metadata: List of key-value pairs with additional data about the message.

消息中包含以下信息:

  • Message ID: 基于时间的唯一 ID
  • 消息来源者:设备、资产(Asset) 、其它实体的 ID
  • 消息类型: Post telemetry, Inactivity Event 等
  • 消息体 Payload: JSON body.
  • Metadata: KV 键值对,消息的额外数据。

2.2. 预定义的消息类型

  • POST_ATTRIBUTES_REQUEST: Post attributes, 设备请求上传属性值,metadata 数据有: deviceName, deviceType, payload 例如 {"currentState": "IDLE"}。
  • POST_TELEMETRY_REQUEST: Post telemetry, 设备请求上传遥测数据,metadata 数据有: deviceName, deviceType, ts(timestamp, 毫秒),payload 例如 {"temperature": 22}。
  • TO_SERVER_RPC_REQUEST: RPC Request from Device, 设备(客户端)请求 RPC 调用,metadata 数据有: deviceName, deviceType, requestId(由客户端提供的 RPC 请求 ID),payload 例如 {"method": "getTime", "params": {"param1":"val1"}}。
  • RPC_CALL_FROM_SERVER_TO_DEVICE: RPC Request to Device, 服务端请求 RPC 调用,metadata 数据有:requestUUID(服务端提供,用于区别应答),expirationTime, oneway(true 时无需应答,false 时需应用),payload 例如 {"method": "getGpioStatus", "params": {"param1": "val1"}}。
  • ACTIVITY_EVENT: Activity Event, 设备切换为活跃状态,metadata 数据有 deviceName, deviceType。
  • INACTIVITY_EVENT: Inactivity Event, 设备切换为非活跃状态。
  • CONNECT_EVENT: Connect Event, 设备已连接。
  • DISCONNECT_EVENT: Disconnect Event, 设备断开连接。
  • ENTITY_CREATED: Entity Created, 新实体已创建事件,metadata 数据有 userName(创建者名称), userId(创建者ID), payload 包含实体信息,如 {"id":{"entityType": "DEVICE", "id": "uuid"}, "createdTime": timestamp, ..., "name": "my-device", "type": "temp-sensor"}.
  • ENTITY_UPDATED.
  • ENTITY_DELETED.
  • ENTITY_ASSIGNED, Entity Assigned, 现有实体分配给客户事件,metadata 数据有 userName(操作者名称), userId, assignedCustomerName, assignedCustomerId.
  • ENTITY_UNASSIGNED.
  • ADDED_TO_ENTITY_GROUP.
  • REMOVED_FROM_ENTITY_GROUP.
  • ATTRIBUTES_UPDATED, Attributes Updated, 实体属性已更新事件,metadata 数据有 userName(操作者名称), userId, scope(SERVER_SCOPE 或 SHARED_SCOPE),payload 为已更新的属性键值对,如 {"softwareVersion": "1.2.3"}.
  • ATTRIBUTES_DELETED.
  • ALARM: Alarm Event, 当报警生成、更新、删除时产生该事件。
  • REST_API_REQUEST: REST API Request to Rule Engine,当用户执行 REST API 调用时产生该事件。

2.3. 规则结点 Rule Node

规则结点一次处理一个传入消息,并生成一个或多个输出消息。能过滤、增强、变换传入消息,执行动作或与外部系统交互。

2.4. 规则结点关联 Rule Node Relation

规则结点可关联到其它规则结点。每种关联都有关联类似 (Relation Type), 即表示该关联的逻辑意思的名称。规则结点在生成输出消息时,通过指定关联类型将生成的消息路由到下一个结点。

规则结点关联类型(即名称)可为 Success, Failure, 也可为 True, False, Post Telemetry, Attributes Updated, Entity Created 等。

2.5. 规则链

规则结点其及关联的逻辑组合。

租户管理员可定义一个根规则链(Root Rule Chain,默认规则链) 和多个其它规则链。

根规则链处理所有的输入消息,并可将消息转发到其它规则链。消息可在规则链间进行转发。<

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值