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).

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}}).

Vista Editor de JSON¶

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.