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.
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 …
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!