Zeitstempel von Variablen anzeigen

Hallo zusammen,

besteht die Möglichkeit, den Zeitstempel einer Variablen (=Zeitpunkt der letzten Änderung) per Default anzeigen zu lassen?

Vielleicht gibt es ja im Profil irgendwelche Präfixe, die das ermöglichen?

Danke und Gruß
micheljarre

Moin!

Du kannst dir mit IPS_GetVariable (VariableChanged, VariableUpdated) deine gewünschten Infos „rausholen“ und z.B. in eine Hilfs-Variable schreiben lassen.

Kommt drauf an, was du überhaupt genau mit den Informationen vor hast. Wenn du uns dazu noch etwas mehr Infos gibst, dann kann man vlt. noch mehr dazu sagen.

Grüße,
Chris

Hallo,

danke für die Antwort!

Den Gedanken mit der Hilfsvariable hatte ich auch schon, aber ich hatte die Idee, dass es vielleicht auch anders geht.

Da ich aus dem Homematic Bereich komme und dort in der Signalliste eigentlich immer auch die Zeitstempel angezeigt werden, fände ich es komfortable, generell in der Webfront (und gerne auch in den enstprechenden Apps) am liebsten links vom Variablenwert noch den Zeitstempel angezeigt zu bekommen. Mein Gedanke war, dass es vielleicht über das Profil geht (z.B. so etwas wie %t), weil ich ja auch in eine Zustandsanzeige den eigentlichen Variablenwert mit %f aufnehmen kann.

Danke und Gruß
micheljarre

In der neuen Symcon-Mobile-App kannst du auf einer Variable von rechts nach links wischen und dann kommt ein Info-Symbol, dort siehst du dann die letzte Änderung/Aktualisierung der Variable. Im WebFront könntest du die Infos ins Variablenprofil schreiben (dazu gibt es einige Ansätze/Beispiele im Forum). Oder halt über eine Hilfsvariable.

Grüße,
Chris

Ok, vielen Dank für die Infos.

Gruß
micheljarre

Hallo Chris,

ich wollte mich dazu nochmal melden:

Hast Du ein Beispiel für mich (Forumslink oder Skript)? Ich finde dazu irgendwie nichts.

Danke und Gruß
micheljarre

Spontan finde ich leider keinen passenden Thread… Glaube da ging es ursprünglich um Fenster?!

Du kannst, wie gesagt, in einem Skript mit IPS_GetVariable dir „VariableChanged“ holen. Dann im gleichen Skript das Variablenprofil für die entsprechende Variable mit „IPS_SetVariableProfileAssociation“ neu setzen (inkl. Zeit, Status, …). Dieses Skript kann dann z.B. durch Variablenänderung der STATE (oder was auch immer) Variable gestartet werden. Ändert sich also der STATE einer Variable, wird für diese Variable das Variablenprofil neu gesetzt (mit aktueller Uhrzeit, oder was auch immer du sehen willst).
So habe ich das bei mir bei allen Fenstern/Türen/Bewegungsmeldern. Sehr übersichtlich und informativ :slight_smile:


Dahinter steckt jeweils eine BOOL-Variable mit speziellem Variablenprofil und erwähntem Skript bei der Variable als „Eigene Aktion (Action-Skript)“.

Grüße,
Chris

Elegant!

Was mir nicht klar ist: du hast im Screenshot ja zwei gleichartige Variablen mit unterschiedlichen Zeitstempeln. Brauche ich dann für jede Variable ein eigenes Profil? Denn wenn ich ein Profil modifiziere, tue ich das ja für alle Variablen mit diesem Profil gleichermaßen (?).

Jupp, jede Variable bekommt automatisch ein eigenes Profil zugewiesen, welches dann dynamisch geändert wird (zum Update von Datum/Uhrzeit). Läuft mit unendlich vielen Variablen über ein Skript :wink:

Alle Fensterkontakte/Türen teilen sich bei mir ein Skript und alle Bewegungsmelder teilen sich ein 2. Skript (nur wegen der Namensgebung und Übersicht, ginge auch in einem Skript) :slight_smile:

-Chris-

Coole Sache das. Man könnte z.B. im Initialzustand das Variablenprofil erst mal kopieren und die Objekt-ID im Profilnamen mit unterbringen.

Ich hoffe, ich nerve nicht, aber trotzdem fällt mir noch eine Sache auf: was mache ich mit Variablen, die selber schon eine (Standard-) Aktion haben, z.B. Schalter? Wenn ich denen die Standardaktion „wegnehme“, funktionert der Aktor doch nicht mehr?

Bei solchen Aktoren (Schaltern, …) müsstest du das Skript natürlich entsprechend anpassen und den Teil mit dem Variablenprofil mit in das „Schalt-Skript“ einbauen. Etwas mehr Aufwand, aber auch nicht weiter dramatisch, weil der Teil ja trotzdem in allen Skripten gleich ist.

Grüße,
Chris

Okay, danke für die Info.

Hallo,

wäre es möglich den php code dafür einmal zur Verfügung zu stellen?
Ich suche schon lange nach einer solchen Anzeige in webfront, aber mir fehlt es leider an Programmierkenntnis.

Vielen Dank vorab.

IPS_GetVariable — IP-Symcon :: Automatisierungssoftware

etwas weiter unten findest du da dann auch Beispiele wie es zu proggen wäre

Ich erlaube mir mal, dezent auf dieses Skript zu verweisen, das etwas nicht unähnliches tut:

Statusvariablen-Log fürs WebFront

Ist eigentlich für längere Logs gedacht, aber man kann es natürlich theoretisch auch so einstellen dass nur der letzte Wert angezeigt wird :wink:

Hallo,

ich suche einen Befehl, mit dem ich einen Variablen wert als ( dd /mm/yyyy hh:mm) geben kann, wenn sich eine andere Variable ändert.

Dies würde ich dann in den Abgerufenen Variablennamen geben mit IPS_Setname.

Zb: Garage 12.03.2023 true

Das kannst du grundsätzlich mit date machen.

Das Script, mit dem du das IPS_Setname aufrufen möchtest lässt du durch das Event der Variablenänderung aufrufen und nutzt dann

date("d/m/Y H:i")

Perfekt… Vielen Dank!!