测试用例说明

假设有一个连接到 ThingsBoard 的设备,由于任何类型的故障,比如死机,断网等。设备可能会停止推送遥测数据。在这种情况下, ThingsBoard 规则引擎应该配置为如下情况:

  • 如果设备在一段时间内保持不活动状态,则创建警报。可以通过以下两种方式之一定义此时间段:
    • 第一种方式:通过更改不活动超时的全局配置参数。
      该参数在thingsboard.yml (state.defaultInactivityTimeoutInSec) 中定义,默认设置为 600秒,这需要服务器运维人员或者研发人员全局修改,我们这里不做测试。

image.png

  • 第二种方式:通过设置“inactivityTimeout”服务器端属性(值以毫秒为单位)覆盖此参数。
    这种方式将在以下各节中介绍。
    • 如果设备处于活动状态,则清除警报。

判断原理

ThingsBoard 设备状态服务负责监控设备连接状态并触发推送到规则引擎的设备连接事件。
ThingsBoard 支持四种类型的事件:

事件类型 描述
连接 当设备连接到 ThingsBoard 时触发。
断开 当设备与 ThingsBoard 断开连接时触发。
活动 当设备推送遥测、属性更新或 RPC 命令时触发。
不活动 当设备在一段时间内不活动时触发。

我们主要会用到设备活动事件和不活动事件来判断设备是否离线和在线。

  • 使用规则引擎创建不活动警报。
  • 配置不活动超时参数。

    添加一个设备:略参考(1.1-1.2)

  • 选中设备->属性->服务器属性,然后按添加按钮;

  • 例如:将“inactivityTimeout”属性设置为等于 60000 毫秒的值。

image.png

配置规则链

image.png
相关节点的配置:这个很简单。
image.png
image.png

验证测试:发送一条数据,然后1分钟内不再发送数据,也就是不活动了就会产生告警信息。
image.png
组件告警
image.png
相应的我们也可以创建当设备离线的时候发告警邮件,具体过程不再重复,参考3.3