Pular para o conteúdo principal

Nó 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 do nó switch​

IMG2

1. Nome​

Campo para especificar o nome do nó.
O nome é exibido na área de trabalho e ajuda a identificar facilmente o nó.
Se deixado em branco, o nó será chamado de switch.

Exemplo:

  • Nome do nó: verificar status

2. Propriedade​

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

Exemplo:

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

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


3. Verificação​

  • verificar todas as regras (padrão):
    A mensagem pode ser enviada para várias saídas se corresponder a várias condições.
  • parar após a primeira correspondência:
    A mensagem é enviada apenas para a primeira saída que atende à condição.

4. Regras​

Definem a lógica de roteamento. Cada regra está vinculada a uma das saídas do nó: quantas regras, tantas saídas. Para quantas saídas a mensagem será enviada em caso de várias correspondências, determina o campo Verificação.

Cada regra tem dois campos: Condição — tipo de condição e Valor — valor para comparação. Para as condições equals true, equals false, equals null, not equals null, empty e not empty, o campo Valor não é exibido.

Tipos de condições disponíveis:

  • ==: Verifica a igualdade do valor.
  • !=: Verifica a desigualdade.
  • <: 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á dentro do intervalo especificado (inclusive).
  • 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:

  • Condição: >, Valor: 50

Dados de entrada​

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


Dados de saída​

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


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 (temp baixa)]
| [debug (temp normal)]
| [debug (temp alta)]

Configurações do 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 seus valores.