Hallo,
nach der Umstellung auf die V2.5 funktioniert das nachfolgende Script nicht mehr.
<?
/*
Einlesen des Logfile aus USV ERREPI VRX 700
========================================================
Anleitung:
- LogFile und LogInterval anpassen
- Bei Bedarf auskommentierte Zeilen aktivieren und Positionen anpassen
- Execute drücken, um den automatischen Timer zu erstellen
*/
$LogFile = "C:\\Programme\\UPS\\UPSMAN\\upsdata.csv";
$LogInterval = 1; // Minuten (Standard: 20)
if(file_exists($LogFile))
{
$lines = file($LogFile);
$data = explode(",", $lines[count($lines) - 1]);
$ts = strtotime($data[0]);
if(date("m.d.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, "Eingangsspannung", 2), strToFloat($data[2]));
SetValueFloat(CreateVariableByName($IPS_SELF, "Eingangs Frequenz", 2), strToFloat($data[3]));
SetValueFloat(CreateVariableByName($IPS_SELF, "Ausgangs Spannung", 2), strToFloat($data[5]));
SetValueFloat(CreateVariableByName($IPS_SELF, "Ausgangs Frequenz", 2), strToFloat($data[6]));
SetValueFloat(CreateVariableByName($IPS_SELF, "Auslastung", 2), strToFloat($data[7]));
SetValueFloat(CreateVariableByName($IPS_SELF, "Batterie Spannung", 2), strToFloat($data[8]));
SetValueFloat(CreateVariableByName($IPS_SELF, "Temperatur", 2), strToFloat($data[9]));
SetValueFloat(CreateVariableByName($IPS_SELF, "Batterie Kapazität", 2), strToFloat($data[10]));
}
// Offset berechnen und Timer stellen
//IPS_SetScriptTimer($IPS_SELF, ($ts + $LogInterval * 60 + 10) - time());
}
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;
}
?>
Einen Fehler kann ich leider nicht finden.
Andreas