Nodo switch
El nodo switch enruta mensajes según su contenido, su estructura u otras condiciones. Sirve para crear lógica condicional en los flujos.
Configuración del nodo switch

1. Name
Nombre del nodo.
El nombre aparece en el área de trabajo y ayuda a identificar el nodo.
Si lo deja vacío, el nodo se llamará switch.
Ejemplo:
- Nombre del nodo:
check status
2. Property
Propiedad del objeto de mensaje msg con la que se comprueban las condiciones. El valor predeterminado es payload.
Ejemplo:
msg.payloadmsg.topicmsg.device.temperature
También se admiten propiedades de contexto (flow, global).
3. Check
- check all rules (predeterminado):
si el mensaje cumple varias condiciones, puede enviarse a varias salidas. - stop after first match:
el mensaje se envía solo a la primera salida cuya condición cumple.
4. Rules
Las reglas definen la lógica de enrutamiento. Cada regla está vinculada a una salida del nodo, así que el nodo tiene tantas salidas como reglas. Cuando coinciden varias reglas, el campo Check determina a cuántas salidas va el mensaje.
Cada regla tiene dos campos: Condition (tipo de condición) y Value (valor con el que se compara). Con las condiciones equals true, equals false, equals null, not equals null, empty y not empty, el campo Value no se muestra.
Tipos de condición disponibles:
==: comprueba si el valor es igual.!=: comprueba si el valor es distinto.<: comprueba si el valor es menor.<=: comprueba si el valor es menor o igual.>: comprueba si el valor es mayor.>=: comprueba si el valor es mayor o igual.has key: comprueba si el objeto contiene la clave indicada.between: comprueba si el valor está dentro del rango indicado (ambos extremos incluidos).contains: comprueba si la cadena o el arreglo contiene el valor indicado.matches regex: comprueba si la cadena coincide con la expresión regular.equals true: comprueba si el valor estrue.equals false: comprueba si el valor esfalse.equals null: comprueba si el valor esnull.not equals null: comprueba si el valor no esnull.is of type: comprueba si el valor es del tipo indicado (por ejemplo,string,number,boolean).empty: comprueba si la cadena, el arreglo o el objeto está vacío.not empty: comprueba si la cadena, el arreglo o el objeto no está vacío.else: se aplica si no se cumple ninguna de las demás condiciones.
Ejemplo:
- Condition:
>, Value:50
Datos de entrada
El nodo recibe un objeto msg.
Las propiedades que se comprueban se definen en el campo Property.
Datos de salida
El nodo envía el mensaje msg a la salida cuya condición se cumple.
Si el mensaje no cumple ninguna condición, no se envía a ninguna salida.
Ejemplos de uso
Ejemplo 1: Filtrado de datos de temperatura
Tarea:
Clasificar los datos en tres categorías: temperatura baja, normal y alta.
Flujo:
[inject] ---> [function] ---> [switch] ---> [debug (low temp)]
| [debug (normal temp)]
| [debug (high temp)]
Configuración del nodo switch:
- Property:
msg.payload - Condiciones:
is less than 10→ Salida 1is between 10 and 30→ Salida 2is greater than 30→ Salida 3
Resultado:
Cada temperatura se enruta según su valor.