// получаем все объекты класса Temperature
$objects = getObjectsByClass("Temperature");
// перебираем все полученные объекты (цикл)
foreach($objects as $object)
{
// получаем название объекта
$obj_title = $object['TITLE'];
// получаем ID объекта
$obj_id = $object['ID'];
// получаем все свойства объекта по его названию
$obj=getObject($obj_title);
// получаем ID свойства temp
$prop_id = $obj->getPropertyByName('Temperature', $obj->class_id, $obj->obj_id);
// по известным данным вытаскиваем с базы ID свойства
$pvalue = SQLSelectOne("SELECT ID FROM pvalues WHERE PROPERTY_ID='".$prop_id."' AND OBJECT_ID='".$obj->id."' LIMIT 0,1");
foreach ($pvalue as $pvalue_id)
// средствами mysql сразу получаем среднее значение температур
$query = SQLSelectOne("SELECT AVG(VALUE) as AVG_temp FROM phistory WHERE VALUE_ID = $pvalue_id");
if ($query)
{
// округляем значение до сотых
$LinkedRoom = gg($obj_title.".LinkedRoom");
$avg_t = round($query[AVG_temp], 1);
if (!$avg_t)
{
$oldTempAvg = gg($LinkedRoom.".TemperatureAvg");
sg($LinkedRoom.".TemperatureAvg",$oldTempAvg);
}
else
{
// записываем новое значение
sg($obj_title.".TemperatureAvg",$avg_t);
if (gg($obj_title.".LinkedRoom")){ sg($LinkedRoom.".TemperatureAvg",$avg_t); }
// удаляем обработанные значения (чистим историю по данному свойству
SQLExec("DELETE FROM phistory WHERE (VALUE_ID = $pvalue_id AND ID < ( SELECT MAX( ID ) -1 FROM (SELECT * FROM phistory)tmp ))");
// выводим информацию на экран (работает при прямом вызове)
echo"<br>Средняя температура датчика $obj_title за последний период составила: ".$avg_t." градусов<br>";
}
}
}