跳至主要內容

消息规则基础

约 1459 字大约 5 分钟

消息规则基础

什么是消息规则?

消息规则(也称“规则引擎”)在 ThingsCloud 中发挥着重要的作用,它可以按照设定的条件,对设备和云平台之间传递的消息进行各种计算、处理、流转等操作。

例如用规则可以实现以下场景:

  • 对设备上报的原始数据进行处理,生成我们需要的最终数据,保存在设备属性中。
  • 将设备上报的属性,直接转发到第三方 MQTT 服务器。
  • 将设备上报的事件,直接转发到第三方 HTTP API 接口。
  • 当设备上报属性达到某个条件时,向另一个设备下发属性或命令。
  • 当设备上报事件时,向另一个设备下发属性或命令。
  • 将设备上报的 GPS 位置,转化为支持国内地图厂商的火星坐标,在百度地图、腾讯地图、高德地图上正确显示位置。
  • 当设备上报 GPS 位置后,进行电子围栏检查,将结果记录在属性中,并通过告警规则触发钉钉群通知。
  • 对设备上报的 Modbus RTU 二进制消息进行解析,生成相应的设备属性。
  • 对设备上报的非标准二进制协议,进行任意的解析,生成相应的设备属性。
  • 向设备下发开关量属性时,自动生成设备能够识别的二进制报文。
  • 向设备下发数值参数时,自动生成设备能识别的二进制报文。

创建规则

创建规则非常简单,需要了解以下基本概念:

规则类型

规则类型决定了规则的触发时间点,目前包括以下类型:

  • 属性上报预处理:在云平台接收到设备端上报的属性后,且更新设备属性前,触发该类规则。查看详细介绍
  • 属性上报:在云平台正式更新设备属性后,触发该类规则。查看详细介绍
  • 事件上报:在云平台收到设备事件上报后,触发该类规则。查看详细介绍
  • 属性下发预处理:在云平台向设备端下发属性前,触发该类规则。查看详细介绍
  • 属性下发:在云平台向设备端下发属性后,触发该类规则。
  • 自定义上报:在云平台收到设备自定义数据上报后,触发该类规则。查看详细介绍

设备来源类型

  • 设备:将规则的作用范围限定在指定的一个或多个设备。
  • 设备类型:将规则的作用范围限定在设备类型下的所有设备。

因此,如果只想对某个或某几个设备定义规则,则选择 设备 作为来源类型;如果希望对设备类型下的所有设备都定义同样的规则,则选择 设备类型 作为来源类型。

例如:

  • 我们要对 CO2传感器 设备类型下的所有设备,支持 Modbus RTU 消息解析,生成各自的属性值,那么直接将规则建立在设备类型下。
  • 我们要让某个 智能开关 的切换动作控制另一个设备的启动和关闭,那就只为这个 智能开关 设备创建规则。

属性条件

当规则类型是 属性上报预处理属性上报 时,可以设置 条件,例如:

条件设置不是必须的,当设置条件后,只有当上报的属性符合该条件时,才会触发该规则。

事件标识符

当规则类型是 事件上报 时,需要设置事件标识符。只有当设备上报的事件符合时,才会触发该规则。

自定义数据流标识符

当规则类型是 自定义上报 时,需要设置自定义数据流标识符。只有当设备上报的自定义数据符合时,才会触发该规则。

操作

操作 是规则中的重要组成部分,一个规则被触发后,实际上执行的是预先设定好的操作部分。

添加操作

每类 操作 都是一个独立的组件,在后边章节中,会针对不同类型的规则,详解介绍如何使用各类 操作

操作排序

一个规则中允许有多个操作,操作的顺序决定了执行的顺序。

对于 属性上报预处理 类型的规则,每个操作都是同步执行,多个操作是串行执行,也就是前一个操作生成的属性集合,是下一个操作的属性输入。

而对于其它类型的规则,操作大多是异步执行,因此操作的顺序对运行结果并没有直接影响。

规则状态

每个规则拥有独立的状态,分为:

  • 已启用:规则可被触发。
  • 已停用:规则被忽略。

与此同时,规则还可以对其作用范围内的每个设备单独设置是否有效。例如:一个规则属于设备类型,规则全局状态是 已启用,但是对某个设备可以关闭规则,如下图:

规则统计

规则详情页 > 统计 以及 设备详情页 ,都可以查看规则的调用次数统计,这些统计同时也会计入用户的云平台用量统计。

规则日志

规则详情页 > 日志 中开启调试状态,便可以记录每次规则被触发的日志,便于查看规则是否被触发。