> 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/es/guide/account/iot-logic/nodes/logic-node.md).

# IF/THEN Lógica

Dirija los flujos de datos de IoT Logic según condiciones con el nodo IF/THEN Lógica. Evalúe los valores de telemetría, active acciones para los registros que coincidan y omita el resto.

## Visión general técnica y capacidades

{% columns %}
{% column %}
El **IF/THEN Lógica** El nodo crea puntos de bifurcación inteligentes que enrutan los datos entrantes por distintas rutas según condiciones lógicas. Recibe datos de otros nodos, los valida con respecto a las condiciones que usted definió y enruta los resultados por distintas rutas según si la validación tiene éxito o falla. El nodo le permite crear flujos de trabajo IF->THEN/ELSE en los que distintas acciones ocurren automáticamente según las condiciones de los datos en tiempo real.
{% endcolumn %}

{% column %}

<figure><img src="https://1900701122-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" %}
El **IF/THEN Lógica** los nodos se configuran por separado para cada flujo en la interfaz de usuario de la plataforma Navixy. Cada nodo contiene solo una fórmula lógica y se basa en [Lenguaje de expresiones de Navixy IoT Logic](/docs/iot-logic-api/technologies/navixy-iot-logic-expression-language.md).\
Para opciones de sintaxis específicas relacionadas con expresiones lógicas, consulte [expresiones y sintaxis de IF/THEN Lógica](/docs/user/es/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md).
{% endhint %}

<figure><img src="https://1900701122-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>

### Cómo funcionan los nodos de IF/THEN Lógica

Cuando los datos llegan por primera vez a un **IF/THEN Lógica** nodo, IoT Logic crea un atributo booleano definido por el usuario que almacena los resultados de la evaluación. Cada paquete de datos posterior se evalúa frente a su expresión lógica, actualizando el valor de este atributo y enrutando los datos en consecuencia:

* **Resultados verdaderos**: Los datos fluyen a través de la conexión THEN (verde) con el atributo booleano establecido en `true`.
* **Resultados falsos**: Los datos fluyen a través de la conexión ELSE (roja) con el atributo booleano establecido en `falso`. Ese es el caso habitual, pero no el único: ante un valor faltante, algunos operadores envían a ELSE y dejan el atributo `null` en lugar de `falso`. Consulte [Valores faltantes y enrutamiento de null](/docs/user/es/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing).

Esta evaluación se realiza de forma independiente para cada paquete de datos, lo que permite que distintos registros del mismo dispositivo sigan rutas diferentes según las condiciones en tiempo real.

### Integración con la arquitectura del flujo

Los atributos booleanos creados por **IF/THEN Lógica** los nodos van más allá del enrutamiento del flujo e integran las capacidades de monitoreo más amplias de Navixy. Como se trata de atributos personalizados definidos por el usuario, pueden ser:

* **Monitoreados en tiempo real**: Ver los resultados de la evaluación en [Analizador de datos](/docs/user/es/guide/account/iot-logic/data-stream-analyzer.md) para solucionar problemas en las condiciones y verificar la lógica
* **Agregados como sensores personalizados**: Integrarse con la interfaz principal de Navixy para el monitoreo continuo

Como sensores personalizados, estos atributos habilitan dos capacidades clave:

* **Activación de alertas**: Puede crear reglas personalizadas basadas en el valor de un sensor para recibir notificaciones en caso de desviaciones. Para obtener detalles sobre la creación de reglas, consulte [Reglas y notificaciones](/docs/user/es/guide/events-and-notifications.md).
* **Entidades de monitoreo**: Puede agregar un atributo al [Lista de objetos](/docs/user/es/guide/tracking/objects-list.md) widget para monitorear su valor junto con otras lecturas del dispositivo. Para obtener detalles sobre cómo crear un sensor personalizado a partir de un atributo de IoT Logic, consulte [Mostrar nuevos atributos calculados en la plataforma Navixy](/docs/user/es/guide/account/iot-logic/nodes/initiate-attribute-node/displaying-new-calculated-attributes-on-the-navixy-platform.md).

{% hint style="info" %}
El **IF/THEN Lógica** el nodo requiere una conexión con al menos un nodo anterior (**Fuente de datos** u otros nodos de procesamiento) para recibir datos de entrada para su validación.
{% endhint %}

### Capacidades del nodo

El **IF/THEN Lógica** el nodo ofrece:

* **Enrutamiento condicional de datos**: Cree flujos de trabajo ramificados que dirijan automáticamente los datos según expresiones lógicas que devuelvan resultados verdaderos o falsos.
* **Validación en tiempo real**: Pruebe los datos entrantes del dispositivo contra reglas de negocio y umbrales operativos a medida que llegan los datos.
* **Compatibilidad con condiciones complejas**: Combine múltiples parámetros mediante operadores lógicos (AND, OR, etc.) para una toma de decisiones sofisticada.
* **Condiciones basadas en Zona**: Haga referencia directamente a las zonas de Navixy en las expresiones usando las `inGeofence()`, `enterGeofence()`, y `leaveGeofence()` funciones, sin comparaciones manuales de coordenadas. `geofenceName()` devuelve el nombre de la zona en la que está el dispositivo, por lo que una sola condición puede abarcar muchas áreas. Consulte [Funciones de zonas](/docs/user/es/guide/account/iot-logic/nodes/geofence-functions.md).
* **Creación de atributos**: Genere atributos booleanos que registren los resultados de la validación para usarlos en otros nodos, en los sistemas de monitoreo de Navixy y en servicios de terceros.
* **Rutas de salida flexibles**: Dirija los datos a través de las conexiones THEN (verdadero) y ELSE (falso, o ocasionalmente null ante un valor faltante) para activar distintas acciones posteriores.

## Opciones de configuración

{% columns %}
{% column valign="middle" %}
El **IF/THEN Lógica** el nodo le permite definir expresiones condicionales que evalúan los datos entrantes y crean rutas ramificadas en su flujo según los resultados.
{% endcolumn %}

{% column %}

<figure><img src="https://1900701122-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 %}

Veamos qué elementos usa este nodo y qué puede configurar al trabajar con él.

### Pasos de configuración

{% stepper %}
{% step %}

#### Especificar el nombre del nodo

Ingrese un nombre descriptivo para este **IF/THEN Lógica** nodo.

* Use un nombre que identifique claramente el propósito de la validación (p. ej., *Verificación de alerta de temperatura*, *Detección de Violación de velocidad*).
* Este nombre se mostrará en el diagrama de flujo para facilitar su identificación.
  {% endstep %}

{% step %}

#### Definir el nombre de la expresión

Ingrese el nombre del atributo booleano que almacenará el resultado de la validación.

* Este atributo aparecerá en [Analizador de datos](/docs/user/es/guide/account/iot-logic/data-stream-analyzer.md) y quedará disponible para su uso en nodos posteriores.
* Use nombres descriptivos como *high\_temperature\_alert* o speed\_violation\_detected.
* El sistema generará automáticamente nombres como *logic\_1*, *logic\_2* si no se especifica.
  {% endstep %}

{% step %}

#### Crear una expresión condicional

Construya su instrucción lógica usando el campo de expresión.

* Use [operadores lógicos según la sintaxis de Navixy Expression Language](/docs/user/es/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md) para hacer referencia a parámetros del dispositivo y atributos calculados.
* La expresión debe devolver un valor booleano (true/false) para que el nodo funcione correctamente. Un valor faltante puede comportarse de manera diferente. Consulte [Valores faltantes y enrutamiento de null](/docs/user/es/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing).
* Use el encabezado [función de autocompletado](/docs/user/es/guide/account/iot-logic/nodes/initiate-attribute-node/managing-attributes.md#autofill-attribute-names) para seleccionar los atributos disponibles de las fuentes de datos conectadas.
* Para hacer referencia a una Zona de Navixy como condición, use el [selector de zonas](/docs/user/es/guide/account/iot-logic/nodes/geofence-functions.md#how-to-add-a-geofence-condition) en el campo de expresión.
  {% endstep %}

{% step %}

#### Guarde la configuración del nodo

Haga clic en **Aplicar cambios** para completar la creación del nodo.
{% endstep %}

{% step %}

#### Conectar rutas de salida

Después de configurar el nodo, debe establecer conexiones para los resultados de la validación.

* **Conexión THEN** (verde): Se conecta a nodos que deben procesar los datos cuando la expresión se evalúa como true.
* **Conexión ELSE** (roja): Se conecta a nodos que deben procesar los datos siempre que la expresión no se evalúe como true. Esto incluye un resultado false o un valor faltante que el nodo no pudo evaluar.
* La conexión THEN es obligatoria, mientras que la conexión ELSE es opcional.
  {% endstep %}
  {% endstepper %}

{% hint style="warning" %}
Los datos faltantes a menudo se enrutan por la ruta ELSE, pero no siempre. Una `!=` comparación entre un valor faltante y un literal no nulo se evalúa como `true` y se enruta a THEN en su lugar, al igual que `!~`, y `!^` y `!$` cuando el valor proviene de `value()`. Los errores de sintaxis también se enrutan a ELSE, pero almacenan el atributo como `null`, no `falso`. Consulte [Valores faltantes y enrutamiento de null](/docs/user/es/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing) para consultar el conjunto completo de patrones compatibles con null y las tablas de operadores.
{% endhint %}

Para obtener información detallada sobre la sintaxis de las expresiones, los operadores y el comportamiento del flujo de datos, consulte [expresiones y sintaxis de IF/THEN Lógica](/docs/user/es/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md).

## Conexiones de salida y flujo de datos

El **IF/THEN Lógica** el nodo crea dos rutas de salida distintas basadas en los resultados de la evaluación de la expresión.

<figure><img src="https://1900701122-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>

### Conexión THEN (<mark style="color:verde;">verde</mark>)

* **Se activa cuando**: La expresión lógica devuelve `true`.
* **Requisito de conexión**: Obligatorio. Todo nodo de IF/THEN Lógica debe tener al menos una salida THEN.
* **Múltiples conexiones**: Puede conectarse a varios nodos posteriores para un procesamiento en paralelo.
* **Usos típicos**: Activación de alertas, procesamiento especial, cálculos condicionales o enrutamiento de datos hacia puntos finales específicos.

### Conexión ELSE (<mark style="color:rojo;">rojo</mark>)

* **Se activa cuando**: La expresión lógica devuelve `falso`, se evalúa como `null`, o no puede evaluarse.
* **Excepciones a tener en cuenta**: La mayoría de las comparaciones con valores faltantes se enrutan aquí. Una `!=` comparación entre un valor faltante y un literal no nulo se enruta a THEN en su lugar, al igual que `!~`, y `!^` y `!$` ante un `value()` resultado faltante.
* **El valor almacenado no siempre es `falso`**: El enrutamiento a ELSE no garantiza que el atributo booleano se almacene como `falso`. Las comparaciones relacionales (`<`, `<=`, `>`, `>=`) y una referencia a un valor faltante sin más se enrutan a ELSE y dejan el atributo `null`. Consulte [Valores faltantes y enrutamiento de null](/docs/user/es/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing).
* **Requisito de conexión**: Opcional. Úsela solo cuando necesite manejar resultados negativos.
* **Manejo de errores**: Procesa casos en los que las expresiones no pueden evaluarse debido a errores de sintaxis o tipos de datos no válidos. El enrutamiento de datos faltantes depende del operador. Consulte [Valores faltantes y enrutamiento de null](/docs/user/es/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing).
* **Usos típicos**: Registro de validaciones fallidas, enrutamiento de datos por rutas de procesamiento alternativas o continuación de las operaciones normales.

### **Requisito de nodo terminal**

Al conectarse a nodos terminales ([Acción](/docs/user/es/guide/account/iot-logic/nodes/action-node.md), [Webhook](/docs/user/es/guide/account/iot-logic/nodes/webhook-node.md)) que no admiten conexiones salientes, cree conexiones paralelas para garantizar que tanto el nodo terminal como un Nodo de Salida reciban datos:

<figure><img src="https://1900701122-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 qué ambas ramas necesitan Nodos de Salida?**

* Garantiza la persistencia de los datos y la visibilidad del sistema
* Permite la validación del flujo
* Ambas ramas pueden compartir el mismo Nodo de Salida

{% hint style="danger" %}
**Error de validación:** Los flujos sin Nodos de Salida en todas las ramas no se podrán guardar y mostrarán el error.
{% endhint %}

## Preguntas frecuentes

#### ¿Puedo usar atributos creados por otros nodos en expresiones de IF/THEN Lógica?

Sí. **IF/THEN Lógica** los nodos pueden hacer referencia a cualquier atributo disponible de las fuentes de datos conectadas, incluidos los parámetros originales del dispositivo y los atributos calculados por los **Iniciar atributo** nodos anteriores. La función de autocompletado le ayuda a seleccionar entre todos los atributos disponibles.

#### ¿Qué sucede si mi expresión contiene errores de sintaxis?

Si una expresión contiene errores de sintaxis o no puede evaluarse, el **IF/THEN Lógica** nodo enruta los datos a través de la conexión ELSE y almacena el atributo como `null`, no `falso`. Verifique la sintaxis de la expresión y asegúrese de que todos los atributos referenciados existan en su flujo de datos.

#### ¿Puedo conectar varios nodos a la misma salida del nodo de IF/THEN Lógica?

Sí. Tanto las conexiones THEN como ELSE admiten múltiples conexiones salientes, lo que le permite activar varias acciones diferentes basadas en la misma condición lógica. Esto permite el procesamiento en paralelo para flujos de trabajo empresariales complejos.

#### ¿Cómo superviso los resultados del nodo de IF/THEN Lógica?

Los resultados del nodo de IF/THEN Lógica aparecen como atributos booleanos en la [Analizador de datos](/docs/user/es/guide/account/iot-logic/data-stream-analyzer.md) tabla. Seleccione sus dispositivos y busque el nombre de atributo que especificó en el campo del nombre de la expresión. Los valores suelen mostrarse como `true` o `falso`, pero un valor faltante puede dejar el atributo `null` en su lugar, según el operador. Consulte [Valores faltantes y enrutamiento de null](/docs/user/es/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing).

#### ¿Por qué se activó mi condición aunque el atributo aún no tiene valor?

Lo más probable es que la condición use `!=` contra un literal no nulo, o `!~`, sobre un valor que nunca se ha recibido. Ambos operadores tratan "sin valor" como algo diferente del literal con el que usted compara, por lo que se evalúan como `true` y se enrutan a THEN. Un valor predeterminado seguro haría lo contrario. Los `!^` y `!$` operadores hacen lo mismo ante un `value()` resultado faltante y se resuelven como `null` cuando el atributo se referencia por nombre. Agregue una comprobación de presencia (`value('attr', 0, 'all') != null && ...`) o una `== null` comprobación == null si la condición solo debe activarse una vez que el atributo tenga un valor real. Consulte [Valores faltantes y enrutamiento de null](/docs/user/es/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing) para consultar el desglose completo operador por operador.

#### ¿Puedo encadenar varios nodos de IF/THEN Lógica?

Sí. Puede conectar **IF/THEN Lógica** nodos secuencialmente para crear árboles de decisión complejos. Cada **IF/THEN Lógica** nodo puede hacer referencia a los atributos booleanos creados por los **IF/THEN Lógica** nodos anteriores, lo que permite flujos de trabajo de validación multietapa sofisticados.

<figure><img src="https://1900701122-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 qué las ramas de IF/THEN Lógica deben conectarse a Nodos de Salida?

Toda rama de IF/THEN Lógica debe terminar en un Nodo de Salida para la validación del flujo de datos y la visibilidad del sistema. Al usar nodos terminales (Action, Webhook) que no admiten conexiones salientes, cree una conexión paralela desde el nodo de IF/THEN Lógica directamente a un Nodo de Salida. Ambas ramas pueden compartir el mismo Nodo de Salida si es necesario.


---

# 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/es/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.
