Detección de eventos IoT - Detección y respuesta automática a cambios de estado de dispositivos con AWS IoT Events

Explicamos la monitorización de estado y respuesta automática de dispositivos IoT con AWS IoT Events. Presentamos la definición de transiciones de estado con modelos de detector, la función de alarmas y la integración con SNS/Lambda.

Desafíos de la monitorización de estado de dispositivos IoT

En la monitorización de dispositivos IoT, es necesario detectar no solo simples superaciones de umbrales, sino transiciones de estado complejas. Por ejemplo, condiciones como "alertar si la temperatura supera los 80°C durante más de 5 minutos", "notificar al equipo de mantenimiento si el valor de vibración supera el rango normal y no vuelve a la normalidad en 10 minutos", o "determinar que el dispositivo está offline si se pierden 3 heartbeats consecutivos". Implementar esto manualmente con Lambda y DynamoDB requiere gestionar la persistencia de estado, los temporizadores y la lógica de transición, lo que resulta en código complejo y difícil de mantener. AWS IoT Events resuelve este problema proporcionando un motor de máquina de estados gestionado.

Modelos de detector y alarmas

El modelo de detector es una máquina de estados compuesta por estados (State), condiciones de transición (Transition) y acciones (Action). Por ejemplo, en un modelo de detector de monitoreo de temperatura, se definen 3 estados: "normal", "advertencia" y "anomalía", y se configuran las transiciones de estado basadas en umbrales de temperatura. Se pueden ejecutar acciones al entrar en un estado (onEnter), durante la permanencia (onInput) y al salir (onExit). Se crea una instancia de detector por dispositivo (clave de dispositivo), gestionando el estado de forma independiente. La función de alarma simplifica la monitorización de umbrales simples, generando automáticamente alarmas cuando un valor supera un umbral configurado.

Acciones e integración

Las acciones que se pueden ejecutar durante las transiciones de estado del modelo de detector son diversas. Notificar a operadores con SNS, ejecutar lógica personalizada con Lambda, enviar mensajes a SQS para activar procesamiento downstream, publicar mensajes MQTT a IoT Core para enviar comandos a dispositivos, escribir logs de eventos en DynamoDB, enviar datos a Firehose para acumular en S3, entre otras. Estas acciones se pueden combinar para construir flujos de trabajo de respuesta automática complejos. Por ejemplo, cuando se detecta una anomalía de temperatura, se puede notificar simultáneamente al equipo de mantenimiento, registrar el evento y enviar un comando de apagado al dispositivo.

Precios de IoT Events

Los precios de IoT Events se cobran por número de evaluaciones de mensajes. La evaluación de mensajes del modelo de detector cuesta aproximadamente 2,50 USD por millón de evaluaciones. La evaluación de mensajes del modelo de alarma cuesta aproximadamente 0,10 USD por millón de evaluaciones. En entornos donde miles de dispositivos envían mensajes cada minuto, el número de evaluaciones aumenta rápidamente, por lo que se recomienda pre-filtrar con el motor de reglas de IoT Core y enviar solo valores cercanos al umbral a IoT Events para optimizar costos.

Resumen - Directrices de uso de IoT Events

AWS IoT Events es un servicio que detecta transiciones de estado complejas de dispositivos IoT y ejecuta acciones automáticas. Sus principales fortalezas son la definición visual de máquinas de estado con modelos de detector, la gestión de estado independiente por dispositivo y la integración con diversas acciones. Use la función de alarma para monitoreo simple de umbrales y los modelos de detector para detección de transiciones de estado complejas. Si está recopilando datos de dispositivos con IoT Core pero la lógica de monitoreo de estado implementada con Lambda se ha vuelto compleja, IoT Events es una alternativa eficiente.