Saltar a contenido

Documentación: Nodo Establecer Variables (Set Variables)

Descripción General

El Nodo Establecer Variables (Set Variables) es un nodo de acción que permite definir y crear variables personalizadas dentro de la ejecución de un flujo de automatización.

Estas variables son temporales y locales a la ejecución del flujo actual. Su objetivo principal es simplificar flujos complejos permitiendo calcular valores, renombrar propiedades de nodos anteriores, realizar operaciones matemáticas o formatear textos, para que puedan ser reutilizados de manera sencilla por nodos posteriores.


¿Cuándo usar este nodo?

Utiliza este nodo cuando necesites:

  • Realizar cálculos matemáticos intermedios utilizando expresiones de plantilla (por ejemplo: {{1 + 1}}).
  • Formatear o concatenar cadenas de texto complejas (por ejemplo: crear un mensaje dinámico como Hola {{trigger.user_name}}, el estado actual es {{node_state.state}}).
  • Renombrar o estructurar la salida de nodos anteriores a nombres más amigables (por ejemplo: guardar un dato profundo {{node_ptz.response[0].id}} en una variable simple llamada clip_id).
  • Centralizar y definir valores fijos en un solo lugar del flujo para no tener que repetirlos en múltiples nodos posteriores.

Configuración del Nodo

El nodo cuenta con dos pestañas de configuración en la parte superior: Formulario (Form) y Editor de JSON (JSON Editor).

Configuración vacía del nodo Establecer variables

Vista Formulario

1. Modo (Mode)

Permite elegir cómo se definirán las variables: - Manual: Muestra una interfaz de tabla donde puedes agregar variables una a una haciendo clic en el botón + Add Variable. Cada variable consta de un campo para el nombre (Key) y otro para el valor (Value). - JSON: Muestra un cuadro de texto estructurado para definir las variables como propiedades de un objeto JSON plano.

Modo JSON de configuración del nodo Establecer variables

2. Variables

En el modo Manual, aquí puedes definir tus variables clave-valor. Nota: El campo de valor (Value) soporta expresiones de plantilla (Value Templates), lo que te permite realizar operaciones o referenciar datos de nodos anteriores (por ejemplo: clave temperature_threshold y valor {{18 + 4}}).

Formulario configurado del nodo Establecer variables

3. Notación de Punto (Dot Notation)

Es un interruptor (toggle).

  • Activado (por defecto): Permite utilizar la notación de punto para crear objetos anidados estructurados de forma automática. Por ejemplo, definir una variable con clave user.name y valor John Doe creará el objeto estructurado {"user": {"name": "John Doe"}}. En el panel de salida, estos objetos anidados se visualizan como una estructura expandible (username: John Doe), no como texto plano.

En la siguiente captura puedes ver el resultado de una ejecución con Dot Notation activado (por defecto), donde se muestra la estructura del objeto anidado:

Salida de ejecución del nodo Establecer variables con Dot Notation activado

  • Desactivado: Tratará las claves con puntos de forma plana, creando una clave literal "user.name": "John Doe".

En la siguiente captura puedes ver el resultado de una ejecución con Dot Notation desactivado, donde la clave user.name se mantiene plana en lugar de convertirse en el objeto anidado username:

Salida de ejecución del nodo Establecer variables con Dot Notation desactivado

4. Incluir Campos de Entrada (Include Input Fields)

Es un interruptor (toggle). - Activado: Hereda y fusiona todos los campos de entrada (la carga útil entrante de los nodos anteriores del flujo) dentro de la salida de este nodo. - Desactivado (por defecto): Solo expone en la salida las variables configuradas explícitamente dentro de este nodo.


Vista Editor de JSON

En la pestaña Editor de JSON (JSON Editor), puedes ver y editar la representación en código del nodo, útil para copiar o realizar configuraciones rápidas en formato estructurado:

Pestaña Editor de JSON en Establecer variables


Estructura JSON (Parámetros de entrada)

Si abres la pestaña JSON Editor del nodo, verás la representación completa de su configuración. A continuación se muestra un ejemplo real con dos variables definidas:

{
    "mode": "manual",
    "variables": [
        {
            "name": "temperature_threshold",
            "value": "{{18 + 4}}"
        },
        {
            "name": "user.name",
            "value": "John Doe"
        }
    ],
    "jsonOutput": "",
    "dotNotation": true,
    "includeInputFields": false
}

Campos del JSON

Campo Tipo Descripción
mode string Modo de entrada de variables. Valores: manual o json.
variables array (objects) Lista de objetos con el nombre de la variable (name) y su valor (value), usado en modo manual.
dotNotation boolean Activa (true) o desactiva (false) la estructuración de objetos anidados mediante notación de puntos.
includeInputFields boolean Si es true, combina el contexto/payload de entrada en el resultado final.
jsonOutput string Contenido JSON definido directamente cuando el modo es json. Vacío ("") cuando se usa modo manual.

Output: Dónde viene la data del nodo

Cuando el nodo de establecer variables finaliza correctamente su ejecución, su Output (Salida) expondrá todas las variables creadas con sus valores correspondientes ya calculados y evaluados.

Resultados de la ejecución en la salida de Establecer variables

Ejemplo de salida

Con la configuración de ejemplo (la variable temperature_threshold con valor {{18 + 4}} para definir dinámicamente el umbral de alerta de temperatura en grados y la variable user.name con valor John Doe, con Dot Notation activado), el panel de salida mostrará las expresiones ya evaluadas y el objeto anidado:

{
  "temperature_threshold": 22,
  "user": {
    "name": "John Doe"
  }
}

Usar las variables en nodos posteriores

Para utilizar estas variables personalizadas en cualquier nodo posterior del flujo de la automatización, debes hacer uso de la sintaxis de plantillas referenciando la clave del nodo (NodeKey) asignado a tu nodo de Set Variables.

Ejemplos: - Para referenciar la variable temperature_threshold del ejemplo anterior: {{node_key.temperature_threshold}} (se resolverá como 22). - Si creaste un objeto usando notación de puntos (ej: clave user.name con valor John Doe): {{node_key.user.name}} (se resolverá como John Doe).

(Asegúrate de sustituir node_key por la clave real que el editor visual asigna a tu nodo en el lienzo).


Ejemplos de uso

Ejemplo 1: Operaciones matemáticas y evaluación dinámica

Caso de uso: Calcular la duración de un retardo dinámico basado en una suma. - Variables: - Clave: duracion_total - Valor: {{ 5 + 5 }} - Salida del nodo: {"duracion_total": 10} - Uso posterior: {{set_variables_node.duracion_total}} (por ejemplo, en el campo de duración de un nodo de espera).

Ejemplo 2: Concatenación y formato de textos para alertas

Caso de uso: Armar una cadena de texto pre-formateada reuniendo datos del disparador para usarla en múltiples envíos de notificaciones (SMS, Telegram, Email). - Variables: - Clave: mensaje_alerta - Valor: Alerta en dispositivo: {{trigger.object_name}} detectada a las {{trigger.datetime}} - Uso posterior: En los nodos de WhatsApp, Telegram o Email, simplemente usas {{set_variables_node.mensaje_alerta}}.