Cluster SENSOR_THRESHOLD

En numerosos escenarios, un sensor se utiliza como medio para detectar situaciones fuera de la normalidad. Este modo de operación, por ejemplo, es típico de los sistemas de alarma y prevención. Se pretende que el sensor sea capaz de generar un evento cuando se rebasa un determinado umbral durante un más de unos tiempos especificados.

Este  cluster tendrá que contemplar los mecanismos que permitan definir los umbrales, y tiempos que generaran los eventos que informan del abandono de situación de normalidad.

Si se decía que el cluster sensor_event, era la representación mas natural de sensores tipo evento o digitales, el cluster sensor_thereshold, es el mas indicado para trabajar con alarmas de limite en sensores analógicos, tipo termostatos.

 Los comandos básicos de este cluster son:

  • GET_SENSOR_LOWER_THRESHOLD – 0x00 (OBL)
    • Descripción: Solicita al dispositivo el valor del umbral de detección inferior, con el que el sensor del endpoint correspondiente, genere un evento SENSOR_LOWER_THRESHOLD.
    • Parámetros: Ninguno
    • Respuesta: SENSOR_THRESHOLD_LOW, DEV_ERROR.
  • SET_SENSOR_LOWER_THRESHOLD – 0x01 (OBL)
    • Descripción: Define el valor del umbral de detección inferior, con el que el sensor del endpoint correspondiente, genere un evento SENSOR_LOWER_THRESHOLD
    • Parámetros: n bytes. La codificación del valor dependerá del sersor y su implementación, en cualquier caso será la misma que se haya utilizado en el cluster SENSOR.
      • sensorThldLower: n bytes.
    • Respuesta: DEV_ACK, DEV_ERROR.
  • RESET_SENSOR_LOWER_THRESHOLD – 0x02 (OPC)
    • Descripción: Restablece la detección del umbral inferior tras haberse generado un evento SENSOR_LOWER_THRESHOLD
    • Parámetros: Ninguno
    • Respuesta: DEV_ACK, DEV_ERROR.
  • GET_SENSOR_UPPER_THRESHOLD – 0x03 (OBL) 
    • Descripción: Solicita al dispositivo el valor del umbral de detección superior, con el que el sensor del endpoint correspondiente, genere un evento SENSOR_THERESHOLD_UPPER.
    • Parámetros: Ninguno
    • Respuesta: SENSOR_THERESHOLD_UPPER, DEV_ERROR.
  • SET_SENSOR_UPPER_THRESHOLD – 0x04 (OBL)
    • Descripción: Define el valor del umbral de detección superior, con el que el sensor del endpoint correspondiente, genere un evento SENSOR_LOWER_THRESHOLD.
    • Parámetros:  bytes. La codificación del valor dependerá del sersor y su implementación, en cualquier caso será la misma que se haya utilizado en el cluster SENSOR.
      • sensorThldUpper:n2 bytes
    • Respuesta: DEV_ACK, DEV_ERROR.
  • RESET_SENSOR_UPPER_THRESHOLD – 0x05 (OPC)
    • Descripción: Restablece la detección del umbral inferior tras haberse generado un evento SENSOR_UPPER_THRESHOLD
    • Parámetros: Ninguno.
    • Respuesta: DEV_ACK, DEV_ERROR.
  • GET_SENSOR_AUTO_RESET_DELAY – 0x06 (HW)
    • Descripción: Solicita el tiempo que el sensor permanece inactivo después de una detección.
    • Parámetros: Ninguno.
    • Respuesta: SENSOR_THERESHOLD_RESET_DELAY, DEV_ERROR.
  • SET_SENSOR_AUTO_RESET_DELAY – 0x07 (HW)
    • Descripción: Define el tiempo que el sensor permanece inactivo después de una detección. Pasado este tiempo, el dispositivo se restablece automáticamente.
    • Parámetros: 2 bytes.
      • sensorThldAutoResetDelay: 2 bytes. Tiempo en ms (entero positivo).
        • 0x00 Rearme continuo.
        • 0xFF No se rearma
    • Respuesta: DEV_ACK, DEV_ERROR.
  • GET_SENSOR_ELAPSED_TIME_LOW – 0x08 (OPC)
    • Descripción: Solicita el tiempo transcurrido desde que se superó el umbral inferior. De modo indirecto a partir de la variable sensorThldAutoResetDelay permite conocer el tiempo que falta para que se rearme de modo automatico.
    • Parámetros: Ninguno.
    • Respuesta: DEV_ACK, DEV_ERROR.
  • GET_SENSOR_ELAPSED_TIME_UP – 0x09 (OPC)
    • Descripción: Solicita el tiempo transcurrido desde que se superó el umbral superior. De modo indirecto a partir de la variable sensorThldAutoResetDelay permite conocer el tiempo que falta para que se rearme de modo automático.
    • Parámetros: Ninguno.
    • Respuesta: DEV_ACK, DEV_ERROR.
  • GET_SENSOR_ELAPSED_TIME_BOTH – 0x0A (OPC)
    • Descripción: Solicita el tiempo transcurrido desde que se superó el umbral superior y/o inferior. De modo indirecto a partir de la variable sensorThldAutoResetDelay permite conocer el tiempo que falta para que se rearme de modo automático.
    • Parámetros: Ninguno.
    • Respuesta: DEV_ACK, DEV_ERROR.

Los eventos generados por este cluster son:

  • SENSOR_LOWER_THRESHOLD – 0x00 (OBL)
    • Descripción: El dispositivo informa del valor del umbral inferior del sensor del endpoint correspondiente necesario para generar evento thereshold.
    • Parámetros: n bytes.
      • sensorThldLower: n bytes
  • SENSOR_UPPER_THRESHOLD – 0x01 (OBL)
    • Descripción: El dispositivo informa del valor del umbral superior del sensor del endpoint correspondiente necesario para generar evento thereshold.
    • Parámetros: n bytes.
      • sensorThldUpper: n bytes
  • SENSOR_LOWER_THRESHOLD_REACHED – 0x02 (OBL)
    • Descripción: El dispositivo informa de que el valor del sensor del endpoint correspondiente ha caído por debajo del límite inferior.
    • Parámetros: n bytes.
      • sensorValue: n bytes
      • [timestamp: 5 bytes]
  • SENSOR_UPPER_THRESHOLD_REACHED – 0x03 (OBL)
    • Descripción: El dispositivo informa de que el valor del sensor del endpoint correspondiente ha superado el límite superior.
    • Parámetros: n bytes.
      • sensorValue: n bytes
      • [timestamp: 5 bytes]
  • SENSOR_THERESHOLD_RESET_DELAY – 0x04 (HW)
    • Descripción: El dispositivo informa del tiempo que el sensor permanece inactivo después de una detección. Pasado este tiempo, el dispositivo se restablece automáticamente.
    • Parámetros: 2 bytes.
      • sensorThldAutoResetDelay: 2 bytes. Tiempo en ms (entero positivo).
        • 0x00 Rearme continuo.
        • 0xFF No se rearma
  •  SENSOR_ELAPSED_TIME_LOW – 0x05 (OPC)
    • Descripción: El dispositivo informa del tiempo transcurrido desde que el sensor calló por debajo del umbral inferior.
    • Parámetros: 2 bytes. Tiempo en ms
      • sensorThldElapsedTimeLow: 2 bytes. Tiempo en ms (entero positivo)
  • SENSOR_ELAPSED_TIME_UP – 0x06 (OPC)
    • Descripción: El dispositivo informa del tiempo trnascurrido desde que el sensor superó el umbral superior.
    • Parámetros: 2 bytes. Tiempo en ms
      • sensorThldElapsedTimeUp: 2 bytes. Tiempo en ms (entero positivo)
  • SENSOR_ELAPSED_TIME_BOTH – 0x07 (OPC)
    • Descripción: El dispositivo informa del tiempo trascurrido desde que el sensor superó el umbral superior o calló por debajo del inferior.
    • Parámetros: 4 bytes. Tiempo en ms
      • sensorThldElapsedTimeLow: 2 bytes. Tiempo en ms (entero positivo)
      • sensorThldElapsedTimeUp: 2 bytes. Tiempo en ms (entero positivo)