Saltar a contenido

Documentación: Nodo Incrementar Estado (Increment State)

Descripción General

El Nodo Incrementar Estado (Increment State) es un nodo de acción que modifica numéricamente el estado de uno o varios objetos, o una propiedad de su estado, aplicando una operación aritmética (incrementar, decrementar, multiplicar, dividir, módulo o asignar) sobre el valor actual.

A diferencia de Modificar el estado de un objeto —que fija un valor concreto— este nodo opera sobre el valor existente, lo que lo hace ideal para contadores y acumuladores en entornos IoT e industriales: contar cuántas veces se activó un sensor, llevar el número de ciclos de una máquina, acumular unidades producidas o descontar inventario.


¿Cuándo usar este nodo?

Utiliza este nodo cuando necesites:

  • Llevar un contador asociado a un objeto (activaciones, aperturas, ciclos, alarmas).
  • Acumular o descontar una cantidad sobre un valor previo (producción, inventario, consumo).
  • Aplicar operaciones aritméticas (multiplicar, dividir, módulo) sobre el estado o una propiedad numérica de un objeto.
  • Mantener métricas incrementales sin tener que leer, calcular y reescribir el valor manualmente.

Configuración del Nodo

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

Configuración vacía del nodo Incrementar Estado

Vista Formulario

1. Objetos (Objects) *Requerido

Los objetos sobre los que se aplicará la operación. Haz clic en el campo para abrir el selector de objetos y marcar uno o varios (pestañas Groups / Devices). La operación se aplica a todos los objetos seleccionados.

2. Destino (Target)

Define sobre qué se aplica la operación:

  • State: opera directamente sobre el estado numérico del objeto.
  • Property: opera sobre una propiedad del estado (habilita el campo Property Name).

3. Nombre de Propiedad (Property Name) *Condicional

Aparece solo cuando Target es Property. Indica el nombre de la propiedad numérica a modificar (por ejemplo, trigger_count).

4. Operación (Operation)

La operación aritmética a aplicar sobre el valor actual:

  • Increment (incrementar), Decrement (decrementar), Multiply (multiplicar), Divide (dividir), Modulo (módulo) y Set (asignar un valor fijo).

5. Cantidad / Valor (Amount / Value)

El operando de la operación (por defecto 1). La etiqueta cambia a Value cuando la operación es Set. Admite un valor fijo o, mediante el botón de plantilla (ƒ), una expresión de plantilla para tomar la cantidad de otro nodo (por ejemplo, {{node_key.response.value}}).

Formulario configurado del nodo Incrementar Estado


Vista Editor de JSON

Vista JSON Editor del nodo Incrementar Estado


Estructura JSON (Parámetros de entrada)

{
  "object_ids": ["milesight_iot_mqtt.sensor.35.24e124136f463537"],
  "target": "property",
  "property_name": "trigger_count",
  "operation": "increment",
  "amount": "1"
}

Campos del JSON

Campo Tipo Descripción
object_ids array (string) IDs de los objetos sobre los que se aplica la operación.
target string state (sobre el estado) o property (sobre una propiedad del estado).
property_name string Nombre de la propiedad a modificar (requerido cuando target es property).
operation string Operación: increment, decrement, multiply, divide, modulo o set.
amount string Operando de la operación (por defecto 1). Soporta expresiones de plantilla.

Output: Dónde viene la data del nodo

El nodo aplica la operación y persiste el nuevo valor en el estado/propiedad de cada objeto seleccionado. Su efecto se observa en el estado actualizado de los objetos; el nodo finaliza marcado como exitoso (borde verde).


Ejemplos de uso

Ejemplo 1: Contar activaciones de un sensor

Caso de uso: Cada vez que un sensor IoT se activa, se incrementa en 1 una propiedad trigger_count para llevar el número de activaciones del día.

  • Objects: el sensor (milesight_iot_mqtt.sensor)
  • Target: Property
  • Property Name: trigger_count
  • Operation: Increment
  • Amount: 1

(ver estructura JSON anterior)

Ejemplo 2: Acumular unidades producidas

Caso de uso: Al finalizar cada lote, se suma la cantidad producida —tomada de un nodo previo— al acumulado de la línea.

  • Target: Property · Property Name: units_produced
  • Operation: Increment
  • Amount: {{trigger.body.batch_units}}

Validación y errores

Condición Causa / Solución habitual
No se modifica el valor Verifica que el objeto tenga un estado/propiedad numérico; las operaciones aritméticas requieren números.
Falta la propiedad Si Target es Property, asegúrate de indicar el Property Name correcto.
División por cero Con la operación Divide, evita un Amount de 0.

Buenas prácticas

  • Inicializar el contador: asegúrate de que la propiedad/estado tenga un valor numérico inicial (puedes fijarlo con Modificar el estado de un objeto o con la operación Set).
  • Nombrar propiedades con claridad: usa nombres descriptivos (trigger_count, units_produced) para distinguir cada métrica.
  • Reiniciar cuando corresponda: combina con la operación Set (a 0) o con [[memory-delete]] para reiniciar contadores al inicio de un ciclo o turno.
  • Cantidades dinámicas: usa expresiones de plantilla en Amount para acumular valores provenientes de otros nodos del flujo.