LogVar aus IPS V1 schreibt/loggt Variablenwerte bei Änderungen in externe Textdateien.
Ich habe aus dem alten LogVar für IPS V1 mein neues LogVar für IPS V2 gebaut.
Hänge beides mal hier rein…
Das alte LogVar aus IPS V1
<?
/*
*******************************
IP-SYMCON Event Scripting für IPS V1
*******************************
*/
//File: LogVar.ips.php
$separator = ";"; // separate fiels by ; - good for Excel ;-)
if ($IPS_SENDER== "Variable")
{
switch( IPS_GetVariableType($IPS_VARIABLE) )
{
case 'Float' : $value = round(GetValueFloat($IPS_VARIABLE),2);
// change '.' to ',' - good for german Excel ;-)
$value = str_replace( ".", ",", $value );
break;
case 'Boolean': $value = GetValueBoolean($IPS_VARIABLE) ? "1" : "0" ;
break;
case 'Integer': $value = GetValueInteger($IPS_VARIABLE);
break;
case 'String' : $value = GetValueString($IPS_VARIABLE);
break;
default : $value = 'unknown';
break;
}
$handle = fopen("F:/FHZ/logs_var/" .$IPS_VARIABLE. ".txt", "a");
fwrite( $handle, date("d.m.y").
$separator.
date("H:i:s").
// $separator.
//$IPS_VARIABLE.
$separator.
$value.
//$separator.
//IPS_GetVariableType($IPS_VARIABLE).
"
");
fclose($handle);
}
Und mein neues für IPS V2
<?
/*
*******************************
IP-SYMCON Event Scripting für IPS V2
*******************************
2009-01-08
Loggt Variablenwerte in externe Textdateien.
Den Pfad (unten) anpassen!
Jeder Variablen die mitgeschrieben werden soll ein Event bei "Änderung" zuweisen
*/
$separator = ";"; // separate fiels by ; - good for Excel ;-)
if ($IPS_SENDER== "Variable")
{
$temp = IPS_GetVariable($IPS_VARIABLE);
switch($temp['VariableValue']['ValueType'])
{
case '0': $value = GetValue($IPS_VARIABLE) ? "1" : "0" ;
break;
case '1': $value = GetValue($IPS_VARIABLE);
break;
case '2': $value = round(GetValue($IPS_VARIABLE),2);
// change '.' to ',' - good for german Excel ;-)
$value = str_replace( ".", ",", $value );
break;
case '3': $value = GetValue($IPS_VARIABLE);
break;
default : $value = 'unknown';
break;
}
$varname = IPS_GetLocation($IPS_VARIABLE);
//um Sonderzeichen rauszufiltern die in meinen Variablen enthalten sind...
$varname = str_replace( "\\", "_", $varname );
$varname = str_replace( ".", "", $varname );
$varname = str_replace( " ", "_", $varname );
$varname = str_replace( ":", "", $varname );
//
// den Pfad anpassen!!!
//
$handle = fopen("F:/FHZ/logs_var/" . $varname . ".txt", "a");
fwrite( $handle, date("d.m.y").
$separator.
date("H:i:s").
// $separator.
//$IPS_VARIABLE.
$separator.
$value.
//$separator.
//IPS_GetVariableType($IPS_VARIABLE).
"
");
fclose($handle);
}
Viel Spaß damit.
Olaf