Типы сигналов
Условием для запуска задания автоматизации может являться:
- Временное расписание
В качестве сигнала для запуска задания автоматизации может использоваться факт наступления времени по расписанию; расписание может формироваться с произвольной периодичностью: раз в минуту/час/день/неделю/год, в определенное время каждый день/неделю/месяц/год, с заданной периодичностью в определенный интервал времени и так далее. - Событие от какого-либо узла сети, удовлетворяющее условию фильтра
Все узлы сети НЕЙРОСС обмениваются событиями друг с другом, поэтому в качестве входного события для задания автоматизации может выступать события от контроллеров БОРЕЙ или ЯРС, серверов ПАК Интеграция, ITRIUM, IP-камер и других узлов сети. - Событие Платформы НЕЙРОСС
Любое событие, регистрируемое в виде записи Системного журнала (системные события, события авторизации, ошибки записи, действия операторов, сообщения о бездействии операторов и многое другое) может являться сигналом для запуска заданий автоматизации. - Группа сигналов
Последовательность единичных и множественных событий. Запуск задания может осуществляться при накоплении определённого количества событий, либо по причине отсутствия событий, а также при выполнения целой последовательности условий. - HTTP-запрос
Для обеспечения функций интеграции с «внешними» системами предусмотрен запуск заданий автоматизации по определённому HTTP-запросу; код запроса настраивается. Предусмотрена работа как с авторизацией, так и без неё.
Типы действий
При выполнении условия может быть выполнено:
- Управляющая команда или набор команд
Наиболее популярным типом действия в задаче автоматизации является выполнение команд управления над элементами системы; из списка функциональных элементов формируется набор элементов, каждому элементу из набора задаётся команда. которая должна быть выполнена по факту получения сигнала.
Простым примером выполнения управляющей задачи автоматизации по расписанию является постановка объекта на охрану по факту окончания рабочего дня, пример задачи по событию — блокировка точек доступа по тревоге в разделе сигнализации, поворот (смена препозиции) камеры. В случае необходимости использования сложных алгоритмов анализа как входных условий, так и последовательности выполняемых действий, предоставляется механизм Scala-скриптовой логики. Отправка Email-cообщения/отчёта или Telegram-уведомления
Еще одним популярным типом действия является автоматическое формирование и отправка сообщений или отчетов с получением по электронной почте или в виде Telegram-уведомления.
Для обеспечения возможности автоматического формирования отчётов предусмотрен механизм динамического формирования временного диапазона. Отчёт формируется на базе предварительно подготовленного набора параметров и за интервал времени, рассчитываемый относительно текущего времени: за текущую неделю/месяц/год (с 00:00 начала периода); за последние несколько часов, дней и проч. (со сдвигом относительно текущего времени).
Email-отчёт или Telegram-уведомление может быть дополнено кадрами видеоархива, если для источника события есть «связанные» камеры и но ним есть архив за время фиксации события: по каждой «связанной» камере отправляется не более одного кадра.При необходимости записи видеоархива по расписанию или по событиям, создаются задачи на запись. Дополнительная информация представлена в разделе Настройка задач на запись.
- HTTP-запрос
Для интеграции с «внешними» системами предусмотрена передача HTTP-запроса. Поддерживаются методы GET, POST, PUT, DELETE. - Произвольный скрипт
Для реализации сложных алгоритмов с анализом входных условий предусмотрена возможность выполнения произвольного Scala-скрипта. - Сброс счётчика пропусков
Платформа НЕЙРОСС за счёт использования плагинов обеспечивает работу дополнительных функций, в частности — сброс счётчика пропусков.
Окно раздела
Список заданий: перечень имеющихся заданий; если наименование задания не задано, после номера задания через вертикальную черту указывается тип сигнала и тип действия. Иконка задания отображает его статус. Список статусов см. в таблице ниже.
Цвет иконки Статус задания Комментарий Зелёный Активно Задание успешно прошло проверку при запуске (инициализацию), выполняется. в ходе выполнения ошибок не возникало. Оранжевый Активно, в ходе выполнения возникали ошибки Задание успешно прошло проверку при запуске (инициализацию), выполняется, в ходе выполнения возникали ошибки. Данные по ошибкам можно просмотреть в системном журнале, либо на вкладке Диагностика. Дана ссылка на описание последней выявленной ошибки. Красный Ошибка инициализации На этапе первичной проверки (инициализации) задания возникли ошибки: неверно заданы параметры задания. Задание не выполняется. Серый Отключено Задание не выполняется, остановлено пользователем вручную. Команды управления списком заданий: Добавить задание , Поиск по списку заданий, удалить задание , копировать задание для возможности создания нового на основе старого.
Общая информация о задании: перечень параметров приведён в таблице ниже:
Параметр Значение Комментарий Название Текстовое поле Наименование задания; если задано, оно указывается в списке заданий [1]. Статус - активно (включено)
- отключено
- ошибка инициализации
Текущий статус задания, статус отмечается цветом иконке задания в списке [1]. По факту сохранения задания автоматизации выполняется его инициализация. При возникновении ошибок заданию в списке [1] присваивается иконка красного цвета, задание не выполняется, ошибка фиксируется в Системном журнале. Для просмотра текста ошибки предоставляется ссылка.
Успешно обработанных сигналов Число успешно обработанных сигналов (выполненных действий) Ведётся статистика выполнения задания (учёт количества сигналов, приведших к срабатыванию задания автоматизации). Сигнал является успешно обработанным, если действие, заданное в задании, выполнено успешно, не выявлено ошибок. Указывается общее количество успешно обработанных сигналов и время выполнения последнего. Для сброса счётчика нажмите на кнопку Очистить статистику. Сигналов, обработанных с ошибкой Число сигналов, действие по которым не удалось успешно выполнить Ведётся статистика выполнения задания (учёт количества сигналов, приведших к срабатыванию задания автоматизации). Сигнал является обработанным с ошибкой, если выполнение действия, заданного в задании, привело к возникновению ошибки. Указывается общее количество таких сигналов и время возникновения последней ошибки. Описание всех ошибок можно просмотреть в Системном журнале. Дана ссылка на описание последней найденной ошибки.
- Параметры сигнала: предустановлено четыре типа сигнала: по расписанию, по событию, по HTTP-запросу, по системному действию (отмеченному записью в Системном журнале);
- Параметры действия: предустановлено семь типов действий: команда управления, отправка письма на email, отправка отчёта на email, Telegram-уведомление, произвольный скрипт, HTTP-запрос, логирование.
Выполнить тест: команда запускает задание на выполнение немедленно, вне зависимости от указанного расписания или наличия события; используется для тестирования правильности настройки параметров (не учитывается в статистике выполнения задания). В качестве альтернативы для целей тестирования можно использовать эмуляцию входного http-запроса, при этом количество выполненных заданий увеличивается на единицу. Команды управления заданием:
Команда Комментарий Выключить Остановить выполнение задания. Сделать задание неактивным. Включить Возобновить выполнение задания. Сделать задание активным. Задание будет выполняться согласно собственному условию запуска. Будет возобновлено ведение статистики задания. Сбросить статистику Обнулить данные в полях Успешно обработанных сигналов, Сигналов, обработанных с ошибкой. - Импорт и экспорт параметров задания автоматизации [Импорт и экспорт заданий автоматизации]
- Диагностика: на вкладке Диагностика вы можете в режиме «живого» журнала отследить результат выполнения всех активных заданий автоматизации.
Управление заданиями автоматизации
Чтобы создать задание автоматизации:
- В списке заданий [1] нажмите на кнопку Добавить новое задание .
- В блоке Общая информация [2] в поле Название укажите наименование нового задания, если требуется. Оно будет отображаться в списке заданий. Если название не задано, то в списке будет отображаться номера задания, заданный тип сигнала и тип действия.
- В блоке Параметры сигнала [3] выберите из раскрывающегося списка требуемый тип сигнала и задайте дополнительные параметры:
- Если задание требуется выполнять в определённое время или с определённой периодичностью вне зависимости от событий в системе, в поле Тип сигнала выберите По расписанию, настройте расписание запуска задания;
Если задание требуется выполнять по какому-либо событию от какого-либо источника событий в системе, в поле Тип сигнала выберите По событию и настройте фильтр событий;
- Если задание следует запускать по произвольному событию, регистрируемому в Системном журнале Платформы НЕЙРОСС, в поле Тип сигнала выберите По системному действию и задайте параметры записи;
- Если задание следует запускать при накоплении определённого количества событий, либо по причине отсутствия событий, а также при выполнения целой последовательности условий, в поле Тип сигнала выберите Группа сигналов, настройте параметры группы.
- Если задание следует запускать по команде из внешней системы, в поле Тип сигнала выберите По HTTP-запросу, скопируйте предложенную строку и сформируйте http-запрос;
- В блоке Параметры действия [4] выберите из раскрывающегося списка требуемый тип действия и задайте дополнительные параметры:
- Нажмите на кнопку Создать новое задание.
При необходимости проверки действия задания, нажмите выполнить тест.
ВНИМАНИЕ
Команда выполнить тест запускает на выполнение действия, заданные в задании. В зависимости от параметров задания, будет произведена попытка выполнения команд управления, либо отправлено письмо/Telegram-уведомление. Если задание создано для запуска по событию и в шаблоне письма/уведомления заданы переменные, относящиеся к источнику события, то в тестовом сообщении данные поля будут пустыми.
Команда доступа только для включенных заданий автоматизации.
Чтобы приостановить выполнения задания, нажмите на кнопку Выключить. Для возобновления — нажмите на кнопку Включить.
Чтобы удалить задание, наведите указатель мыши на имя задания в списке заданий [1] и нажмите на кнопку Удалить задание, расположенную в строке задания.
Чтобы создать новое задание на основе имеющегося, наведите указатель мыши на имя задания в списке заданий [1] и нажмите на кнопку Копировать задание, расположенную в строке задания. повторите шаги пп.2-6 инструкции выше.
Типы сигналов
Расписание заданий
Расписание позволяет задать точное время или периодичность выполнения задания автоматизации. В ближайшее время будет реализован встроенный редактор расписания. В настоящий момент, вы можете воспользоваться Cron-форматом записи. В этом формате предусмотрено пять позиций: для установки минут, часов, дней месяца, месяцев, и дней недели. Позиции разделяются пробелом.
- В блоке Параметры сигнала [3] в поле Тип сигнала выберите По расписанию, настройте расписание запуска задания.
Фильтр событий
Любое событие, происходящее в системе, регистрируется. События могут быть отфильтрованы по источнику (например, раздел сигнализации), по типу (например, тревожные), по стандартной или пользовательской метке (например, план).
- В блоке Параметры сигнала [3] в поле Тип сигнала выберите По событию.
- В поле Фильтр по событиям выберите из раскрывающегося списка созданный ранее фильтр событий или нажмите [настроить фильтры] для перехода в редактор фильтров. Инструкция по настройке фильтров приведена в разделе Фильтры.
Запись в Системном журнале
Фильтр событий предоставляет широкий функционал для отбора событий от какого-либо узла для запуска задания автоматизации, он позволяет «поймать» извещения, посылаемые узлом-источником события. Однако, наряду с событиями от узлов сети НЕЙРОСС, Платформа НЕЙРОСС регистрирует в системном журнале действия администраторов и операторов АРМ НЕЙРОСС, системные ошибки, остановки записи медиаданных, события контроля операторов и многое другое.
Эти события могут быть отфильтрованы по тексту сообщения о событии, пользователю системы, вызвавшему событие, а также по метке / набору меток. Отбор сообщений производится аналогично фильтру Системного журнала по следующим полям: «Сообщение содержит», «Пользователь / оператор», «Включает метки»).
- В блоке Параметры сигнала [3] в поле Тип сигнала выберите По системному действию и задайте параметры записи.
Группа сигналов
Часто возникает необходимость выполнять какие-либо действия не по единичному событию, а при выполнении определённого набора условий и в определённой последовательности. Например, можно отслеживать ложные сработки охранных датчиков, массовые потери связи, последовательные отказы доступа. Бывает необходимо отследить отсутствие событий, — например, отсутствие события доступа (не выход на работу сотрудника) в определённое время или после снятия объекта с охраны. Группа сигналов может включать несколько одиночных или групповых сигналов, которые выполняются последовательно: при сработке первого из группы происходит ожидание выполнение второго и так далее. По успешному выполнению всех сигналов из группы выполняется действие, заданное в задании.
- В блоке Параметры сигнала [3] в поле Тип сигнала выберите Группа сигналов.
- Нажмите на кнопку Добавить этап. Настройте первый сигнал, при необходимости, добавьте и настройте второй и последующий сигнал.
Входной HTTP-запрос
В целях интеграции «внешних» систем реализован функционал запуска задания по получению HTTP-запроса. Любое задание автоматизации может выполняться по факту получения авторизованного post-запроса вида:
{{baseUrl}}/api/v1/automation/signal/:token
Где:
- {{baseUrl}} — IP-адрес или доменное имя сервера, например http:\\10.1.31.181
- token — ключ запроса вида fcc38933-cf4f-4652-9346-153c11d009f8, формируется для каждого события независимо и предоставляется в поле Токен. Вы можете указать собственный токен сигнала или перегенерировать существующий, нажав на кнопку UUID.
ПОДСКАЗКА
Чтобы эмулировать требуемый запрос для проверки работоспособности задания автоматизации, нажмите на ссылку отправить запрос. Это действие идентично получению запроса извне системы, будет проведена попытка выполнения задания, значение счетчика заданий будет увеличено на единицу.
По умолчанию требуется авторизация (рекомендуется), при получении сигнала происходит проверка того, что он был отправлен пользователем, вошедшим в систему. Однако при необходимости активизации задания любым HTTP-запросом, содержащим указанный токен, в поле Проверять авторизацию установите значение Нет.
Типы действий
Выполнение команд
Наиболее популярным типом действия в задаче автоматизации является выполнение команд управления над элементами системы. При выборе в качестве параметра действия команды управления, вам потребуется:
- Сформировать список элементов, которым будут отправляться управляющие команды в процессе выполнения задания.
- Задать команду управления для каждого выбранного элемента. Список доступных команд формируется на основе типа элемента. Для ITRIUM/ПАК Интеграция, доступ элементам и командам управления ими задается из программы «Администратор системы» (см. раздел Представление (публикация) элементов ITRIUM / ПАК Интеграция в НЕЙРОСС).
ВАЖНО
Команды управления над элементами сети НЕЙРОСС выполняются от имени пользователя автоматизации. Если список команд пуст, проверьте права указанного пользователя [Настройка заданий автоматизации].
Отправка письма на email
Платформа НЕЙРОСС использует задачи автоматизации для информирования ответственных лиц о каких-либо событиях в системе.
Для отправки писем укажите параметры почтового ящика и SMTP-сервера в разделе Дополнительные настройки [Параметры почтового сервера (Email)].
При выборе в качестве параметра действия «Отправка письма на email», вам потребуется:
- Задать заголовок письма.
- Сформулировать текст письма.
- Ввести email-адрес получателя сообщения.
- При необходимости, включить отправку во вложении к письму кадров со «связанных» камер видеонаблюдения.
Отправка отчёта на email
Вы также можете отправить по событию или расписанию любой лицензированный отчёт из АРМ НЕЙРОСС Отчёты.
Для отправки писем укажите параметры почтового ящика и SMTP-сервера в разделе Дополнительные настройки [Параметры почтового сервера (Email)].
При выборе в качестве параметра действия «Отправка отчёта на email», вам потребуется:
Задать все параметры письма аналогично инструкции в подразделе Отправка письма на email.
Письмо с отчётом также может быть дополнено кадрами видеоархива, если задача запускается по событию и, соответственно, есть источник тревог и «привязанные» к нему камеры.
Указать шаблон отчёта, по которому должен строиться отчёт и набор параметров отчёта.
При создании набора параметров отчёта используйте ввод динамического временного диапазона для указания периода времени, за который строится отчёт. У вас появится возможность строить отчёты по событиям доступа, по инцидентам и любые другие типовые отчёты за текущий день, за последний час и прочие. Инструкция по подготовке набора параметров приведена здесь.
Telegram-уведомление
Платформа НЕЙРОСС использует задачи автоматизации для информирования ответственных лиц о каких-либо событиях в системе. Кроме отправки электронных писем возможна отправка уведомлений в Телеграмм-канал.
Для получения сообщений в месседжер Telergam необходимо знать идентификатор своего канала и добавить бота @neyross_bot в свой список контактов.
При выборе в качестве параметра действия «Telegram-уведомление», вам потребуется:
- Сформулировать текст сообщения.
- Ввести ввести идентификатор (id) своего канала.
- При необходимости, включить отправку во вложении к сообщению кадров со «связанных» камер видеонаблюдения.
Отправка HTTP-запроса
Для интеграции с «внешними» системами предусмотрена передача HTTP-запроса. Поддерживаются методы GET, POST, PUT, DELETE. Поддерживаются запросы с Content-Type application/json, для отправки других типов запросов необходимо использовать пользовательский скрипт.
При выборе в качестве параметра действия «HTTP-запрос», вам потребуется:
- Указать URL-адрес «внешнего» сервера, по которому будет проводится приём запросов.
- Указать тип запроса: GET, POST, PUT, DELETE.
- Задать заголовки запроса. Для методов POST и PUT указать тело запроса. Вы можете включить информацию о событии. Для этого используются те же переменные, которые перечислены в подразделе Отправка письма на email.
Пользовательский скрипт
Функция выполнения произвольного скрипта позволяет использовать сложные алгоритмы анализа входных условий и последовательности выполняемых действий. Предоставляется механизм Scala-скриптовой логики и современный редактор с удобной навигацией и подсветкой синтаксиса. Это позволяет решать нестандартные объектовые задачи, «не покрытые» базовым функционалом Платформы НЕЙРОСС, в том числе самостоятельно, с помощью сервиса services.common.CodeCompilationService.
При выборе в качестве параметра действия «Произвольный скрипт», вам потребуется ввести код скрипта и сохранить задание. Чтобы раскрыть редактор, нажмите на кнопку в поле Скрипт.
Для удобства создания собственных скриптов предоставляется базовый шаблон скрипта.
Настройка переменных
Реализована возможность ввода параметров скрипта не напрямую в коде скрипта из редактора, а посредством пользовательского интерфейса. В этом случае для настройки скрипта достаточно ввести требуемые значения и сохранить параметры задания автоматизации. Введённые значения будут добавлены в код скрипта.
Чтобы иметь возможность самостоятельно создавать такие формы настройки необходимо в коде скрипта перед объявлением очередной переменной добавить блок кода следующего вида:
// @parameter { "type": "тип поля", "title": "заголовок поля", "key": "имя переменной" }
Где:
- type — тип поля, возможные значения: "boolean", "string", "number", "select";
- title — заголовок поля в форме — произвольный текст;
- key — имя переменной.
Например:
// @parameter { "type": "number", "title": "Временной интервал, за который учитываются неисправности (сек)", "key": "timeIntervalInSeconds" } val timeIntervalInSeconds = 10
Пример параметров скрипта автоматизации
Логирование
Платформа НЕЙРОСС обеспечивает логирование процедуры выполнения скрипта и ошибок компиляции [Журнал аудита]. Для отладки скрипта перейдите в «живой» журнал аудита (нажмите открыть в поле Журнал аудита).
При переходе в журнал аудита отображается приглашение добавить фильтры для логирования ошибок компиляции. Нажмите на кнопку Да.
Пример логирования ошибок компиляции скрипта
Ошибки также фиксируются в системном журнале.
Примеры
Мы подготовили для вас примеры готовых скриптов [НЕЙРОСС Автоматика].
Сброс счётчика пропусков
Плагин нумерации пропусков обеспечивает автоматическую нумерацию пропусков с возможностью сброса счётчика в начале года, месяца или дня, однако часто требуется обеспечение более сложных условий сброса счётчика.
Инструкция по настройке плагина приведена в разделе [Настройка последовательной нумерации пропусков].
При выборе в качестве параметра действия «Счётчик пропусков», вам потребуется:
- В поле Счётчик пропусков выбрать из раскрывающегося списка счётчик, который требуется сбросить при достижении условия выполнения задания автоматизации.
Импорт и экспорт заданий автоматизации
С версии Платформы НЕЙРОСС 20.5.757 реализована возможность передачи заданий автоматизации с одного узла Платформа НЕЙРОСС на другой.
Чтобы выполнить экспорт задания автоматизации, то есть сохранить набор параметров в файле формата JSON:
- В списке заданий [1] выберите задание, параметры которого требуется сохранить.
В карточке задания нажмите на кнопку Экспорт [6]. Будет сформирован файл, содержащий сведения о номере задания и его названии вида:
задание_автоматизации_№1__ По расписанию → Команда управления.json
и сохранён в папку загрузок браузера.
- Сохраните файл на надёжном носителе и, при необходимости, передайте лицу, осуществляющему импорт на другом узле Платформа НЕЙРОСС.
Чтобы выполнить импорт задания автоматизации:
- В списке заданий [1] нажмите на кнопку Добавить новое задание .
- В карточке задания нажмите на кнопку Импорт [6].
- Укажите путь к сформированному на этапе экспорта файлу формата JSON. Параметры задания будут отображены в карточке задания.
При необходимости, откорректируйте параметры и нажмите на кнопку Создать новое задание.
Вследствие разницы в конфигурации разных узлов Платформа НЕЙРОСС (отличается список элементов, фильтры) часто бывает необходима корректировка параметров задания автоматизации перед его запуском.