[Scènes] Comparer un timestamp à la date/heure actuelle ou à “aujourd’hui”

Bonjour,

Je travaille actuellement sur une intégration Roborock qui peut exposer la date du dernier nettoyage sous forme de timestamp.

L’objectif est ensuite de pouvoir construire une scène du type :

Lorsque la maison devient vide
→ récupérer le dernier nettoyage du robot
→ continuer uniquement si aucun nettoyage n'a été effectué aujourd'hui
→ lancer le nettoyage

L’intégration peut facilement exposer :

Last clean start = 1786958400

Le problème est qu’au niveau du moteur de scènes, il ne semble pas possible de comparer simplement cette valeur avec une date relative comme :

début d'aujourd'hui
maintenant
hier
il y a X heures

Une condition comme celle-ci serait particulièrement utile :

Dernier nettoyage < début d'aujourd'hui

ou, plus ergonomiquement :

Dernier nettoyage
→ n'est pas aujourd'hui

L’idée serait donc d’ajouter un support générique des dates/timestamps dans les conditions de scènes.

timestamp < now
timestamp > startOfDay
timestamp > now - 24h
timestamp isToday
timestamp isYesterday

Cela pourrait éventuellement passer par les variables/formules de scènes, par exemple en exposant des valeurs ou fonctions comme :

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

Le besoin n’est pas spécifique à Roborock. Cela permettrait également de travailler avec :

  • date du dernier mouvement ;
  • dernière ouverture d’une porte ;
  • dernier démarrage d’un appareil ;
  • dernière recharge ;
  • dernier événement provenant d’une intégration ;
  • tout appareil exposant un timestamp.

Dans mon cas précis, cela éviterait d’ajouter dans l’intégration Roborock une feature artificielle cleaned_today, alors que l’information générique last_clean_start suffit normalement.

Est-ce quelque chose qui pourrait avoir sa place dans le moteur de scènes ?

Est-ce que la demande suivante, acceptée par PIerre-Gilles, te permettra de répondre à ton besoin ?

Hey @StephaneB

Oui, cette demande semble couvrir une grosse partie de mon besoin :+1:

Dans mon cas, l’intégration Roborock expose directement le timestamp du début du dernier nettoyage (last_clean_start). Je n’ai donc pas besoin de stocker l’heure courante au moment d’un événement, mais j’ai besoin de pouvoir comparer ce timestamp à la date courante dans une scène.

Par exemple : last_clean_start < début d'aujourd'hui, afin de savoir qu’aucun nettoyage n’a encore été lancé aujourd’hui.

Si la fonctionnalité proposée dans ce sujet permet à la fois de récupérer now/la date du jour et de faire des comparaisons ou calculs avec un timestamp provenant d’une feature, alors oui, elle répondrait à mon besoin.

Les deux demandes pourraient probablement être regroupées autour d’un support générique des dates/timestamps dans les scènes. :slight_smile: