Ich bekomme alle meine Temperaturwerte aus der WAGO in 1/100 Grad. Ich suche nun eine Möglichkeit die ausgelesenen Werte umzurechnen in die richtigen Werte. Ich gehe davon aus das IPS V2 eine solche Funktion nicht implementiert hat. Also muss ich alle eingehenden Werte erstmal über eine Art Umrechnungsscript schicken. Ich habe aber überhaupt keinen Ansatz dafür. Hat jemand von Euch schonmal so ein Script gemacht ?
<?
if (IPS_SENDER == "Variable")
{
$Object=IPS_GetObject($IPS_VARIABLE);
$name=$Object[ObjectName];
$Wert=GetValueFloat($IPS_VARIABLE);
$Wert=$Wert/100;
// Sollte die Variable nicht existeiren, leg eine neue an.
@$dez=IPS_GetVariableID($name.'_dezimal');
if ($dez == false)
{
$dez=IPS_CreateVariable(2);
IPS_SetName($dez, $name.'_dezimal');
IPS_SetParent($dez, 23607); // Hier die ID der Kategorie in der deine Dezimalwerte eingeordnet werden sollen
}
// ind $dez muss jetzt also eine gültige VariablenID stehen. Egal was kommt.
// Also kann der neue Wert geschrieben werden.
SetValueFloat($dez, $Wert);
}
?>
Voraussetzung ist, dass deine Variablennamen eindeutig sind. Deine Temperaturen triggern alle dieses Script. Das Script legt dann, falls nötig, eine neue Variable an und dort wird dann immer die richtige Temperatur als Dezimalwert drin stehen.
Du kannst alle deine Variablen mit nur einem, diesem, Script abfrühstücken.