Mittelwertberechnung

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);
}

Hallo,

ich habe das Thema über die Suche gefunden, komme jedoch leider nicht ganz zurecht damit, das Script / die Funktion einzubinden.

Ich möchte Schwankungen der Helligkeit (ID 11111) mittels Berechnung des Mittelwerts glätten und den Mittelwert in eine Variable (ID 22222) schreiben. Wie muß ich die beiden Variablen in ein Script verheiratet mit o.g. Script / Funktion ???

Gruß Proxima

http://www.ip-symcon.de/service/dokumentation/modulreferenz/archive-control/ac-getaggregatedvalues/

Hallo Proxima,

der richtige Weg ist es eigentlich den hochfrequenten Anteil aus dem Signal
zu filtern.

Gugst Du hier.

Hallo,

beachte die neue Schreibweise : $_IPS[‚VALUE‘]
einfach so:

ATN_SetValueDurchschnitt(22222,$_IPS['VALUE'],10);

11111 ist die Variable die das Script triggert. Der Wert steht dann in $_IPS[‚VALUE‘]