[Escenas] Comparar un timestamp con la fecha/hora actual o con „hoy“

Hola,

Actualmente estoy trabajando en una integración de Roborock que puede exponer la fecha del último limpieza en forma de timestamp.

El objetivo es poder construir una escena del tipo:

Cuando la casa se queda vacía
→ obtener el último limpieza del robot
→ continuar solo si no se ha realizado ninguna limpieza hoy
→ iniciar la limpieza

La integración puede exponer fácilmente:

Last clean start = 1786958400

El problema es que, a nivel del motor de escenas, parece que no es posible comparar simplemente este valor con una fecha relativa como:

inicio de hoy
ahoraayer
hace X horas

Una condición como esta sería especialmente útil:

Último limpieza < inicio de hoy

ou, más ergonómicamente:

Último limpieza
→ no es hoy

La idea sería, por lo tanto, agregar un soporte genérico de fechas/timestamps en las condiciones de escenas.

timestamp < ahora
timestamp > inicioDeDía
timestamp > ahora - 24h
timestamp esHoy
timestamp esAyer

Esto podría pasar eventualmente por las variables/fórmulas de escenas, por ejemplo exponiendo valores o funciones como:

now()
today()
startOfDay()
endOfDay()

La necesidad no es específica de Roborock. También permitiría trabajar con:

  • fecha del último movimiento;
  • última apertura de una puerta;
  • último inicio de un dispositivo;
  • última recarga;
  • último evento de una integración;
  • cualquier dispositivo que exponga un timestamp.

En mi caso específico, esto evitaría agregar en la integración de Roborock una característica artificial cleaned_today, cuando la información genérica last_clean_start normalmente es suficiente.

¿Es algo que podría tener cabida en el motor de escenas?

¿La siguiente solicitud, aceptada por Pierre-Gilles, te permitirá satisfacer tu necesidad?

Hola @StephaneB

Sí, esta solicitud parece cubrir una gran parte de mis necesidades :+1:

En mi caso, la integración de Roborock expone directamente el timestamp del inicio de la última limpieza (last_clean_start). Por lo tanto, no necesito almacenar la hora actual en el momento de un evento, pero necesito poder comparar este timestamp con la fecha actual en una escena.

Por ejemplo: last_clean_start < inicio de hoy, para saber que aún no se ha iniciado ninguna limpieza hoy.

Si la funcionalidad propuesta en este tema permite tanto obtener now/la fecha del día y hacer comparaciones o cálculos con un timestamp de una característica, entonces sí, cubriría mi necesidad.

Las dos solicitudes probablemente podrían agruparse en torno a un soporte genérico de fechas/timestamps en las escenas. :slight_smile: