Страница 1 из 3

Слежение за температурой контура отопления

Добавлено: Вт авг 21, 2012 10:17 am
sergejey

Re: Слежение за температурой контура отопления

Добавлено: Чт окт 25, 2012 6:33 am
zverev.sv
Здравствуйте, подскажите пожалуйста, по какой причине не выводится время изменения температуры, хотя сама температура выводится нормально?

Re: Слежение за температурой контура отопления

Добавлено: Чт окт 25, 2012 11:23 am
sergejey
zverev.sv писал(а):Здравствуйте, подскажите пожалуйста, по какой причине не выводится время изменения температуры, хотя сама температура выводится нормально?
Возможно, используется прямая установка значения свойства temp без использования метода tempChanged? именно в последнем есть код, который не только устанавливает значение свойства, но и устанавливает время обновления.

Re: Слежение за температурой контура отопления

Добавлено: Пт окт 26, 2012 3:23 am
zverev.sv
Делаю все по Вашему описанию :http://smartliving.ru/Main.ScMonitorHeating , температура выводится, а время в скобках нет?

Re: Слежение за температурой контура отопления

Добавлено: Пт окт 26, 2012 3:31 am
zverev.sv
вот код метода TemperatureChanged:
//$params['t']
$old_Temperature=$this->getProperty('Temperature');
$t=round($params['t']*2)/2;
$this->setProperty('Temperature',$t);
if ($t>$old_Temperature) {
$d=1;
} elseif ($t<$old_Temperature) {
$d=-1;
} else {
$d=0;
}
$this->setProperty('Direction',$d);
$this->setProperty("Updated",time());
$this->setProperty("UpdatedTime",date("H:i",time()));

вот код, по которому осуществляется вставка: <div align="center">Тестовая t: %SensorTemperatureTest.Temperature% C. (%SensorTemperatureTest.UpdatedTime%)

Re: Слежение за температурой контура отопления

Добавлено: Пт окт 26, 2012 4:37 pm
Vit
zverev.sv писал(а):вот код метода TemperatureChanged:
//$params['t']
$old_Temperature=$this->getProperty('Temperature');
$t=round($params['t']*2)/2;
$this->setProperty('Temperature',$t);
if ($t>$old_Temperature) {
$d=1;
} elseif ($t<$old_Temperature) {
$d=-1;
} else {
$d=0;
}
$this->setProperty('Direction',$d);
$this->setProperty("Updated",time());
$this->setProperty("UpdatedTime",date("H:i",time()));

вот код, по которому осуществляется вставка: <div align="center">Тестовая t: %SensorTemperatureTest.Temperature% C. (%SensorTemperatureTest.UpdatedTime%)
покажите еще скрины класса и объектов с их свойствами

Re: Слежение за температурой контура отопления

Добавлено: Пн окт 29, 2012 3:15 am
zverev.sv
Вот скрины

Re: Слежение за температурой контура отопления

Добавлено: Пн окт 29, 2012 12:50 pm
sergejey
Кажется, я понял. Задана связь между свойством 1wire и свойством объекта, поэтому данные передаются в свойство корректно, но при этом метод не вызывается. Можно сделать следующее -- там в настройках 1wire можно указать сценарий, который будет выполняться при изменении свойств и который вызовет нужные метод.

Вот такой код сценария:

Код: Выделить всё

 if ($params['temperature']) {
  callMethod('Sensor_Temperature_test.TemperatureChanged',array('t'=>$params['temperature']['VALUE']));
 }

Re: Слежение за температурой контура отопления

Добавлено: Пн окт 29, 2012 1:12 pm
Anton_kulibin
У меня тоже не работало добавил сценарий и все Ок стало. Сергей спасибо.

Re: Слежение за температурой контура отопления

Добавлено: Пн окт 29, 2012 2:42 pm
Vit
Можно еще такой вариант...

в сценарии датчика 1-wire добавить следующий код, который будет изменять свойства объекта

в выше указанном примере будет следующий код

if (isset($params['temperature'])) {
setGlobal('Sensor_Temperature_Test.Updated_Time',date('H:i'));
}

выбирайте какой больше вариант нравиться...

в любом случае за обои варианты огромное спасибо Сергею))