[Scripting] Systemvariable OLDTIMESTAMP?

Ich tüftle grade ein bisschen herum und bin da über eine, wie ich angenommen hatte, sehr simplen Sache gestolpert, die mit IPS nach einer kurzen Recherche aber nicht möglich schient.

Es gibt doch die Systemvariable $_IPS[‚OLDVALUE‘] mit der ich im Script in Abhängigkeit des alten und des neuen Wertes Aktionen berechnen und ausführen kann. Und über IPS_GetVariable komme ich an ‚VariableChanged‘ und ‚VariableUpdated‘. Zu diesem Zeitpunkt sind diese Werte immer = time(), also exakt Jetzt.

Irgendwie fehlt mir eine Art $_IPS[‚OLDTIMESTAMP‘] oder ‚VariableOldTimestamp‘. Damit wäre es sehr einfach möglich im Script zum Beispiel einen langen von einem kurzen Tastendruck zu unterscheiden oder nach dem Abschalten eines Gerätes sehr leicht die Einschaltzeit zu den Betriebsstunden hinzu zu addieren.

Es gibt zwar bereits Lösungen zu meinen beiden Beispielen aber irgendwie programmieren die auch immer nur um dieses Problem drum herum und man braucht dazu bei mehreren Tastern und Geräten immer einen ganzes Bündel an Hilfsvariablen. Ich finde das unnötig unübersichtlich.

Ist jetzt nicht direkt ein neues Killerfeature aber wenn das kein immenser Aufwand ist fände ich das eine sinnvolle Erweiterung des bestehenden Systems.

Gruß,

Toni

Welcher Zeitstempel wäre das denn? Der der letzten Aktualisierung oder der letzten Änderung?

paresy

Da bräuchte man sicherlich beide.[emoji106]

Gruß Burkhard

So?
VariableOldChanged
VariableOldUpdated
Wäre schon cool :cool:
Michael

Ich dachte eher an Systemvariablen in Analogie zu OLDVALUE:
OLDVARIABLECHANGED
OLDVARIABLEUPDATED

Gruß

Burkhard

Oder beides?
Weil in den Systemvariablen gibt es aktuell ja auch nur OLDVALUE und noch gar keinen Timestamp.
Da reicht ja eigentlich OLDVARIABLEUPDATED.
Wer mehr braucht muss wie bisher IPS_GetVariable nutzen, wenn es dort dann differenziert VariableUpdated und VariableChanged gibt.
Michael

OLDVARIABLEUPDATED alleine würde bei einem Homematic Tastereingang HM-PBI-4-FM nicht helfen, da PRESS_LONG und PRESS_SHORT nur aktualisiert, nicht aber geändert werden. Von daher sollten schon beide zusammen angeboten werden.

Ob man sie zusätzlich auch bei den Variablen Attributen braucht? Meiner Ansicht nach nicht, denn sonst bräuchte man dort auch OldValue. Das passt aber nicht, da man das Gegenstück Value nicht hat …

Gruß

Burkhard

Aber die Datenpunkte / Variablen gehen doch eh nie wieder auf false. Somit bringt dir das Changed gar nichts.
Michael

Argh, da habe ich Changed und Updated verwechselt:banghead:

Also würde ein OLDVARIABLEUPDATED reichen:)

Kommt im nächsten Update als $_IPS[„OLDUPDATED“] und $_IPS[„OLDCHANGED“]

Ebenfalls ändert sich dadurch der MessageSink bei VM_UPDATED um die beiden Parameter.

paresy

Um ehrlich zu sein, alles ist irgendwie auf seine Art nützlich. Je nach Anwendungsfall hat sicher alles seine Berechtigung. Konkret gesucht habe ich etwas wie $_IPS[‚OLDCHANGEDTIMESTAMP‘].

Edit:

Letzten Beitrag zu spät gesehen. Danke für die schnelle Reaktion! :slight_smile:

Toni

Besten Dank für die Anforderung und die Umsetzung :slight_smile:

Kann man auch gut gebrauchen um z.B. ein mehrfaches Drücken eines Tasters zu ignorieren. Funktioniert bestens.

Gruß

Burkhard