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

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

Модератор: immortal

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

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

Сообщение zverev.sv »

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

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

Сообщение sergejey »

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

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

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

Сообщение zverev.sv »

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

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

Сообщение 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%)
Vit
Сообщения: 867
Зарегистрирован: Вт янв 17, 2012 12:31 pm

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

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

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

Сообщение zverev.sv »

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

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

Сообщение sergejey »

Кажется, я понял. Задана связь между свойством 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
Откуда: Луза Кировская обл. Россия

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

Сообщение Anton_kulibin »

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

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

Сообщение Vit »

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

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

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

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

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

в любом случае за обои варианты огромное спасибо Сергею))
zverev.sv
Сообщения: 46
Зарегистрирован: Вт окт 23, 2012 3:43 am
Откуда: Южно-Сахалинск

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

Сообщение zverev.sv »

Большое спасибо,
Ответить