Pular para o conteúdo principal

Node switch

O nó switch é projetado para roteamento de mensagens com base em seu conteúdo, estrutura ou outras condições. É uma ferramenta poderosa para criar lógica condicional em fluxos.


Configurações para o nó switch

IMG2

1. Nome

Um campo para especificar o nome do nó.
O nome é exibido no espaço de trabalho e ajuda a identificar facilmente o nó.
Se deixado em branco, o nó será chamado de inject.

Exemplo:

  • Nome do nó: verificar status

2. Propriedade

Especifica qual propriedade do objeto de mensagem msg será usada para verificar as condições.

Exemplo:

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

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


3. Verificação

  • Verificar até a primeira correspondência (Padrão):
    A mensagem é enviada apenas para a primeira saída que atende à condição.
  • Verificar todas as correspondências:
    A mensagem pode ser enviada para várias saídas se atender a várias condições.

3. Regras

Define a lógica de roteamento. Cada condição está vinculada a uma das saídas do nó. A mensagem será enviada para a primeira saída adequada.

Tipos de condições disponíveis:

  • ==: Verifica a igualdade de valor.
  • !=: Verifica a desigualdade.
  • <: Verifica se o valor é menor.
  • <=: Verifica se o valor é menor ou igual a.
  • >: Verifica se o valor é maior.
  • >=: Verifica se o valor é maior ou igual a.
  • has key: Verifica se o objeto contém a chave especificada.
  • between: Verifica se o valor está dentro do intervalo especificado (inclusivo).
  • contains: Verifica se a string ou 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 não é igual a null.
  • is of type: Verifica se o valor corresponde ao tipo especificado (por exemplo, string, number, boolean).
  • empty: Verifica se a string, array ou objeto está vazio.
  • not empty: Verifica se a string, array ou objeto não está vazio.
  • else: Executa se nenhuma das outras condições for atendida.

Exemplo:

  • msg.payload é maior que 50

Entrada

O nó aceita o objeto msg.
Quais propriedades específicas serão verificadas é definido no campo Propriedade.


Saída

O nó envia a mensagem msg para a saída que corresponde à condição especificada.
Se a mensagem não atender a nenhuma condição, não é enviada para as saídas.


Exemplos de Uso

Exemplo 1: Filtrando dados de temperatura

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

Fluxo:

[inject] ---> [function] ---> [switch] ---> [debug (temp baixa)]
| [debug (temp normal)]
| [debug (temp alta)]

Configurações para o nó switch:

  • Propriedade: msg.payload
  • Condições:
    1. é menor que 10 → Saída 1
    2. está entre 10 e 30 → Saída 2
    3. é maior que 30 → Saída 3

Resultado:
As temperaturas serão roteadas com base em seu valor.