Aktionscript bei Variable mit ~Unixtimestamp

ich stehe gerade mächtig auf dem Schlauch:

Ich möchte ein Skript hinterlegen, dass bei einer Integervariable mit dem Profil ~UnixTimeStamp das aktuelle Datum setzt (SetValue ($IPS_VARIABLE, time());).

Leider wird dieses Skript aber nicht ausgeführt, wenn ich im Webfront auf die Variable klicke. Mache ich was falsch?

Hast du das Script als Aktionsscript eingetragen?

Sonst mach mal einen Screenshot.

eigentlich kann man da doch gar nichts falsch machen… Ich verstehe es nicht…

das Skript ist auch nicht sonderlich kompliziert:

<?

 // Schreibt die aktuelle Zeit in die Variable die dieses Skript ausführt
 // und logt dies mit

SetValue ($IPS_VARIABLE, time());
echo ('Zeit setzen gestartet');

?>

Das geht so nicht, rufe doch einfach das Aktionsscript im Webfront direkt auf und beschreibe die Integer ID mit dem Timestamp.

die Idee hatte ich auch schon. Aber ich habe mehrere Variablen im Webfront die ich mit diesem Skript zurücksetzen möchte. Dann hatte ich die Idee, ich könnte ja das gleiche Skript mit mehreren Links im Webfront einfügen (jeweils dort wo ich es brauche). Da ich aber in einem Skript keine Variable gibt, die mir zurückmeldet welcher Link das Skript gestartet hat, komme ich so auch nicht weiter. Im Aktionscript hätte ich IPS_VARIABLE dafür gehabt.

Noch eine andere Idee?

Wie kommen denn die Zeitwerte sonst in die Int. Variablen, außer über das klicken im Webfront, sonst könntest Du es evtl. etwas umständlicher über eine Assoziation lösen.

Wenn ich über ein Skript Datum und/oder Uhrzeit abspeichern will, dann mache ich das immer wie folgt:

$timestamp = time();
$DatumUhrzeit = date("d.m.Y - H:i", $timestamp);
$DatumUhrzeit = $DatumUhrzeit . " Uhr";
SetValueString(27657 /*[Skripte & Variablen\Bewegungsmelder\Letzte Bewegung]*/, $DatumUhrzeit );

Kann man beliebig formatieren… Man kann natürlich auch nur den timestamp als Integer abspeichern und dann nachher beim Anzeigen in ein beliebiges Anzeigeformat „umwandeln“.

Grüße,
Chris

Das ist ja nicht sein Problem, sondern er will ein globales Actionsscript, welches beim Klick auf die Int. Variable ausgeführt wird.

Hi,

Aktionsscript sollte kein Thema sein, aber normalerweise möchte man ja wissen wann zum letzten mal sich bei EINER zugehörigen Variablen etwas geändert hat (sind also dann mehrere). Und da es im WebFront angezeigt werden soll brauche ich einmal eine ~UnixTimestamp und die Zugehörige Zustandsvariable, welche auch mit einem Profil versehen sein sollte damit´s angezeigt wird.

Also braucht man zum Auslösen ein Ereignis auf die Zustandsvariable, welches dann wiederum so ein globales Script triggert und jetzt kommt das Problem, dort sollten die zugehörigen ~UnixTimestamp ID´s hinterlegt sein. Nächstes Problem, die sollten anzeigemässig schon in der richtigen Reihenfolge sortiert sein.

Für meine IO-Karte004 habe ich ein Installationsscript erstellt, das kennt die ID´s beim Erstellen und trägt sie dann in die Scripte ein.
Ergebnis: 1 Aktionscript welches von 28 Triggern angesprochen wird.

<?

	if($_IPS['SENDER'] != "Variable")
    return;

	$CallerID = $_IPS['VARIABLE'];

 	switch ($CallerID) {
      case 59107:               // ist die ID der auslösenden Zustandsvariable
 					SetValueInteger(14752 /*[Technik\PIC18F4550\Test-8.1\Eingaenge\Pin1 update]*/, time());
      break;
      case 58004:
 					SetValueInteger(50174 /*[Technik\PIC18F4550\Test-8.1\Eingaenge\Pin2 update]*/, time());
      break;
// usw.
}

?>

Benötige ich eine weitere Relaiskarte lohnt der Zeitaufwand für das Editieren nicht; Installationsscript aufrufen und schon ist nach 100 mS alles erledigt.
Dann hat man zwar zwei Scripte, aber die sind sauber voneinander abgetrennt

mfg

BerndJ

PS: manchmal kann die Zeitanzeige auch schon mal nerven, aus diesem Grunde gibt´s bei mir noch die Möglichkeit die über eine weitere Zustandsvariable weg zu schalten.