[Szenarien] Zeitstempel mit dem aktuellen Datum/Uhrzeit oder „heute“ vergleichen

Hallo,

Ich arbeite derzeit an einer Roborock-Integration, die das Datum des letzten Reinigungsvorgangs als Zeitstempel ausgeben kann.

Das Ziel ist es, dann eine Szene wie folgt zu erstellen:

Wenn das Haus leer wird
→ Letzten Reinigungsvorgang des Roboters abrufen
→ Nur fortfahren, wenn heute noch kein Reinigungsvorgang durchgeführt wurde
→ Reinigung starten

Die Integration kann leicht Folgendes ausgeben:

Last clean start = 1786958400

Das Problem ist, dass es im Szenarienmotor nicht möglich zu sein scheint, diesen Wert einfach mit einem relativen Datum wie Folgendem zu vergleichen:

Anfang von heute
jetzt
gestern
vor X Stunden

Eine Bedingung wie diese wäre besonders nützlich:

Letzter Reinigungsvorgang < Anfang von heute

ou, ergonomischer:

Letzter Reinigungsvorgang
→ ist nicht heute

Die Idee wäre also, eine generische Unterstützung für Datumsangaben/Zeitstempel in den Szenarienbedingungen hinzuzufügen.

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

Dies könnte möglicherweise über Szenarienvariablen/Formeln erfolgen, z. B. durch die Bereitstellung von Werten oder Funktionen wie:

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

Der Bedarf ist nicht spezifisch für Roborock. Dies würde auch die Arbeit mit Folgendem ermöglichen:

  • Datum der letzten Bewegung;
  • Letztes Öffnen einer Tür;
  • Letzter Start eines Geräts;
  • Letztes Laden;
  • Letzter Ereignis von einer Integration;
  • Jedes Gerät, das einen Zeitstempel ausgibt.

In meinem speziellen Fall würde dies vermeiden, in der Roborock-Integration ein künstliches Feature cleaned_today hinzuzufügen, obwohl die generische Information last_clean_start normalerweise ausreicht.

Könnte dies etwas sein, das im Szenarienmotor seinen Platz haben könnte?

Wird der folgende, von Pierre-Gilles akzeptierte Vorschlag deinem Bedarf gerecht werden?

Hey @StephaneB

Ja, diese Anfrage deckt anscheinend einen großen Teil meines Bedarfs ab :+1:

In meinem Fall stellt die Roborock-Integration direkt den Zeitstempel des Beginns der letzten Reinigung (last_clean_start) bereit. Ich muss also nicht die aktuelle Zeit zum Zeitpunkt eines Ereignisses speichern, aber ich muss diesen Zeitstempel mit dem aktuellen Datum in einer Szene vergleichen können.

Zum Beispiel: last_clean_start < Anfang von heute, um zu wissen, dass heute noch keine Reinigung gestartet wurde.

Wenn die in diesem Thema vorgeschlagene Funktion es ermöglicht, sowohl now/das Datum des Tages abzurufen als auch Vergleiche oder Berechnungen mit einem Zeitstempel aus einer Funktion durchzuführen, dann ja, sie würde meinem Bedarf entsprechen.

Die beiden Anfragen könnten wahrscheinlich zu einer generischen Unterstützung von Daten/Zeitstempeln in Szenen zusammengefasst werden. :slight_smile: