Введение¶
Rule Engine - это простая в использовании платформа для создания рабочих процессов на основе событий. Есть 3 основных компонента:
Сообщение - любое входящее событие. Это могут быть входящие данные с устройств, событие жизненного цикла устройства, событие REST API, запрос RPC и т. д.
Узел правила - функция обработки входящего сообщения. Существует много различных типов узлов, которые могут фильтровать, преобразовывать или выполнять некоторые действия с входящим сообщением.
Цепочка правил - узлы соединяются друг с другом связями, поэтому исходящее сообщение от узла правила отправляется следующим подключенным узлам правил.
Сценарии использования¶
Rule Engine - это настраиваемая платформа для обработки сложных событий. Вот несколько распространенных сценариев использования:
Проверка и изменение данных для входящей телеметрии или атрибутов перед сохранением в базе данных.
Агрегация телеметрии. Например, данные с нескольких устройств могут быть агрегированы в соответствующий актив.
Создание/обновление/очистка сигналов на основе определенных условий.
Запуск действий на основе событий жизненного цикла устройства. Например, создание оповещения, если устройство находится в режиме онлайн/оффлайн.
Загрузка дополнительных данных, необходимых для обработки. Например, порогового значения температуры устройства, которое определено в атрибуте владельца устройства.
Запуск вызовов REST API во внешние системы.
Отправка электронных писем при возникновении сложного события и использование атрибутов других сущностей в шаблоне электронной почты.
Обработка событий в соответствии с настройками в аккаунте пользователя.
Вызовы RPC на основе определенных условий.
Интеграция с внешними системами, через Kafka, MQTT, REST API и т. д.
Запуск Rule Engine¶
Чтобы открыть интерфейс Rule Engine необходимо перейти в web браузере по ссылке https://re.имядомена
, например, https://re.promuc.loc
:
Примечание
Удаление узлов и связей осуществляется выбором удаляемого элемента и нажатием клавиши Backspace.
Примечание
Обмен данными между узлами начинается только после создания цепочки.
Web интерфейс имеет ряд настроек, среди которых есть возможность изменения темы оформления. Для лучшего восприятия дальше в документе могут встречаться комбинация светлой и тёмной тем:
Пример получения данных и их отладочного просмотра¶
В данном простом примере будет рассмотрен процесс передачи данных в Rule Engine при помощи REST API POST запроса и просмотр полученных данных в узле отладки.
Откройте страницу Rule Engine.
Нажмите
Создать цепочку
:
Перетащите узел
HTTP Input
в рабочую область. Откройте его настройки. ПолеAddress
будет содержать путь до сервера Rule Engine:
Перетащите узел
Debug
в рабочую область:
Соедините узел
HTTP Input
с узломDebug
перетаскиванием мыши с выхода узлаHTTP Input
на вход узлаDebug
:
Нажмите иконку
Сохранить цепочку
в правом верхнем углу:
Для проверки работы цепочки можно отправить данные командой
curl
:
Проверить получение данных можно кликнув мышкой на кнопке узла
Debug
:
Внутренний обмен данными Rule Engine¶
Rule Engine передает данные между блоками через сообщения JSON:
{ "id": 2, "msg": { "DATA": { "door": "open", "temp": 23 }, "METADATA": { "chain": "123", "from": "HTTP", "time": 1697437369155 } }, "name": "123", "type": "debug" }
id:
ид блока в системе
msg:
тело сообщения от блока
DATA:
входящие данные
METADATA:
имя цепочки, тип входного блока, время получения сообщения
name:
имя цепочки для дебага, появляется только при выводе данных в веб
type:
тип вывода для дебага, появляется только при выводе данных в веб