Узел switch
Узел switch
предназначен для маршрутизации сообщений в зависимости от их содержимого, структуры или других условий. Это мощный инструмент для создания условной логики в потоках.
Настройки узла switch
1. Name
Поле для указания имени узла.
Имя отображается в рабочей области и помогает легко идентифицировать узел.
Если оставить пустым, узел будет называться inject
.
Пример:
- Имя узла:
check status
2. Property
Указывает, какое свойство объекта сообщения msg
будет использоваться для проверки условий.
Пример:
msg.payload
msg.topic
msg.device.temperature
Также поддерживаются свойства среды (flow
, global
).
3. Check
- Проверка до первого совпадения (Default):
Сообщение отправляется только на первый выход, удовлетворяющий условию. - Проверка всех совпадений:
Сообщение может быть отправлено на несколько выходов, если соответствует нескольким условиям.
3. Rules
Определяют логику маршрутизации. Каждое условие привязано к одному из выходов узла. Сообщение будет отправлено на первый подходящий выход.
Доступные типы условий:
==
: Проверяет равенство значения.!=
: Проверяет неравенство.<
: Проверяет, меньше ли значение.<=
: Проверяет, меньше или равно ли значение.>
: Проверяет, больше ли значение.>=
: Проверяет, больше или равно ли значение.has key
: Проверяет, содержит ли объект указанный ключ.between
: Проверяет, находится ли значение в указанном диапазоне (включительно).contains
: Проверяет, содержит ли строка или массив указанное значение.matches regex
: Проверяет, соответствует ли строка регулярному выражению.equals true
: Проверяет, равно ли значениеtrue
.equals false
: Проверяет, равно ли значениеfalse
.equals null
: Проверяет, равно ли значениеnull
.not equals null
: Проверяет, не равно ли значениеnull
.is of type
: Проверяет, соответствует ли значение указанному типу (например,string
,number
,boolean
).empty
: Проверяет, является ли строка, массив или объект пустым.not empty
: Проверяет, не является ли строка, массив или объект пустым.else
: Выполняется, если ни одно из других условий не выполнено.
Пример:
msg.payload
is greater than50
Входные данные
Узел принимает объект msg
.
Какие именно свойства будут проверяться, задается в поле Property.
Выходные данные
Узел отправляет сообщение msg
на тот выход, который соответствует заданному условию.
Если сообщение не соответствует ни одному условию, оно не отправляется на выходы.