[Сценарий] sensorTemp.statusChanged
Добавлено: Чт июл 03, 2014 10:53 am
Это метод класса sensorTemp общий для всех сенсоров.
Вызывается как правило http запросом вида GET /objects/?object=sensorTemp11&op=m&m=statusChanged&t=25.3
Вызывается как правило http запросом вида GET /objects/?object=sensorTemp11&op=m&m=statusChanged&t=25.3
Код: Выделить всё
//$params['t']
$this->setProperty("updated",time());
$this->setProperty("updatedTime",date("d/m/y H:i"));
$this->setProperty("alive",1);
$ot=$this->object_title;
$alive_timeout=(int)$this->getProperty("aliveTimeOut");
if (!$alive_timeout) {
$alive_timeout=30*60;
}
clearTimeOut($ot."_alive");
setTimeOut($ot."_alive","sg('".$ot.".alive',0);",$alive_timeout);
if (!isset($params['t'])) {
return;
}
$old_temp=$this->getProperty('temp');
$t=round($params['t'],1);
if ($t>110) return;
$this->setProperty('temp',$t);
if ($params['uptime']) {
$this->setProperty('uptime',$params['uptime']);
}
if ($t>$old_temp) {
$d=2;
} elseif ($t<$old_temp) {
$d=1;
} else {
$d=0;
}
$this->setProperty('direction',$d);
$tmax=(int)$this->getProperty("tempMax");
$tmin=(int)$this->getProperty("tempMin");
if ($t > $tmax || $t < $tmin) {
$this->setProperty('alarm',1);
say("Внимание. Критическая температура датчика". $ot, 2);
}else{
$this->setProperty('alarm',0);
}
$linked_room=$this->getProperty("LinkedRoom");
if ($linked_room) {
setGlobal($linked_room.'.Temperature',$t);
}