Pular para o conteúdo principal

Nó switch

O nó switch encaminha mensagens de acordo com o conteúdo, a estrutura ou outras condições. Use-o para criar lógica condicional nos fluxos.


Configurações do nó switch​

Janela "Node Information" do nó switch: campos "Name", "Property", "Check" e regras "Condition" "==" com valor "APPROVED" e "else"

1. Name​

Nome do nó.
O nome aparece na área de trabalho e ajuda a identificar o nó.
Se o campo ficar vazio, o nó se chamará switch.

Exemplo:

  • Nome do nó: check status

2. Property​

Define qual propriedade do objeto de mensagem msg será usada para verificar as condições. O padrão é payload.

Exemplo:

  • msg.payload
  • msg.topic
  • msg.device.temperature

Propriedades de contexto (flow, global) também são suportadas.


3. Check​

  • check all rules (padrão):
    uma mensagem que atende a várias condições pode ser enviada para várias saídas.
  • stop after first match:
    a mensagem vai apenas para a primeira saída cuja condição ela atende.

4. Rules​

As regras definem a lógica de roteamento. Cada regra está vinculada a uma das saídas do nó, então o nó tem tantas saídas quanto regras. O campo Check determina para quantas saídas a mensagem vai quando várias regras correspondem.

Cada regra tem dois campos: Condition, o tipo de condição, e Value, o valor de comparação. Nas condições equals true, equals false, equals null, not equals null, empty e not empty, o campo Value não aparece.

Tipos de condição disponíveis:

  • ==: verifica se o valor é igual.
  • !=: verifica se o valor é diferente.
  • <: verifica se o valor é menor.
  • <=: verifica se o valor é menor ou igual.
  • >: verifica se o valor é maior.
  • >=: verifica se o valor é maior ou igual.
  • has key: verifica se o objeto contém a chave especificada.
  • between: verifica se o valor está no intervalo especificado (inclusive).
  • contains: verifica se a string ou o array contém o valor especificado.
  • matches regex: verifica se a string corresponde à expressão regular.
  • equals true: verifica se o valor é igual a true.
  • equals false: verifica se o valor é igual a false.
  • equals null: verifica se o valor é igual a null.
  • not equals null: verifica se o valor é diferente de null.
  • is of type: verifica se o valor é do tipo especificado (por exemplo, string, number, boolean).
  • empty: verifica se a string, o array ou o objeto está vazio.
  • not empty: verifica se a string, o array ou o objeto não está vazio.
  • else: é acionada quando nenhuma das outras condições é atendida.

Exemplo:

  • Condition: >, Value: 50

Dados de entrada​

O nó recebe um objeto msg.
As propriedades a verificar são definidas no campo Property.


Dados de saída​

O nó envia a mensagem msg para a saída cuja condição ela atende.
Se a mensagem não atender a nenhuma condição, ela não é enviada para nenhuma saída.


Exemplos de uso​

Exemplo 1: filtragem de dados de temperatura​

Tarefa:
Dividir os dados em três categorias: temperatura baixa, normal e alta.

Fluxo:

[inject] ---> [function] ---> [switch] ---> [debug (low temp)]
| [debug (normal temp)]
| [debug (high temp)]

Configurações do nó switch:

  • Property: msg.payload
  • Condições:
    1. is less than 10 → Saída 1
    2. is between 10 and 30 → Saída 2
    3. is greater than 30 → Saída 3

Resultado:
As temperaturas são encaminhadas de acordo com o valor.