Операции
В этой секции можно задать набор предопределённых действий, которые могут выполняться при возникновении следующих событий:
-
нажатии кнопки запуска (в секции, контекстном меню объекта/связи или на виджете),
-
срабатывании триггера (действия при смене состояний).
Событие запуска и результат выполнения операции записываются в журнал с указанием времени и инициатора. |
Операции могут быть использованы для:
Добавление операций по умолчанию для класса объектов доступно в окне конфигурации системы.
Секция доступна только пользователям с правами на выполнение операций. Добавлять, редактировать и удалять операции могут пользователи с правами на управление операциями. |
Кнопки управления:
- выполнить операцию;
- изменить операцию;
- удалить операцию.
Для создания новой операции необходимо нажать кнопку .
Существуют два типа операций, в зависимости от выбора которых изменяются поля для заполнения:
-
Выполнение программы / скрипта - вызов исполняемого файла.
-
MQTT-сообщение - отправка сообщения по протоколу MQTT.
Описание полей:
Поле | Описание в программе / скрипте | Описание в MQTT | ||
---|---|---|---|---|
Имя |
Имя операции, отображаемое в web-интерфейсе. |
|||
Тип |
Выпадающий список с доступными типами операций. |
|||
Подтип |
Выпадающий список с доступными подтипами:
|
|||
Аргументы |
Выпадающий список, где задаются аргументы, с которыми будет запущен скрипт. |
|||
Топик |
MQTT-топик для отправления сообщения. |
|||
Сообщение |
Текст MQTT-сообщения. |
|||
Описание |
Пояснение к операции. |
|||
Показать результаты во всплывающем сообщении |
Если переключатель установлен в положение ДА, при выполнении операции отобразится всплывающее окно в браузере, в котором указываются:
Окно закрывается при нажатии кнопки в правом верхнем углу окна или при обновлении страницы.
|
В операциях можно использовать следующие переменные:
-
{{id}}
– идентификатор объекта, в котором запущена операция; -
{{properties.имя_свойства}}
– значение свойства объекта, в котором запущена операция (в переменной указывается имя свойства); -
{{jobId}}
– идентификатор запущенной операции;Идентификатор уникален для каждого запуска - подробности в документации по REST API. -
{{user.id}}
– идентификатор пользователя, который запустил операцию; -
{{user.login}}
– логин пользователя, который запустил операцию.
Данные переменные можно использовать в:
-
топике и сообщении операций типа MQTT-сообщение;
-
скрипте операций типа Выполнение программы/скрипта - Скрипт с указанным текстом.
Запрос аргументов операции у пользователя
Перед выполнением операции у пользователя можно запросить аргументы, которые будут передаваться в скрипт. Для этого в скрипте нужно указать макрос {{ask.имя_аргумента}}
.
Для операций подтипа "Программа/скрипт в ФС" и "Скрипт из репозитария" этот макрос можно добавлять только в поле "Аргументы". Для подтипа "Скрипт с указанным текстом" {{ask.имя_аргумента}} можно указывать как в списке "Аргументы", так и в теле скрипта.
Запрос аргументов работает только для операций типа "Выполнение программы / скрипта". Для операций типа "MQTT-сообщение" макрос {{ask.имя_аргумента}} заменяется на пустую строку.
|
Например, операция, которая вызывает следующий скрипт, запросит у пользователя, который её запустил, переменные packets_count
и ip_address
:
#!/bin/bash
ping -c {{ask.packets_count}} {{ask.ip_address}}
При запуске этой операции, система покажет пользователю следующее окно, в котором он сможет ввести значения переменных packets_count
и ip_address
:
Также этот макрос можно использовать в поле "Аргументы":
Для того, чтобы пример выше мог работать с аргументами, его нужно модифицировать следующим образом:
#!/bin/bash
ping -c "$1" "$2"