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

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

sergejey
Благодарил (а): 0
Поблагодарили: 0

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

Сообщение sergejey » Вт авг 21, 2012 10:17 am

zverev.sv
Сообщения: 46
Зарегистрирован: Вт окт 23, 2012 3:43 am
Откуда: Южно-Сахалинск
Благодарил (а): 9 раз
Поблагодарили: 0

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

Сообщение zverev.sv » Чт окт 25, 2012 6:33 am

Здравствуйте, подскажите пожалуйста, по какой причине не выводится время изменения температуры, хотя сама температура выводится нормально?
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

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

Сообщение sergejey » Чт окт 25, 2012 11:23 am

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

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
zverev.sv
Сообщения: 46
Зарегистрирован: Вт окт 23, 2012 3:43 am
Откуда: Южно-Сахалинск
Благодарил (а): 9 раз
Поблагодарили: 0

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

Сообщение zverev.sv » Пт окт 26, 2012 3:23 am

Делаю все по Вашему описанию :http://smartliving.ru/Main.ScMonitorHeating , температура выводится, а время в скобках нет?
zverev.sv
Сообщения: 46
Зарегистрирован: Вт окт 23, 2012 3:43 am
Откуда: Южно-Сахалинск
Благодарил (а): 9 раз
Поблагодарили: 0

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

Сообщение zverev.sv » Пт окт 26, 2012 3:31 am

вот код метода 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%)
Vit
Сообщения: 867
Зарегистрирован: Вт янв 17, 2012 12:31 pm
Благодарил (а): 121 раз
Поблагодарили: 78 раз

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

Сообщение Vit » Пт окт 26, 2012 4:37 pm

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%)
покажите еще скрины класса и объектов с их свойствами
zverev.sv
Сообщения: 46
Зарегистрирован: Вт окт 23, 2012 3:43 am
Откуда: Южно-Сахалинск
Благодарил (а): 9 раз
Поблагодарили: 0

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

Сообщение zverev.sv » Пн окт 29, 2012 3:15 am

Вот скрины
Вложения
Снимок экрана 3.jpg
3
Снимок экрана 3.jpg (140.71 КБ) 15631 просмотр
Снимок экрана 2.jpg
2
Снимок экрана 2.jpg (202.76 КБ) 15631 просмотр
Снимок экрана 1.jpg
1
Снимок экрана 1.jpg (140.71 КБ) 15631 просмотр
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

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

Сообщение sergejey » Пн окт 29, 2012 12:50 pm

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

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

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

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

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Anton_kulibin
Сообщения: 354
Зарегистрирован: Вт окт 09, 2012 8:05 am
Откуда: Луза Кировская обл. Россия
Благодарил (а): 20 раз
Поблагодарили: 35 раз

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

Сообщение Anton_kulibin » Пн окт 29, 2012 1:12 pm

У меня тоже не работало добавил сценарий и все Ок стало. Сергей спасибо.
Linux версия. Ubuntu Server 16.04+2xArduinoMega+Eth_GW_Mysensors_10node+WeatherStation+Xiaomi
CONNECT
Vit
Сообщения: 867
Зарегистрирован: Вт янв 17, 2012 12:31 pm
Благодарил (а): 121 раз
Поблагодарили: 78 раз

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

Сообщение Vit » Пн окт 29, 2012 2:42 pm

Можно еще такой вариант...

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

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

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

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

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