[Escenas] Poder recuperar un estado historizado de un dispositivo (no solo el último)

Me gustaría que la acción « Recuperar el último estado » evolucionara para convertirse en « Recuperar el estado » con una opción que permita especificar si se desea el último estado o el estado registrado en el historial del dispositivo en un momento determinado (por ejemplo, hace 10 minutos, 1 hora, 24 horas, etc.).

Concretamente, esto simplificaría las escenas donde se quiere implementar un comportamiento dependiente de una variación de un sensor durante un período determinado. Por ejemplo: activar una alerta si el depósito de agua de lluvia ha bajado más del 5% en 30 minutos (porque esto puede indicar una fuga o un grifo mal cerrado).

Hoy en día, (aunque quizá haya una forma más sencilla, estoy abierto a sugerencias…) hay que crear un dispositivo MQTT ficticio y activar una escena regularmente que almacene el valor « último estado » del sensor en el dispositivo MQTT, luego espera 30 minutos, luego recupera nuevamente el valor del último estado y compara los dos valores.

Funciona bien, pero no es intuitivo tener que crear un dispositivo Mqtt para esto…

Me lo imagino así:

Estoy releyendo este borrador y creo que la frase « El estado más cercano después de: » es ambigua.

Creo que « El estado historizado hace… » sería más claro. Y la nota se convertirá en « Precisión: es el primer estado registrado después de este instante el que se devolverá. Si el dispositivo no tiene historial, será el último estado. »

También me interesa, pero iría más allá al tener también lo contrario: recuperar la fecha en la que un estado tenía un cierto valor. Por ejemplo, ¿cuál es la última fecha en la que mi tanque estaba lleno al 100% :slight_smile:

@Nagromdark entiendo la necesidad que describes, pero creo que es claramente otra solicitud de funcionalidad. Te sugiero que la hagas por separado. Y me parece que tendrás que especificar dos aspectos:

  • qué debe devolver esta acción si no hay ninguna fecha en la que el valor que buscas haya sido alcanzado
  • ¿debe la fecha devuelta ser el valor numérico estándar en informática (es el número de segundos desde 1/1/1970)? ¿O el número de segundos entre esa fecha y ahora? ¿O una fecha en formato de texto? Pero en ese caso, ¿cómo debe estar formateada? Porque en realidad, en informática, una fecha es un dolor de cabeza para definir bien :wink:…

Gracias por tu respuesta, sí efectivamente las fechas son un rollo, voy a hacer una solicitud aparte.

Maqueta modificada:

¡Gracias por tu propuesta @StephaneB, ya he tenido la misma necesidad!
Hay algo a lo que hay que prestar atención, y es cómo se recupera el valor historizado.

Supongamos que tu sensor devuelve un valor cada 15 segundos. ¿A qué debe corresponder el estado historizado « hace 30 minutos »? ¿El valor más cercano a « H-30min »?
¿Podría ser más simple, indicando « el valor anterior », o « el último estado entre y  »?

Supongamos además, que tu sensor no ha devuelto nada durante 1 hora (interferencia, fallo de batería, reinicio de Gladys, etc). ¿Cómo reaccionar? ¿Detener la escena?

Sea como sea, esto me permitiría hacer ciertos cálculos con más facilidad, como en tu caso, saber si la temperatura aumenta o disminuye demasiado rápido, por ejemplo.

He editado esta solicitud antigua para añadirle la etiqueta to-be-processed, y para que quizás se emprenda un desarrollo con IA…