> For the complete documentation index, see [llms.txt](https://navixy.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://navixy.com/docs/user/pt-br/guide/account/iot-logic/nodes/logic-node.md).

# Lógica IF/THEN

## Visão geral técnica e recursos

{% columns %}
{% column %}
O **Lógica** O nó cria pontos de ramificação inteligentes que encaminham os dados recebidos por caminhos diferentes com base em condições lógicas. Ele recebe dados de outros nós, valida-os em relação às condições que você definiu e encaminha os resultados por caminhos diferentes com base no sucesso ou na falha da validação. O nó permite que você crie fluxos de trabalho IF->THEN/ELSE em que diferentes ações ocorrem automaticamente com base em condições de dados em tempo real.
{% endcolumn %}

{% column %}

<figure><img src="/files/08c7bc4875972525156c4becad34d0e727487f61" alt="IF/THEN Logic node tile"><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

{% hint style="info" %}
O **Lógica** Os nós são configurados separadamente para cada fluxo na interface da plataforma Navixy. Cada nó contém apenas uma fórmula lógica, baseando-se em [Linguagem de Expressão do Navixy IoT Logic](/docs/iot-logic-api/technologies/navixy-iot-logic-expression-language.md).\
Para opções de sintaxe específicas relacionadas a expressões lógicas, consulte [expressões e sintaxe da Lógica](/docs/user/pt-br/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md).
{% endhint %}

<figure><img src="/files/31833d1e80cf64ba9811224f90396056134a4b3b" alt="IF/THEN Logic node positioning in the flow architecture (with inbound and outbound connections)"><figcaption></figcaption></figure>

### Como os nós de Lógica funcionam

Quando os dados chegam pela primeira vez a um **Lógica** nó, o IoT Logic cria um atributo booleano definido pelo usuário que armazena os resultados da avaliação. Cada pacote de dados subsequente é avaliado em relação à sua expressão lógica, atualizando o valor desse atributo e encaminhando os dados de acordo com isso:

* **Resultados verdadeiros**: Os dados fluem pela conexão THEN (verde) com o atributo booleano definido como `true`.
* **Resultados falsos**: Os dados fluem pela conexão ELSE (vermelha) com o atributo booleano definido como `false`. Esse é o caso usual, mas não o único: na ausência de valor, alguns operadores encaminham para ELSE enquanto deixam o atributo `nulo` em vez de `false`. Veja [Valores ausentes e encaminhamento nulo](/docs/user/pt-br/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing).

Essa avaliação acontece de forma independente para cada pacote de dados, permitindo que diferentes registros do mesmo dispositivo sigam caminhos diferentes com base nas condições em tempo real.

### Integração com a arquitetura do fluxo

Os atributos booleanos criados por **Lógica** nós vão além do roteamento do fluxo e se integram aos recursos mais amplos de monitoramento da Navixy. Como são atributos personalizados definidos pelo usuário, eles podem ser:

* **Monitorados em tempo real**: Veja os resultados da avaliação em [Analisador de dados](/docs/user/pt-br/guide/account/iot-logic/data-stream-analyzer.md) para depurar condições e verificar a lógica
* **Adicionados como sensores personalizados**: Integram-se à interface principal da Navixy para monitoramento contínuo

Como sensores personalizados, esses atributos permitem dois recursos principais:

* **Disparo de alertas**: Você pode criar regras personalizadas com base no valor de um sensor para receber notificações em caso de desvios. Para detalhes sobre a criação de regras, consulte [Regras e notificações](/docs/user/pt-br/guide/events-and-notifications.md).
* **Monitoramento de entidades**: Você pode adicionar um atributo ao widget [Lista de objetos](/docs/user/pt-br/guide/tracking/objects-list.md) para monitorar seu valor juntamente com outras leituras do dispositivo. Para detalhes sobre como criar um sensor personalizado a partir de um atributo do IoT Logic, consulte [Exibindo novos atributos calculados na plataforma Navixy](/docs/user/pt-br/guide/account/iot-logic/nodes/initiate-attribute-node/displaying-new-calculated-attributes-on-the-navixy-platform.md).

{% hint style="info" %}
O **Lógica** O nó requer uma conexão com pelo menos um nó precedente (**Fonte de Dados** ou outros nós de processamento) para receber dados de entrada para validação.
{% endhint %}

### Recursos do nó

O **Lógica** O nó oferece:

* **Roteamento condicional de dados**: Crie fluxos de trabalho em ramificação que direcionam dados automaticamente com base em expressões lógicas que retornam resultados verdadeiros ou falsos.
* **Validação em tempo real**: Teste os dados recebidos do dispositivo contra regras de negócios e limites operacionais à medida que os dados chegam.
* **Suporte a condições complexas**: Combine vários parâmetros usando operadores lógicos (AND, OR etc.) para uma tomada de decisão sofisticada.
* **Condições baseadas em Geocerca**: Faça referência a geocercas nomeadas da Navixy diretamente em expressões usando `inGeofence()`, `enterGeofence()`, e `leaveGeofence()` funções, sem comparações manuais de coordenadas. Veja [Funções de Geocerca](/docs/user/pt-br/guide/account/iot-logic/nodes/logic-node/geofence-functions.md).
* **Criação de atributos**: Gere atributos booleanos que registram os resultados da validação para uso em outros nós, nos sistemas de monitoramento da Navixy e em serviços de terceiros.
* **Caminhos de saída flexíveis**: Encaminhe os dados pelas conexões THEN (verdadeiro) e ELSE (falso, ou ocasionalmente nulo na ausência de valor) para acionar diferentes ações subsequentes.

## Opções de configuração

{% columns %}
{% column valign="middle" %}
O **Lógica** O nó permite que você defina expressões condicionais que avaliam os dados recebidos e criam caminhos em ramificação em seu fluxo com base nos resultados.
{% endcolumn %}

{% column %}

<figure><img src="/files/47ff497295b5da3cf0dcbadf2b77037b9317dece" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

Vamos ver quais elementos este nó usa e o que você pode configurar ao trabalhar com ele.

### Etapas de configuração

{% stepper %}
{% step %}

#### Especificar o nome do nó

Digite um nome descritivo para este **Lógica** nó.

* Use um nome que identifique claramente a finalidade da validação (por exemplo, *Verificação de alerta de temperatura*, *Detecção de excesso de velocidade*).
* Esse nome será exibido no diagrama de fluxo para fácil identificação.
  {% endstep %}

{% step %}

#### Definir nome da expressão

Digite o nome do atributo booleano que armazenará o resultado da validação.

* Esse atributo aparecerá em [Analisador de dados](/docs/user/pt-br/guide/account/iot-logic/data-stream-analyzer.md) e ficará disponível para uso nos nós subsequentes.
* Use nomes descritivos como *high\_temperature\_alert* ou speed\_violation\_detected.
* O sistema gerará automaticamente nomes como *logic\_1*, *logic\_2* se não for especificado.
  {% endstep %}

{% step %}

#### Criar uma expressão condicional

Crie sua declaração lógica usando o campo de expressão.

* Use [operadores lógicos de acordo com a sintaxe da Linguagem de Expressão da Navixy](/docs/user/pt-br/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md) para referenciar parâmetros do dispositivo e atributos calculados.
* A expressão deve retornar um valor booleano (true/false) para o funcionamento adequado do nó. Um valor ausente pode se comportar de maneira diferente. Veja [Valores ausentes e encaminhamento nulo](/docs/user/pt-br/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing).
* Use o cabeçalho [o recurso de preenchimento automático](/docs/user/pt-br/guide/account/iot-logic/nodes/initiate-attribute-node/managing-attributes.md#autofill-attribute-names) para selecionar os atributos disponíveis nas fontes de dados conectadas.
* Para referenciar uma geocerca da Navixy como condição, use o [seletor de geocerca](/docs/user/pt-br/guide/account/iot-logic/nodes/logic-node/geofence-functions.md) no campo de expressão.
  {% endstep %}

{% step %}

#### Salve a configuração do nó

Clique em **Aplicar alterações** para concluir a criação do nó.
{% endstep %}

{% step %}

#### Conectar caminhos de saída

Depois que você configurou o nó, é preciso estabelecer conexões para os resultados da validação.

* **Conexão THEN** (verde): Conecta-se aos nós que devem processar dados quando a expressão for avaliada como verdadeira.
* **Conexão ELSE** (vermelha): Conecta-se aos nós que devem processar dados sempre que a expressão não for avaliada como verdadeira. Isso inclui um resultado falso ou um valor ausente que o nó não conseguiu avaliar.
* A conexão THEN é obrigatória, enquanto a conexão ELSE é opcional.
  {% endstep %}
  {% endstepper %}

{% hint style="warning" %}
Dados ausentes frequentemente são encaminhados para o caminho ELSE, mas nem sempre. Uma `!=` comparação com um valor ausente e um literal não nulo é avaliada como `true` e é encaminhada para THEN em vez disso, assim como os operadores de padrão negado (`!~`, `!^`, `!$`). Erros de sintaxe também são encaminhados para ELSE, mas armazenam o atributo como `nulo`, e não `false`. Veja [Valores ausentes e encaminhamento nulo](/docs/user/pt-br/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing) para o conjunto completo de padrões e tabelas de operadores com segurança para nulos.
{% endhint %}

Para informações detalhadas sobre a sintaxe da expressão, os operadores e o comportamento do fluxo de dados, consulte [expressões e sintaxe da Lógica](/docs/user/pt-br/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md).

## Conexões de saída e fluxo de dados

O **Lógica** O nó cria dois caminhos de saída distintos com base nos resultados da avaliação da expressão.

<figure><img src="/files/31833d1e80cf64ba9811224f90396056134a4b3b" alt="IF/THEN Logic node showing THEN and ELSE connections with green and red color coding"><figcaption></figcaption></figure>

### Conexão THEN (<mark style="color:verde;">verde</mark>)

* **Ativa-se quando**: A expressão lógica retorna `true`.
* **Requisito de conexão**: Obrigatória. Todo nó de Lógica deve ter pelo menos uma saída THEN.
* **Múltiplas conexões**: Pode conectar-se a vários nós subsequentes para processamento paralelo.
* **Usos típicos**: Disparo de alertas, processamento especial, cálculos condicionais ou encaminhamento de dados para pontos de extremidade específicos.

### Conexão ELSE (<mark style="color:vermelha;">vermelha</mark>)

* **Ativa-se quando**: A expressão lógica retorna `false`, é avaliada como `nulo`, ou não pode ser avaliada.
* **Exceções a observar**: A maioria das comparações com valor ausente vai para cá, mas `!=` com um valor ausente e um literal não nulo é encaminhada para THEN em vez disso, assim como os operadores de padrão negado (`!~`, `!^`, `!$`) com um valor ausente.
* **O valor armazenado nem sempre é `false`**: Encaminhar para ELSE não garante que o atributo booleano seja armazenado como `false`. As comparações relacionais (`<`, `<=`, `>`, `>=`) e uma referência pura a valor ausente vão para ELSE com o atributo deixado `nulo`. Veja [Valores ausentes e encaminhamento nulo](/docs/user/pt-br/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing).
* **Requisito de conexão**: Opcional. Use somente quando você precisar lidar com resultados negativos.
* **Tratamento de erros**: Processa casos em que as expressões não podem ser avaliadas devido a erros de sintaxe ou tipos de dados inválidos. O encaminhamento de dados ausentes depende do operador. Veja [Valores ausentes e encaminhamento nulo](/docs/user/pt-br/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing).
* **Usos típicos**: Registrar validações falhas, encaminhar dados por caminhos alternativos de processamento ou continuar as operações normais.

### **Requisito de nó terminal**

Ao conectar a nós terminais ([Ação](/docs/user/pt-br/guide/account/iot-logic/nodes/action-node.md), [Webhook](/docs/user/pt-br/guide/account/iot-logic/nodes/webhook-node.md)) que não suportam conexões de saída, crie conexões paralelas para garantir que tanto o nó terminal quanto um Ponto de Extremidade de Saída recebam dados:

<figure><img src="/files/31833d1e80cf64ba9811224f90396056134a4b3b" alt=""><figcaption></figcaption></figure>

**Por que ambos os ramos precisam de Pontos de Extremidade de Saída:**

* Garante a persistência dos dados e a visibilidade do sistema
* Permite a validação do fluxo
* Ambos os ramos podem compartilhar o mesmo Ponto de Extremidade de Saída

{% hint style="danger" %}
**Erro de validação:** Fluxos sem Pontos de Extremidade de Saída em todos os ramos falharão ao salvar com o erro.
{% endhint %}

## Perguntas frequentes

#### Posso usar atributos criados por outros nós em expressões de Lógica?

Sim. **Lógica** Os nós podem referenciar quaisquer atributos disponíveis das fontes de dados conectadas, incluindo parâmetros originais do dispositivo e atributos calculados por nós anteriores **Iniciar Atributo** O recurso de preenchimento automático ajuda você a selecionar entre todos os atributos disponíveis.

#### O que acontece se minha expressão contiver erros de sintaxe?

Se uma expressão contiver erros de sintaxe ou não puder ser avaliada, **Lógica** o nó encaminha os dados pela conexão ELSE e armazena o atributo como `nulo`, e não `false`. Verifique a sintaxe da expressão e confirme que todos os atributos referenciados existam no seu fluxo de dados.

#### Posso conectar vários nós à mesma saída do nó de Lógica?

Sim. As conexões THEN e ELSE oferecem suporte a várias conexões de saída, permitindo que você acione várias ações diferentes com base na mesma condição lógica. Isso permite processamento paralelo para fluxos de trabalho empresariais complexos.

#### Como faço para monitorar os resultados do nó de Lógica?

Os resultados do nó de Lógica aparecem como atributos booleanos na tabela [Analisador de dados](/docs/user/pt-br/guide/account/iot-logic/data-stream-analyzer.md) Selecione seus dispositivos e procure o nome do atributo que você especificou no campo de nome da expressão. Os valores normalmente são exibidos como `true` ou `false`, mas um valor ausente pode deixar o atributo `nulo` em vez disso, dependendo do operador. Veja [Valores ausentes e encaminhamento nulo](/docs/user/pt-br/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing).

#### Por que minha condição foi acionada mesmo que o atributo ainda não tenha valor?

O mais provável é que a condição use `!=` com um literal não nulo ou um operador de padrão negado como `!~`, `!^`, `!$`, em um valor que nunca foi recebido. Esses operadores tratam "sem valor" de forma diferente do literal ao qual você está comparando, então eles são avaliados como `true` e encaminham para THEN. Isso é o oposto do que você esperaria de um padrão seguro por default. Adicione uma guarda de presença (`value('attr', 0, 'all') != null && ...`) ou um `== null` explícito para verificar se a condição deve ser acionada apenas depois que o atributo tiver um valor real. Veja [Valores ausentes e encaminhamento nulo](/docs/user/pt-br/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing) para a análise completa operador por operador.

#### Posso encadear vários nós de Lógica?

Sim. Você pode conectar **Lógica** nós em sequência para criar árvores de decisão complexas. Cada **Lógica** nó pode referenciar os atributos booleanos criados por nós anteriores, permitindo fluxos de trabalho de validação sofisticados em várias etapas. **Lógica** nós, permitindo fluxos de trabalho de validação sofisticados em várias etapas.

<figure><img src="/files/cbcdc2440768d08cf44b4407d7ee6ebaacfad5c3" alt="Example flow showing multiple IF/THEN Logic nodes connected in sequence for complex decision trees"><figcaption></figcaption></figure>

#### Por que os ramos de Lógica devem se conectar aos Pontos de Extremidade de Saída?

Todo ramo de Lógica deve terminar em um Ponto de Extremidade de Saída para validação do fluxo de dados e visibilidade do sistema. Ao usar nós terminais (Action, Webhook) que não suportam conexões de saída, crie uma conexão paralela do nó de Lógica diretamente para um Ponto de Extremidade de Saída. Ambos os ramos podem compartilhar o mesmo Ponto de Extremidade de Saída, se necessário.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://navixy.com/docs/user/pt-br/guide/account/iot-logic/nodes/logic-node.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
