Как мне отложить сброс сигнала тревоги ThingsBoard? - PullRequest
0 голосов
/ 05 августа 2020

У меня есть цепочка правил в ThingsBoard, которая создает сигнал тревоги, когда температура выходит за пределы порогового значения, и в противном случае выдает сигнал сброса. Когда происходят эти события, я получаю сообщение от бота Telegram. Все работает нормально.

Однако, когда температура колеблется около порогового значения, я могу получать много уведомлений, когда она входит и выходит за пределы пороговой температуры. Это несколько раздражает.

Я бы хотел, чтобы активность Clear Alarm срабатывала, только если прошло более 5 минут (скажем) с момента срабатывания последнего события Create Alarm.

Любые советы по как этого добиться?

1 Ответ

0 голосов
/ 08 августа 2020

Я наконец-то понял, как это сделать.

Я добавил к своему устройству некоторые серверные атрибуты, которые определяют температуры, вызывающие срабатывание сигнализации. У меня есть цепочка правил для управления этими сигналами тревоги со следующими узлами:

enter image description here

  1. Enrichment - originator attributes to add the relevant attributes into the metadata associated with this message
  2. Filter - script to detect if the temperature is outside the expected range
  3. Filter - script to detect if the delay period has expired since the last time the alarm was triggered
  4. Action - create alarm when script detects that temp is out of range
  5. Action - clear alarm when script detects that delay period has expired
  6. Transformation - script to update last alarm time attribute
  7. Action - save attributes to persist updated alarm time attribute
  8. Transformation - script to create a message about alarm set or cleared
  9. Rule chain to handle sending the message to a Telegram bot

As an example, here is the script for checking if the delay period has expired before clearing the alarm:

var alarmTime = Number(metadata.ss_lastWaterTempAlarmTime);
var alarmDelay = Number(metadata.ss_clearAlarmTimeDelay);
return metadata.ts >= alarmDelay + alarmTime;

ss is the prefix added for server side attributes that have been added to metadata.

You can see the complete цепочка правил json в моем репозитории Aquamon.

...