> 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

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

## Descripción técnica general y capacidades

{% columns %}
{% column %}
El **IF/THEN Lógica** 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 frente a las condiciones definidas y enruta los resultados por distintas rutas según si la validación se cumple o falla. El nodo le permite crear flujos de trabajo IF->THEN/ELSE en los que distintas acciones se ejecutan automáticamente según las condiciones de 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** 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, basada en [Lenguaje de expresiones de IoT Logic de Navixy](/docs/iot-logic-api/technologies/navixy-iot-logic-expression-language.md).\
Para conocer opciones específicas de sintaxis 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 enruta los datos en consecuencia:

* **Resultados verdaderos**: Los datos fluyen a través de la conexión THEN (verde) con el atributo booleano establecido en `verdadero`.
* **Resultados falsos**: Los datos fluyen a través de la conexión ELSE (rojo) con el atributo booleano establecido en `falso`. Ese es el caso habitual, pero no el único: ante un valor faltante, algunos operadores enrutan a ELSE mientras 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 ocurre 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**: Vea los resultados de la evaluación en [Analizador de datos](/docs/user/es/guide/account/iot-logic/data-stream-analyzer.md) para diagnosticar condiciones y verificar la lógica
* **Agregados como sensores personalizados**: Se integran 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 más 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 [widget de lista de objetos](/docs/user/es/guide/tracking/objects-list.md) 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** nodo requiere una conexión con al menos un nodo precedente (**Fuente de datos** u otros nodos de procesamiento) para recibir datos de entrada para la validación.
{% endhint %}

### Capacidades del nodo

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

* **Enrutamiento condicional de datos**: Cree flujos de trabajo ramificados que dirijan automáticamente los datos según expresiones lógicas que devuelven resultados verdaderos o falsos.
* **Validación en tiempo real**: Compare los datos entrantes del dispositivo con 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 más compleja.
* **Condiciones basadas en zonas**: Haga referencia directamente a las zonas de Navixy con nombre 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 se encuentra el dispositivo, por lo que una sola condición puede cubrir muchas áreas. Consulte [Funciones de zona](/docs/user/es/guide/account/iot-logic/nodes/geofence-functions.md).
* **Creación de atributos**: Genere atributos booleanos que registren los resultados de validación para usarlos en otros nodos, en los sistemas de monitoreo de Navixy y en servicios de terceros.
* **Rutas de salida flexibles**: Enrute los datos a través de las conexiones THEN (verdadero) y ELSE (falso, o en ocasiones 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 de bifurcación 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

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

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

{% step %}

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

Introduzca 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 sentencia lógica usando el campo de expresión.

* Use [operadores lógicos de acuerdo con la sintaxis del lenguaje de expresiones de Navixy](/docs/user/es/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md) para hacer referencia a los parámetros del dispositivo y a los atributos calculados.
* La expresión debe devolver un valor booleano (verdadero/falso) para que el nodo funcione correctamente. Un valor faltante puede comportarse de forma 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 la [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 %}

#### Guardar 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 los nodos que deben procesar los datos cuando la expresión se evalúa como verdadera.
* **Conexión ELSE** (rojo): Se conecta a los nodos que deben procesar los datos siempre que la expresión no se evalúe como verdadera. Esto incluye un resultado falso 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 a la ruta ELSE, pero no siempre. Una `!=` comparación entre un valor faltante y un literal no nulo se evalúa como `verdadero` verdadero 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`nulo, no como `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 ver 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 `verdadero`.
* **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 procesamiento en paralelo.
* **Usos típicos**: Activación de alertas, procesamiento especial, cálculos condicionales o enrutamiento de datos a destinos 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 `falso`**: Enrutar a ELSE no garantiza que el atributo booleano se almacene como falso `falso`. Las comparaciones relacionales (`<`, `<=`, `>`, `>=`) y una referencia simple a un valor faltante llegan a ELSE con el atributo dejado en null `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 los casos en los que las expresiones no se pueden evaluar 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**: Registrar validaciones fallidas, enrutar datos por rutas de procesamiento alternativas o continuar con 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 con este error.
{% endhint %}

## Preguntas frecuentes

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

Sí. **IF/THEN Lógica** nodos pueden hacer referencia a cualquier atributo disponible en las fuentes de datos conectadas, incluidos los parámetros originales del dispositivo y los atributos calculados por los **Iniciar atributo** nodos de Iniciar atributo. 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 se puede evaluar, el **IF/THEN Lógica** nodo enruta los datos a través de la conexión ELSE y almacena el atributo como `null`nulo, no como `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 monitoreo 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 del atributo que especificó en el campo de nombre de la expresión. Los valores generalmente se muestran como `verdadero` 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 todavía 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 distinto del literal con el que está comparando, por lo que se evalúan como `verdadero` verdaderos 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 falso `null` cuando el atributo se referencia por nombre. Agregue una validación de presencia (`value('attr', 0, 'all') != null && ...`) o una comprobación explícita `== 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 ver 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 sofisticados de varias etapas.

<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 (Acción, 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 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/es/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.
