Saltar al contenido principal

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.

Rulechain completa de alarma de temperatura

El proceso es el siguiente:

  1. Un mensaje entra en la rulechain a través del Input.
  2. El nodo Filter Devices comprueba si el mensaje procede de uno de los dispositivos deseados.
  3. El nodo Filter Message comprueba si el canal de temperatura deseado está contenido en el mensaje.
  4. El nodo Temperature Threshold evalúa el valor límite.
  5. Con True se genera una alarma.
  6. Con False se elimina una alarma existente.

Paso 1: Filtrar dispositivos​

El primer nodo de contenido es el filtro de dispositivos.

Nodo Filter Devices

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.

Nodo Filter Message

Aquí se:

  • asigna un nombre al nodo
  • selecciona, o introduce manualmente, el canal que se va a comprobar en Message Data
información

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.

Nodo de script Threshold

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.

nota

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.

Nodo Create Alarm

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.

Nodo Clear Alarm

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.

Conectar la rulechain a la Root Rule Chain

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

Resultado de la regla de alarma de temperatura

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: