# Lógica IF/THEN

## Resumen técnico y capacidades

{% columns %}
{% column %}
El **Lógica SI/ENTONCES** El nodo crea puntos de ramificació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 por usted y enruta los resultados por distintas rutas según si la validación se realiza correctamente o falla. El nodo le permite crear flujos de trabajo IF->THEN/ELSE donde diferentes acciones se producen automáticamente en función de condiciones de datos en tiempo real.
{% endcolumn %}

{% column %}

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

{% hint style="info" %}
El **Lógica SI/ENTONCES** los nodos se configuran por separado para cada flujo en la interfaz de la plataforma Navixy. Cada nodo contiene solo una fórmula lógica y se basa en [Navixy IoT Logic Expression Language](/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 Lógica SI/ENTONCES](/docs/user/es/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md).
{% endhint %}

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

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

Cuando los datos llegan por primera vez a un **Lógica SI/ENTONCES** nodo, el sistema 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 enroutando los datos en consecuencia:

* **Resultados verdaderos**: Los datos fluyen a través de la conexión THEN (verde) con el atributo booleano configurado en `true`
* **Resultados falsos**: Los datos fluyen a través de la conexión ELSE (roja) con el atributo booleano configurado en `false`

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

### Integración de la arquitectura del flujo

Los atributos booleanos creados por **Lógica SI/ENTONCES** los nodos van más allá del enrutamiento de flujo y se integran con las capacidades de monitorización más amplias de Navixy. Como se trata de atributos personalizados definidos por el usuario, pueden ser:

* **Monitorizados en tiempo real**: Ver los resultados de la evaluación en [Analizador de flujo de datos](/docs/user/es/guide/account/iot-logic/data-stream-analyzer.md) para solucionar problemas de condiciones y verificar la lógica
* **Añadidos como sensores personalizados**: Integrarse con la interfaz principal de Navixy para la monitorización continua

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 monitorizadas**: Puede añadir un atributo al [Lista de objetos](/docs/user/es/guide/tracking/objects-list.md) widget para monitorizar 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 **Lógica SI/ENTONCES** el 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 su validación.
{% endhint %}

### Capacidades del nodo

El **Lógica SI/ENTONCES** el nodo ofrece:

* **Enrutamiento condicional de datos**: Cree flujos de trabajo ramificados que dirijan automáticamente los datos en función de expresiones lógicas que devuelven resultados verdaderos o falsos.
* **Validación en tiempo real**: Pruebe los datos entrantes del dispositivo frente a reglas de negocio y umbrales operativos a medida que llegan los datos.
* **Compatibilidad con condiciones complejas**: Combine varios parámetros utilizando operadores lógicos (AND, OR, etc.) para una toma de decisiones sofisticada.
* **Condiciones basadas en geocercas**: Haga referencia directamente a geocercas de Navixy con nombre en las expresiones usando `inGeofence()`, `enterGeofence()`, y `leaveGeofence()` funciones, sin comparaciones manuales de coordenadas. Consulte [Funciones de geocerca](/docs/user/es/guide/account/iot-logic/nodes/logic-node/geofence-functions.md).
* **Creación de atributos**: Genere atributos booleanos que registren los resultados de la validación para su uso en otros nodo, en los sistemas de monitorización 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) para activar diferentes acciones posteriores.

## Opciones de configuración

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

{% column %}

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

Veamos qué elementos utiliza 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 **Lógica SI/ENTONCES** nodo.

* Utilice un nombre que identifique claramente el propósito de la validación (por ejemplo, *Comprobación de alerta de temperatura*, *Detección de infracció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 flujo de datos](/docs/user/es/guide/account/iot-logic/data-stream-analyzer.md) y estará disponible para su uso en nodos posteriores.
* Utilice 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 ninguno.
  {% endstep %}

{% step %}
**Crear una expresión condicional**

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

* Utilice [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.
* Utilice el [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 geocerca de Navixy como condición, utilice el [selector de geocercas](/docs/user/es/guide/account/iot-logic/nodes/logic-node/geofence-functions.md) 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 haber configurado el nodo, debe establecer las conexiones para los resultados de la validación.

* **Conexión THEN** (verde): Se conecta a los nodos que deben procesar datos cuando la expresión se evalúa como verdadera.
* **Conexión ELSE** (roja): Se conecta a los nodos que deben procesar datos cuando la expresión se evalúa como falsa o null.
* La conexión THEN es obligatoria, mientras que la conexión ELSE es opcional.
  {% endstep %}
  {% endstepper %}

{% hint style="info" %}
Cuando las expresiones lógicas no pueden evaluarse debido a valores null, tipos de datos no válidos o errores de sintaxis, el resultado se trata como `false`y los datos fluyen a través de la ruta ELSE.
{% endhint %}

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

## Conexiones de salida y flujo de datos

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

<figure><img src="/files/51793cfd0c43f1e28ea16a06674c07afd12b893d" 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:green;">green</mark>)

* **Se activa cuando**: La expresión lógica devuelve `true`.
* **Requisito de conexión**: Obligatorio: todo nodo de lógica IF/THEN debe tener al menos una salida THEN.
* **Varias conexiones**: Puede conectarse a varios nodos posteriores para procesamiento paralelo.
* **Usos habituales**: Activación de alertas, procesamiento especial, cálculos condicionales o envío de datos a endpoints específicos.

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

* **Se activa cuando**: La expresión lógica devuelve `false`, `null`, o encuentra errores de evaluación.
* **Requisito de conexión**: Opcional: utilícela solo cuando necesite gestionar resultados negativos.
* **Gestión de errores**: Procesa casos en los que las expresiones no pueden evaluarse debido a datos faltantes o errores de sintaxis.
* **Usos habituales**: 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 Endpoint de salida reciban datos:

<figure><img src="/files/aa3ce3bcd9231bbac9f1d2799b6c93b309528e3a" alt=""><figcaption></figcaption></figure>

**Por qué ambas ramas necesitan Endpoints 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 Endpoint de salida

{% hint style="danger" %}
**Error de validación:** Los flujos sin Endpoints 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 las expresiones de lógica IF/THEN?

Sí. **Lógica SI/ENTONCES** 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 **Atributo de inicio** nodos precedentes. La función de autocompletado le ayuda a seleccionar entre todos los atributos disponibles.

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

Si una expresión contiene errores de sintaxis o no se puede evaluar, el **Lógica SI/ENTONCES** nodo trata el resultado como `false` y enruta los datos a través de la conexión ELSE. Revise 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 de un nodo de lógica IF/THEN?

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

#### ¿Cómo puedo monitorizar los resultados del nodo de lógica IF/THEN?

Los resultados del nodo de lógica IF/THEN aparecen como atributos booleanos en la [Analizador de flujo 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 se mostrarán como `true` o `false` según los resultados de la evaluación.

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

Sí. Puede conectar **Lógica SI/ENTONCES** nodos de forma secuencial para crear árboles de decisión complejos. Cada **Lógica SI/ENTONCES** nodo puede hacer referencia a los atributos booleanos creados por los **Lógica SI/ENTONCES** nodos anteriores, lo que permite flujos de trabajo de validación sofisticados en varias etapas.

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

#### ¿Por qué las ramas de lógica IF/THEN deben conectarse a Endpoints de salida?

Cada rama de lógica IF/THEN debe terminar en un Endpoint 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 lógica IF/THEN directamente a un Endpoint de salida. Ambas ramas pueden compartir el mismo Endpoint de salida si es necesario.


---

# Agent Instructions: 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:

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

The question should be specific, self-contained, and written in natural language.
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.
