"Flanke" nutzen

Hallo Leute,

ich versuche ein Skript nur durchlaufen zu lassen, wenn sich der Wert einer Variablen von 1 auf 2 ändert. In allen anderen Fällen soll das Skript nicht ausgeführt werden.

Toni wies einmal auf diese Variablen hin:

$IPS_SENDER = Variable
$IPS_VARIABLE = Variable mit der Variable die getriggert hat
$IPS_VALUE = Veriablenwert zum Zeitpunkt des Triggers
$IPS_TRIGGER = Art des Triggers z.B. OnUpdate, OnValue, OnChange

Leider habe ich bisher keine Beispiel gefunden, wie man damit umgeht, auch die Dokumentation habe ich ohne echten Treffer durchforstet…

Vielleicht hat einer einen Link oder ein Skriptbeispiel zur Hand?

Joachim

Hi Joachim,
das sind Systemvariablen, die schon veraltet sind. Neue Schreibweise ist $_IPS. Die Doku hat paresy aber sehr gut versteckt:
Systemvariablen — IP-Symcon :: Automatisierungssoftware

Vielleicht noch ein Beispiel zur Anwendung:

if ($_IPS['SENDER'] == "WebFront")
{
   SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
}

Hallo Joachim,

man kann ein Skript auf einen bestimmten Wert einer Variablen triggern lassen. Wie der Wert vorher war mußt Du im Script selber abfragen.

if ($_IPS['OLDVALUE']==1){
echo "test";
}

Eine direkte Flanke ist in dem Ereignis leider nicht einstellbar.

Gruß
Attain

Joachim,

mein Grübel-Kübel lässt fragen, ob nicht ein Triggerevent auch denkbar wäre:

RS.net Screenshot 007 2012-09-29.png

Hallo Leute,

vielen Dank für Eure Antworten!

So hat es geklappt:

If (($_IPS['VALUE'] == 2) AND ($_IPS['OLDVALUE'] == 1))

(Wenn man es direkt aus der Dokumentation kopiert wurden die „Hochkomma“ falsch eingesetzt!)

Joachim