Hallo an alle,
ich habe einen 1-Wire Temperatursensor in den Kühler meines Servers geklemmt. Da die gemessenen Werte „etwas“ Schwanken, habe ich mir einen function/Script geschrieben die mir den Mittelwert der zuletzt gemessenen Temperaturen ermittelt und somit die Temperaturkurve, die ich mit dem DugTool erstelle, glättet. Getriggert wird das Script „OnUpdate“ der 1-Wire Temperatur. Vieleicht kann es noch jemand gebrauchen.
ATN_SetValueDurchschnitt(53634 /*[ServerTemperaturDurchschnitt]*/,$IPS_VALUE,10);
function ATN_SetValueDurchschnitt($ID,$wert,$menge){
//Funktion zur Durchschnittsberrechnung (ID , aktuellerWert , Menge der zu berücksichtige Werte)
$object = IPS_GetObject($ID);
$buffer = explode("|",$object['ObjectInfo'],$menge+1);
$index = $buffer[0]+1; // Index einlesen und um 1 erhöhen
if ($index > $menge) $index = 1; // Überlauf
$buffer[0] = 0;
$buffer[$index] = $wert; // neuen Messwert ins Array eintragen
$average = array_sum($buffer) /$menge; // Mittelwert berechnen
$buffer[0] = $index; // neuen Index ins Array eintragen
IPS_SetInfo($ID,implode("|",$buffer)); // im Infobereich der Variablen, das Array ablegen
SetValue($ID,$average); // Durchschnitt abspeichern
return ($average);
}