Änderungszeit einer Variablen manipulieren

Hallo,

gibt es eigentlich irgeneine (undokumentierte) Funktion, mit der ich die Änderungs- und Aktualisierungszeit einer Variablen bzw. allgemein eines Objekts manipulieren kann?

Es kommt immer mal wieder vor, dass ich eine bestehende Variable kopieren oder im Nachgang deren Wert zu einem bestimmten Zeitpunkt ändern muss. In beiden Fällen passt die Änderungszeit dann nicht zum Wert. Bisher habe ich mir immer - wenn es zwingend nötig war - damit beholfen, dass ich den Zeitstempel direkt in der Settings manipuliert habe. Aber da gibt es doch bestimmt irgendeine „geheime“ Möglichkeit, oder?

Archivdaten kannst du mit AC_AddLoggedValues und anderen dokumentierten Funktionen ändern.

Die Einträge VariableChanged und VariableUpdated zu „fälschen“ geht so natürlich nicht und ich wäre sehr neugierig, warum das jemals erforderlich sein sollte :smiley:

Das Archiv ist kein Problem.

Naja, wie ich schon schrieb, möchte ich manchmal eine 1:1-Kopie einer Variablen anfertigen, die von der ID abgesehen, absolut identisch zum Original ist. Da gehören die Zeitstempel auch zu.

Und dann gibt es noch Fälle, wo ich einen Wert im Nachgang manuell ändere und die eigentliche Zeit, ab der der Wert gültig war, sehen möchte, ohne dafür eine weitere Variable zu erstellen.

Einfaches Beispiel:
Eine Variable, die den aktuellen Strompreis anzeigt. Manchmal schaffe ich es nicht, den Wert zur eigentlichen Änderungszeit anzupassen. Wenn ich das im Nachgang tue, möchte ich, dass sich die Änderungszeit auch auf den ursprünglichen Änderungszeitpunkt bezieht.

Wie gesagt, Archiv ist ein separates Thema.

In Symcon sind die Inhalte der Variablen die Nutzdaten.
Somit wäre der Zeitpunkt der Gültigkeit von einem Tarif eine eigene Variable.
Die Werte wann Variablen geändert oder aktualisiert wurden werden intern von Symcon gesetzt. Da hast du kein Zugriff drauf.
Michael

Die beschriebene Anwendung klingt ja interessant, allerdings auch so komplex dass dafür sicher der Aufwand einer weiteren Variablen gerechtfertigt wäre. Oder eine Abbildung mittels Archivwerten, welche sich ja wie beschrieben manipulieren lassen. Fände jedenfalls interessant, eine Darstellung von „was hat die kWh zum Zeitpunkt X gekostet“ interessant mal zu sehen, wie du das letztlich gelöst hast :smiley:

Die Archivwerte nutze ich auch. Aber die sind für eine längerfristige Betrachtung und für etwaige Berechnungen über verschiedene Zeiträume. Will ich wissen, von wan der letzte Wert ist, wische ich einfach in der App auf der Variablen nach links und sehe das Änderungsdatum. Wozu also zusätzlichen Platz im WebFront verschwenden, nur um eine Zeit anzuzeigen.
Die Änderungs- und Aktualisierungswerte sind ein ganz wesentlicher Baustein in vielen meiner Skripte und Module, nicht nur für eine visuelle Darstellung.

Ja, in den allermeisten Fällen stimme ich dir zu. Aber die Zeitstempel einer Variablen sind für mich - genau wie die Archivdaten - Nutzdaten. Aus den Zeitstempeln kann man hervorragend Informationen für diverse Berechnungen ableiten (z.B. wie lange war der Wert zuletzt unverändert) und die Info, wann sich ein Wert geändert hat oder aktualisiert wurde, ist für mich auch einfach so als alleinstehende Info von Bedeutung. Ansonsten hätte man diese Daten ja auch einfach weglassen können.

Ich habe es auch nicht wirklich erwartet. Aber manchmal hat das Symcon-Team ja doch noch was in der Trickkiste an undokumentierten Funktionen parat.

Aber Danke für die Antworten und die Diskussion. Für den Notfall habe ich ja einen umständlichen Weg, um es zu ändern.

Ja, dass man bestimmte Features zweckentfremdet, um die Visu kompakt und ansprechend zu gestalten, verstehe ich gut. Mache ich auch (dynamisches Ändern von Variablenprofilen zur Darstellung mehrerer Zustände in einer einzigen Variablen, um nur ein Beispiel zu nennen).

Man muss bloß aufpassen, dass man sich nicht in Sackgassen hinein manövriert. Wenn das Herunterfahren von IPS und manipulieren der Settings bei dir ein wiederkehrender Arbeitsschritt ist, wäre vielleicht doch an der Zeit, gewisse Designprämissen zu überdenken.

Zumindest könnte man ja Sorge tragen, dass die Variable von vornherein zum richtigen Zeitpunkt geändert wird, so dass nachträgliche Änderungen des Zeitstempels überhaupt nicht nötig werden.

Keine Sorge, davon bin ich weit entfernt. Wenn nicht zwischendurch mal ein Update anstehen würde, würde der Dienst bei mir normalerweise 365 Tage durchlaufen.

Tue ich auch. Aber es gibt leider wenige Sonderfälle, wo dies einfach nicht möglich ist und ich hierauf auch keinen Einfluss habe.

Und dann wäre da noch der Spezialfall (1:1 Kopie einer Variablen).

Aber rein akademisch betrachtet, finde ich es ja selbst nicht gut, diese Werte zu manipulieren. :laughing: Denn sie beziehen sich ja auf die Variable. Und rein objektiv betrachtet, ist eine Kopie eine andere Variable, selbst wenn alle Werte/Settings identisch sind.