- Описание функциональных характеристик системы
- Поддержание жизненного цикла
- Установка PromUC
- Настройка сервисов
- Обновление PromUC
- Резервное копирование и восстановление базы данных Promuc FrameWork
- Рекомендации по безопасности
- Руководство по эксплуатации и администрированию
- Module GIS
- Конфигурирование правил и сценариев
- Module Framework
- Module Interface
- Технологии проекта
- Эксплуатация КТС
- Единый сервис аутентификации
- Информация о релизах
Снятие тревоги¶

Этот узел загружает последнюю тревогу с настроенным типом тревоги для отправителя сообщения и сбрасывает тревогу, если она существует.
Конфигурация узла:
Alarm Details Builder - скрипт
Alarm Type - любая строка, представляющая тип тревоги
Узел правил имеет возможность получить тип тревоги, используя шаблон с полями из метаданных сообщения:

Alarm Details Builder скрипт, используемый для обновления сведений о тревоге JsonNode. Это полезно для хранения дополнительных параметров внутри Alarm. Например, вы можете сохранить пару имя/значение атрибута из полезной нагрузки исходного сообщения или метаданных.
Alarm Details Builder скрипт должен возвращать объект details.

Доступ к данным сообщения можно получить через свойство msg. Например, msg.temperature
Доступ к метаданным сообщения можно получить через свойство metadata. Например, metadata.customerName
Доступ к типу сообщения можно получить через свойство msgType. Например msgType
Доступ к текущим сведениям о тревоге можно получить через metadata.prevAlarmDetails.
ОБРАТИТЕ ВНИМАНИЕ: metadata.prevAlarmDetails — это необработанное строковое поле, и его необходимо преобразовать в объект, используя следующую конструкцию:
var details = {};
if (metadata.prevAlarmDetails) {
details = JSON.parse(metadata.prevAlarmDetails);
}
Функцию сценария Alarm Details Builder можно проверить с помощью функции Test JavaScript.
Пример функции конструктора деталей
Эта функция берет свойство счетчика из предыдущего сигнала тревоги и увеличивает его. Также помещает атрибут температуры из полезной нагрузки входящего сообщения в сведения о тревоге.
var details = {temperature: msg.temperature, count: 1};
if (metadata.prevAlarmDetails) {
var prevDetails = JSON.parse(metadata.prevAlarmDetails);
if(prevDetails.count) {
details.count = prevDetails.count + 1;
}
}
return details;
Этот узел обновляет текущий сигнал тревоги:
изменяет статус тревоги status на CLEARED_ACK, если она уже была подтверждена, иначе на CLEARED_UNACK
устанавливает clear time на текущее системное время
обновляет сведения об аварийных сигналах с помощью нового объекта, возвращенного из сценария Alarm Details Builder.
В случае, когда Тревога не существует или это уже Сброшенная Тревога, исходное Сообщение будет передано следующим узлам через цепочку False.
В противном случае новое сообщение будет передано по цепочке Cleared.
Сообщение на выходе будет иметь следующую структуру:
Message Type - ALARM
Originator - тот же отправитель из входящего сообщения
Payload - JSON-представление тревоги, которая была сброшена
Metadata - все поля из исходных метаданных сообщения. Также будет добавлено дополнительное свойство внутри метаданных - isClearedAlarm со значением true.
Вот пример полезной нагрузки исходящего сообщения:
{
"tenantId": {
"entityType": "TENANT",
"id": "22cd8888-5dac-11e8-bbab-ad47060c9bbb"
},
"type": "High Temperature Alarm",
"originator": {
"entityType": "DEVICE",
"id": "11cd8777-5dac-11e8-bbab-ad55560c9ccc"
},
"severity": "CRITICAL",
"status": "CLEARED_UNACK",
"startTs": 1526985698000,
"endTs": 1526985698000,
"ackTs": 0,
"clearTs": 1526985712000,
"details": {
"temperature": 70,
"ts": 1526985696000
},
"propagate": true,
"id": "33cd8999-5dac-11e8-bbab-ad47060c9431",
"createdTime": 1526985698000,
"name": "High Temperature Alarm"
}