Eigenes Variablen Profil wird im WebFront falsch dargestellt.

Hallo, ich versuche gerade meine USV anzubinden und lese dazu das LOG-File aus. In der Konsole ändere ich das Variablenprofil für einen Wert auf Temperatur (eigenes Profile) mit 2 Nachkommastellen, im WebFront wird die Zahl ohne Nachkomma dargestellt. Verwende ich das Originalprofile ~Temperatur werden die Nachkommastellen im WebFront richtig dargestellt.

In der Verwaltungskonsole wird es immer richtig angezeigt. Mein 2 Problem ist, das bei all disesn Variablen die Graph Visualisierung nicht funktioniert.

Angelegt wurden alle Variablem vom Script:

    SetValueFloat(CreateVariableByName($IPS_SELF, "Temperatur C", 2), strToFloat($fields[D_TEMPERATURE_C]));

/*
Einlesen des Logfiles aus Zinto USV
===================================
*/

define("D_DATE", 0);
define("D_TIME", 1);
define("D_INPUT_VOLT", 2);
define("D_INPUT_FREQUENCY_HZ", 3);
define("D_INPUT_CURRENT", 4);
define("D_INPUT_POWER", 5);
define("D_OUTPUT_VOLT", 6);
define("D_OUTPUT_CURRENT", 7);
define("D_OUTPUT_FREQUENCY_HZ", 8);
define("D_OUTPUT_LOAD", 9);
define("D_BATTERY_VOLTAGE", 10);
define("D_BATTERY_RUNTIME", 11);
define("D_TEMPERATURE_C", 12);
define("D_BATTERY_CAPACITY", 13);
define("D_AUTONOMY_TIME", 14);
define("D_BYPASS_VOLTAGE", 15);
define("D_BYPASS_CURRENT", 16);
define("D_BYPASS_FREQUENCY_HZ", 17);


$LogFile     = "c:\\Program Files (x86)\\UPS\\upsman\\UpsData.csv";
$LogInterval = 1;    // Minuten (Standard: 20)

if(file_exists($LogFile))
{
    $lines = file($LogFile);
    $data = explode("	", $lines[count($lines) - 1]);
    $fields = explode(",", $data[0]);
    
    
    list($d, $m, $y) = explode('/', $fields[D_DATE]);
    list($hh, $mm, $ss) = explode(':', $fields[D_TIME]);


    $ts = mktime($hh, $mm, $ss, $m, $d, $y);

   
    if(date("d.m.Y H:i:s", $ts) != GetValueString(CreateVariableByName($IPS_SELF, "Last Time", 3)))
    {
        SetValueString(CreateVariableByName($IPS_SELF, "Last Time", 3), date("d.m.Y H:i:s", $ts));
        SetValueFloat(CreateVariableByName($IPS_SELF, "Input Volt", 2), strToFloat($fields[D_INPUT_VOLT]));
        SetValueFloat(CreateVariableByName($IPS_SELF, "Input Frequency Hz", 2), strToFloat($fields[D_INPUT_FREQUENCY_HZ]));
        SetValueFloat(CreateVariableByName($IPS_SELF, "Input Current", 2), strToFloat($fields[D_INPUT_CURRENT]));
        SetValueFloat(CreateVariableByName($IPS_SELF, "Input Power", 2), strToFloat($fields[D_INPUT_POWER]));
        SetValueFloat(CreateVariableByName($IPS_SELF, "Output Volt", 2), strToFloat($fields[D_OUTPUT_VOLT]));
		  SetValueFloat(CreateVariableByName($IPS_SELF, "Output Current", 2), strToFloat($fields[D_OUTPUT_CURRENT]));
        SetValueFloat(CreateVariableByName($IPS_SELF, "Output Frequency Hz", 2), strToFloat($fields[D_OUTPUT_FREQUENCY_HZ]));
        SetValueFloat(CreateVariableByName($IPS_SELF, "Output Load", 2), strToFloat($fields[D_OUTPUT_LOAD]));
        SetValueFloat(CreateVariableByName($IPS_SELF, "Battery Voltage", 2), strToFloat($fields[D_BATTERY_VOLTAGE]));
        SetValueFloat(CreateVariableByName($IPS_SELF, "Battery Runtime", 2), strToFloat($fields[D_BATTERY_RUNTIME]));
        SetValueFloat(CreateVariableByName($IPS_SELF, "Temperatur C", 2), strToFloat($fields[D_TEMPERATURE_C]));
        SetValueFloat(CreateVariableByName($IPS_SELF, "Battery Capacity", 2), strToFloat($fields[D_BATTERY_CAPACITY]));
        SetValueFloat(CreateVariableByName($IPS_SELF, "Autonomy Time", 2), strToFloat($fields[D_AUTONOMY_TIME]));
        SetValueFloat(CreateVariableByName($IPS_SELF, "Bypass Voltage", 2), strToFloat($fields[D_BYPASS_VOLTAGE]));
        SetValueFloat(CreateVariableByName($IPS_SELF, "Bypass Current", 2), strToFloat($fields[D_BYPASS_CURRENT]));
        SetValueFloat(CreateVariableByName($IPS_SELF, "Bypass Frequency Hz", 2), strToFloat($fields[D_BYPASS_FREQUENCY_HZ]));

    }

}

function strToFloat($value)
{
    return (float)(str_replace(",", ".", $value));
}

function CreateVariableByName($id, $name, $type)
{
   global $IPS_SELF;
   $vid = @IPS_GetVariableIDByName($name, $id);
   if($vid===false) {
      $vid = IPS_CreateVariable($type);
      IPS_SetParent($vid, $id);
      IPS_SetName($vid, $name);
      IPS_SetInfo($vid, "This Variable was created by Script #$IPS_SELF");
   }
   return $vid;
}

Gruß
Markus

Bug or Feature:

Wenn ich das Script aus meiner Kategorie „Program“ in die Kategorie „Hardware“ verschiebe passt plötzlich alles, Kommastellen werden angezeigt, Graph Visualisierung geht,…

Warum geht das in der Kategorie „Program“ nicht?

Welche Version? Passt es, wenn du das WebFront per F5 neu lädst?

paresy

Hallo Paresy!

Nein, F5 bringt nichts, IPC V3.00 19.08.13 #2934

Gruß
Markus

Hi Leute,

Habe das gleiche Problem. Gibt es dafür schon eine Lösung? :frowning:

EDIT:
Habe es gelöst indem ich die Instanz direkt unter eine Kategorie gehängt habe -> dann F5 im WF.
Habe die Instanz mit der Variable danach wieder weiter unten im Baum platziert, wie zuerst, Profil geändert und im WF wieder auf F5.
Jetzt funktioniert es!