$_IPS['VALUE'] formatiert?

Steh auf dem Schlauch.
Wie kann ich mit $_IPS[‚VALUE‘] die formatierte Darstellung erhalten (wie in ‚GetValueFormated‘)?

Danke, kjb

Vermutlich gar nicht?
Weil erst wenn der Wert in der Variable steht, ist ja auch das Profil bekannt.
Also:
Wert mit SetValue schreiben und dann mit GetValueFormated wieder lesen.
Michael

Evtl. könntest du das hier nutzen:


echo GetValueFormatted($_IPS['VARIABLE']);

Ist aber je nachdem wie schnell neue Werte kommen nicht der Wert, der in $_IPS[‚VALUE‘] steht.

paresy

Na immerhin paresy hat die Frage verstanden. :smiley:

Es ging natürlich um ein Script, welches von einer Variablen-Änderung getriggert wird und dann dort Zugriff auf den Wert der Variable ermöglicht mit $_IPS[VALUE]. Aber eben nur den Wert und nicht die Assoziation dazu. Und wie paresy richtig bemerkt hat, ist das Problem an GetValueFormatted, dass der Wert nicht zwingend dem Wert zum Auslösezeitpunkt entsprechen muss.
Bei der Analyse von Problemen schreibe ich gerne mal ein Log, bei welchem ich dann schon sicher sein will, dass ich wirklich den Wert, welcher geriggert hat mitschreibe. Und weil das Lesen mit den Assoziationen einfacher wäre, habe ich mir die Frage erlaubt.

Offenbar ist es einfach nicht möglich.

Danke für die Kommentare, kjb

Ich mach da immer einen Rundumschlag:

// 2. Daten schnell holen, später bewerten
$Vobj = $_IPS['VARIABLE'];    // Objekt-Nr. der Variablen
$IVar = IPS_GetVariable($Vobj);         // Info zur VARIABLE
$vSta = @GetValueFormatted($Vobj);      // verbaler Status Ergibt z.B.: 22,3 °C
$bSta = @GetValueBoolean($Vobj);        // Binär-Wert der Variablen: TRUE/FALSE
$aSta = $_IPS['VALUE'];                           // Analoger Wert der Variablen: 22.3
$oSta = $_IPS['OLDVALUE'];                        // Wert der auslösenden Variable vor Auslösezeitpunkt
$tSta = $IVar ['VariableValue'] ['ValueType'];    // Variablentyp (0: Boolean, 1: Integer, 2: Float, 3: String)

Ich behelfe mir so

if ($_IPS['VALUE'] == GetValue($_IPS['VARIABLE']))	$Wert = GetValueFormatted($_IPS['VARIABLE']);
else $Wert = $_IPS['VALUE'];

Es muss aber zwingend ein Variablenprofil definiert sein, sonst kommt nichts zurück! Also auch etwas tückisch.