Ejemplo de alarma de temperatura
Ejemplo de alarma de temperatura
Este ejemplo muestra una rulechain sencilla que genera una alarma en cuanto un valor de temperatura supera un valor límite de 5 °C. Si el valor vuelve a 5 °C o menos, la alarma se elimina de nuevo.
Por ello, el ejemplo resulta adecuado para entender la estructura básica de una rulechain:
- los mensajes entran en la cadena
- varios nodos comprueban las condiciones paso a paso
- según el resultado, se genera o se elimina una alarma
Vista general de la regla de ejemplo
La rulechain completa consta de varios nodos conectados sucesivamente.

El proceso es el siguiente:
- Un mensaje entra en la rulechain a través del Input.
- El nodo Filter Devices comprueba si el mensaje procede de uno de los dispositivos deseados.
- El nodo Filter Message comprueba si el canal de temperatura deseado está contenido en el mensaje.
- El nodo Temperature Threshold evalúa el valor límite.
- Con True se genera una alarma.
- Con False se elimina una alarma existente.
Paso 1: Filtrar dispositivos
El primer nodo de contenido es el filtro de dispositivos.

Para este nodo se indica:
- un nombre
- la selección de los dispositivos a los que debe aplicarse la regla
En este ejemplo se han seleccionado dos dispositivos de demostración. Solo los mensajes de estos dispositivos pueden seguir recorriendo la rulechain. Los mensajes de otros dispositivos se bloquean en este punto.
Así, la regla se limita de forma específica a un conjunto definido de dispositivos.
Paso 2: Comprobar el contenido del mensaje
En el paso siguiente se comprueba si el mensaje entrante contiene el canal de temperatura que se desea comprobar.

Aquí se:
- asigna un nombre al nodo
- selecciona, o introduce manualmente, el canal que se va a comprobar en Message Data
Para introducir el canal manualmente, basta con escribirlo y confirmarlo con la tecla Intro. La introducción manual del canal que se va a comprobar distingue entre mayúsculas y minúsculas.
La opción Check that all selected keys are present garantiza que solo se reenvíen los mensajes que realmente contengan la clave seleccionada.
Si el canal no está en el mensaje, el procesamiento termina en este punto.
Paso 3: Comprobar el valor límite con un script
A continuación sigue un nodo de script que comprueba el valor umbral propiamente dicho.

En este ejemplo, la lógica es deliberadamente sencilla:
return msg.temperature > 5;
El script significa lo siguiente:
- True, si el valor de temperatura es mayor que 5
- False, si el valor es menor o igual que 5
En consecuencia, el nodo tiene dos salidas:
- True
- False
De este modo, la rulechain se divide exactamente en este punto en dos rutas funcionales.
El nombre exacto de la variable dentro de un nodo de script puede variar según el tipo de nodo o el contexto. Para la lógica funcional del ejemplo, lo decisivo es que se lea el valor de temperatura y se compare con el valor límite.
Paso 4: Generar la alarma
Si se cumple la condición, el mensaje pasa por la ruta True al nodo de alarma.

Aquí se define:
- qué tipo de alarma se debe generar
- qué nivel de gravedad tiene la alarma
En el ejemplo se genera una alarma de tipo Temperature Alarm con el nivel de gravedad Critical.
Opcionalmente, en este punto podrían añadirse detalles adicionales, por ejemplo:
- el valor de temperatura actual
- información adicional calculada
- metadatos de alarma actualizados
Para el ejemplo básico, el nodo se mantiene deliberadamente sencillo.
Paso 5: Eliminar la alarma
Si la condición ya no se cumple, el mensaje pasa por la ruta False al nodo que elimina la alarma.

Aquí se indica qué tipo de alarma debe eliminarse. En este ejemplo es el mismo tipo:
- Temperature Alarm
Así, una alarma activa se cierra de nuevo en cuanto la temperatura deja de superar el valor límite.
Paso 6: Integrar en la Root Rule Chain
Para que la nueva regla se ejecute realmente, debe conectarse a una cadena de procesamiento activa, es decir, a la regla Root.

En el ejemplo mostrado, la rulechain creada se integra a continuación de la ruta Save Time Series de la Root Rule Chain. En este caso es necesario porque la temperatura se envía desde el dispositivo como canal de datos de telemetría y, por tanto, llega a la Rule Engine por la ruta de telemetría. Se integra detrás del nodo Save Timeseries para no interrumpir el procesamiento básico normal. Por tanto, ahora sucede lo siguiente:
El dispositivo envía «Temperature» -> «Temperature» se procesa con normalidad y se guarda en la base de datos -> Tras guardarla en la base de datos, «Temperature» se reenvía a la regla de evaluación de alarmas.
Solo mediante esta integración la lógica creada pasa a ser efectiva en el sistema en funcionamiento.
Resultado
Tras guardar y activar, la regla funciona como estaba previsto:
- una temperatura superior a 5 °C genera una alarma
- una temperatura de 5 °C o inferior elimina de nuevo la alarma

Valoración
Este ejemplo muestra una rulechain deliberadamente sencilla, pero que ya contiene los patrones básicos más importantes:
- filtro de entrada
- comprobación de datos
- lógica condicional
- rutas distintas para True y False
- acción basada en el resultado
Sobre esta base también se pueden construir rulechains más complejas, por ejemplo para:
- alarmas en varios niveles
- notificaciones por correo electrónico u otros canales
- conexión de API externas
- combinación de varias condiciones de dispositivos o de datos
Volver a la introducción general: