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