> 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

Encaminhe fluxos de dados do IoT Logic com base em condições usando o nó Lógica. Avalie valores de telemetria, acione ações para registros correspondentes e ignore o restante.

## Visão geral técnica e capacidades

{% columns %}
{% column %}
O **Lógica** o nó cria pontos de ramificação inteligentes que roteiam os dados de entrada 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 roteia os resultados por caminhos diferentes com base em o resultado da validação ser bem-sucedido ou falhar. 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="https://1308974401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-82bc1f63ee59856cd086bcafb471df3874d45cb5%2Fiot-logic-logic-node-tile.png?alt=media" 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, com base 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, veja [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="https://1308974401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-4501f0ee515603cadec633c0b982378708c29190%2Fiot-logic-logic-node-in-flow.png?alt=media" 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 IF/THEN 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 roteando os dados conforme apropriado:

* **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 `falso`. Esse é o caso usual, mas não o único: em caso de valor ausente, alguns operadores roteiam para ELSE, deixando o atributo `null` em vez de `falso`. Veja [Valores ausentes e roteamento de null](/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 em 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**: Visualize os resultados da avaliação em [Analisador de dados](/docs/user/pt-br/guide/account/iot-logic/data-stream-analyzer.md) para diagnosticar condições e verificar a lógica
* **Adicionados como sensores personalizados**: Integrar-se à interface principal da Navixy para monitoramento contínuo

Como sensores personalizados, esses atributos permitem duas capacidades 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, veja [Regras e notificações](/docs/user/pt-br/guide/events-and-notifications.md).
* **Entidades de monitoramento**: Você pode adicionar um atributo ao [Lista de Objetos](/docs/user/pt-br/guide/tracking/objects-list.md) widget 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, veja [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ó anterior (**Fonte de Dados** ou outros nós de processamento) para receber dados de entrada para validação.
{% endhint %}

### Capacidades do nó

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

* **Roteamento condicional de dados**: Crie fluxos de trabalho ramificados que direcionam automaticamente os dados com base em expressões lógicas que retornam resultados verdadeiros ou falsos.
* **Validação em tempo real**: Teste os dados recebidos do dispositivo em relação a regras de negócio e limites operacionais à medida que chegam.
* **Suporte a condições complexas**: Combine vários parâmetros usando operadores lógicos (AND, OR etc.) para tomada de decisão sofisticada.
* **Condições baseadas em geocerca**: Faça referência diretamente a geocercas nomeadas da Navixy em expressões usando as `inGeofence()`, `enterGeofence()`{{longitude}} `leaveGeofence()` funções, sem comparações manuais de coordenadas. `geofenceName()` retorna o nome da geocerca em que o dispositivo está, de modo que uma condição possa abranger muitas áreas. Veja [Funções de geocerca](/docs/user/pt-br/guide/account/iot-logic/nodes/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**: Roteie os dados pelas conexões THEN (true) e ELSE (false, ou ocasionalmente null em um valor ausente) para acionar diferentes ações subsequentes.

## Opções de configuração

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

{% column %}

<figure><img src="https://1308974401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-b6c0a06da08316f5e17ead42e1e5b2083b59603a%2FLogic_node_edit.png?alt=media" 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*).
* Este nome será exibido no diagrama do fluxo para fácil identificação.
  {% endstep %}

{% step %}

#### Definir o nome da expressão

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

* Este atributo aparecerá em [Analisador de dados](/docs/user/pt-br/guide/account/iot-logic/data-stream-analyzer.md) e ficará disponível para uso em nós subsequentes.
* Use nomes descritivos como *alerta\_de\_temperatura\_alta* ou excesso\_de\_velocidade\_detectado.
* O sistema gerará automaticamente nomes como *logic\_1*, *logic\_2* se não for especificado.
  {% endstep %}

{% step %}

#### Criar uma expressão condicional

Monte sua instrução lógica usando o campo de expressão.

* Use [operadores lógicos de acordo com a sintaxe da Navixy Expression Language](/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 roteamento de null](/docs/user/pt-br/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing).
* Authorization [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/geofence-functions.md#how-to-add-a-geofence-condition) no campo de expressão.
  {% endstep %}

{% step %}

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

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

{% step %}

#### Conectar caminhos de saída

Depois de configurar o nó, você precisa estabelecer conexões para os resultados da validação.

* **Conexão THEN** (verde): Conecta-se aos nós que devem processar os dados quando a expressão for avaliada como verdadeira.
* **Conexão ELSE** (vermelha): Conecta-se aos nós que devem processar os 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 seguem para o caminho ELSE, mas nem sempre. Uma `!=` comparação com um valor ausente e um literal não nulo é avaliada como `true` e segue para THEN em vez disso, e o mesmo acontece com `!~`{{longitude}} `!^` Webhook `!$` quando o valor vem de `value()`. Erros de sintaxe também seguem para ELSE, mas armazenam o atributo como `null`, e não `falso`. Veja [Valores ausentes e roteamento de null](/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 seguros para null e das tabelas de operadores.
{% endhint %}

Para obter informações detalhadas sobre a sintaxe da expressão, os operadores e o comportamento do fluxo de dados, veja [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="https://1308974401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-4501f0ee515603cadec633c0b982378708c29190%2Fiot-logic-logic-node-in-flow.png?alt=media" 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>)

* **É ativada quando**: A expressão lógica retorna `true`.
* **Requisito de conexão**: Obrigatória. Todo nó de Lógica IF/THEN deve ter pelo menos uma saída THEN.
* **Várias conexões**: Pode se conectar a vários nós subsequentes para processamento paralelo.
* **Usos típicos**: Acionar alertas, processamento especial, cálculos condicionais ou roteamento de dados para endpoints específicos.

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

* **É ativada quando**: A expressão lógica retorna `falso`, é avaliada como `null`, ou não pode ser avaliada.
* **Exceções a observar**: A maioria das comparações com valor ausente segue para cá. Uma `!=` comparação com um valor ausente e um literal não nulo segue para THEN em vez disso, assim como `!~`{{longitude}} `!^` Webhook `!$` em um valor ausente `value()` resultado.
* **O valor armazenado nem sempre é `falso`**: O roteamento para ELSE não garante que o atributo booleano seja armazenado como `falso`. Comparações relacionais (`<`, `<=`, `>`, `>=`) e uma referência isolada a valor ausente caem em ELSE, com o atributo deixado `null`. Veja [Valores ausentes e roteamento de null](/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 apenas 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 roteamento de dados ausentes depende do operador. Veja [Valores ausentes e roteamento de null](/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 com falha, rotear dados por caminhos alternativos de processamento ou continuar operações normais.

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

Ao conectar-se a nós terminais ([Ação](/docs/user/pt-br/guide/account/iot-logic/nodes/action-node.md), [nos nós do IoT Logic fornecem os mesmos recursos subjacentes com automação completa de fluxo e direcionamento para vários dispositivos.](/docs/user/pt-br/guide/account/iot-logic/nodes/webhook-node.md)) que não oferecem suporte a 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="https://1308974401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-4501f0ee515603cadec633c0b982378708c29190%2Fiot-logic-logic-node-in-flow.png?alt=media" alt=""><figcaption></figcaption></figure>

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

* Garante persistência dos dados e visibilidade do sistema
* Permite a validação do fluxo
* Ambos os ramos podem compartilhar o mesmo nó de 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 não poderão ser salvos e exibirão o erro.
{% endhint %}

## Perguntas frequentes

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

Sim. **Lógica** nós podem referenciar quaisquer atributos disponíveis nas fontes de dados conectadas, incluindo parâmetros originais do dispositivo e atributos calculados pelos nós anteriores **Iniciar Atributo** nós. 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, o **Lógica** nó encaminha os dados pela conexão ELSE e armazena o atributo como `null`, e não `falso`. Verifique a sintaxe da expressão e certifique-se de 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 IF/THEN?

Sim. Tanto as conexões THEN quanto as ELSE suportam 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 possibilita processamento paralelo para fluxos de trabalho de negócios complexos.

#### Como monitoro os resultados do nó de Lógica IF/THEN?

Os resultados do nó de Lógica IF/THEN aparecem como atributos booleanos na [Analisador de dados](/docs/user/pt-br/guide/account/iot-logic/data-stream-analyzer.md) tabela. Selecione seus dispositivos e procure o nome do atributo que você definiu no campo de nome da expressão. Os valores normalmente são exibidos como `true` <https://api.eu.navixy.com/v2/>... `falso`, mas um valor ausente pode deixar o atributo `null` em vez disso, dependendo do operador. Veja [Valores ausentes e roteamento de null](/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?

Muito provavelmente, a condição usa `!=` contra um literal não nulo, ou `!~`, em um valor que nunca foi recebido. Ambos os operadores tratam "sem valor" como diferente do literal com o qual você está comparando, portanto são avaliados como `true` e seguem para THEN. Um padrão seguro faria o contrário. Os `!^` Webhook `!$` operadores fazem o mesmo em um `value()` resultado ausente e são resolvidos como `null` quando o atributo é referenciado pelo nome. Adicione uma verificação de presença (`value('attr', 0, 'all') != null && ...`) ou uma `== null` verificação para checar se a condição só deve ser acionada quando o atributo tiver um valor real. Veja [Valores ausentes e roteamento de null](/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 IF/THEN juntos?

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

<figure><img src="https://1308974401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-ee4829400641ec381aa3dec65b7dbb1d01d6ebc1%2Fiot-logic-logic-node-chained.png?alt=media" 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 IF/THEN devem se conectar a Pontos de Extremidade de Saída?

Cada ramo de Lógica IF/THEN 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 oferecem suporte a conexões de saída, crie uma conexão paralela do nó de Lógica IF/THEN 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
