Nodo switch
El nodo switch
está diseñado para enrutar mensajes en función de su contenido, estructura u otras condiciones. Es una herramienta poderosa para crear lógica condicional en flujos.
Configuraciones para el nodo switch
1. Nombre
Un campo para especificar el nombre del nodo.
El nombre se muestra en el espacio de trabajo y ayuda a identificar fácilmente el nodo.
Si se deja vacío, el nodo se llamará inject
.
Ejemplo:
- Nombre del nodo:
verificar estado
2. Propiedad
Especifica qué propiedad del objeto de mensaje msg
se utilizará para verificar las condiciones.
Ejemplo:
msg.payload
msg.topic
msg.device.temperature
También se admiten propiedades de entorno (flow
, global
).
3. Verificar
- Verificar hasta la primera coincidencia (Predeterminado):
El mensaje se envía solo a la primera salida que cumple con la condición. - Verificar todas las coincidencias:
El mensaje puede enviarse a múltiples salidas si cumple con varias condiciones.
3. Reglas
Define la lógica de enrutamiento. Cada condición está vinculada a una de las salidas del nodo. El mensaje se enviará a la primera salida adecuada.
Tipos de condiciones disponibles:
==
: Verifica la igualdad de valor.!=
: Verifica la desigualdad.<
: Verifica si el valor es menor.<=
: Verifica si el valor es menor o igual a.>
: Verifica si el valor es mayor.>=
: Verifica si el valor es mayor o igual a.has key
: Verifica si el objeto contiene la clave especificada.between
: Verifica si el valor está dentro del rango especificado (inclusive).contains
: Verifica si la cadena o el arreglo contiene el valor especificado.matches regex
: Verifica si la cadena coincide con la expresión regular.equals true
: Verifica si el valor es igual atrue
.equals false
: Verifica si el valor es igual afalse
.equals null
: Verifica si el valor es igual anull
.not equals null
: Verifica si el valor no es igual anull
.is of type
: Verifica si el valor coincide con el tipo especificado (por ejemplo,string
,number
,boolean
).empty
: Verifica si la cadena, arreglo u objeto está vacío.not empty
: Verifica si la cadena, arreglo u objeto no está vacío.else
: Se ejecuta si ninguna de las otras condiciones se cumple.
Ejemplo:
msg.payload
es mayor que50
Entrada
El nodo acepta el objeto msg
.
Qué propiedades específicas se verificarán se define en el campo Propiedad.
Salida
El nodo envía el mensaje msg
a la salida que corresponde a la condición especificada.
Si el mensaje no cumple con ninguna condición, no se envía a las salidas.
Ejemplos de Uso
Ejemplo 1: Filtrando datos de temperatura
Tarea:
Categorizar datos en tres categorías: temperatura baja, normal y alta.
Flujo:
[inject] ---> [function] ---> [switch] ---> [debug (temp baja)]
| [debug (temp normal)]
| [debug (temp alta)]
Configuraciones para el nodo switch
:
- Propiedad:
msg.payload
- Condiciones:
es menor que 10
→ Salida 1está entre 10 y 30
→ Salida 2es mayor que 30
→ Salida 3
Resultado:
Las temperaturas se enrutarán en función de su valor.