Слежение за температурой контура отопления
Модератор: immortal
Слежение за температурой контура отопления
Обсуждение страницы Слежение за температурой контура отопления
-
- Сообщения: 46
- Зарегистрирован: Вт окт 23, 2012 3:43 am
- Откуда: Южно-Сахалинск
- Благодарил (а): 9 раз
- Поблагодарили: 0
Re: Слежение за температурой контура отопления
Здравствуйте, подскажите пожалуйста, по какой причине не выводится время изменения температуры, хотя сама температура выводится нормально?
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Слежение за температурой контура отопления
Возможно, используется прямая установка значения свойства temp без использования метода tempChanged? именно в последнем есть код, который не только устанавливает значение свойства, но и устанавливает время обновления.zverev.sv писал(а):Здравствуйте, подскажите пожалуйста, по какой причине не выводится время изменения температуры, хотя сама температура выводится нормально?
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 46
- Зарегистрирован: Вт окт 23, 2012 3:43 am
- Откуда: Южно-Сахалинск
- Благодарил (а): 9 раз
- Поблагодарили: 0
Re: Слежение за температурой контура отопления
Делаю все по Вашему описанию :http://smartliving.ru/Main.ScMonitorHeating , температура выводится, а время в скобках нет?
-
- Сообщения: 46
- Зарегистрирован: Вт окт 23, 2012 3:43 am
- Откуда: Южно-Сахалинск
- Благодарил (а): 9 раз
- Поблагодарили: 0
Re: Слежение за температурой контура отопления
вот код метода 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%)
//$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%)
-
- Сообщения: 867
- Зарегистрирован: Вт янв 17, 2012 12:31 pm
- Благодарил (а): 121 раз
- Поблагодарили: 78 раз
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%)
-
- Сообщения: 46
- Зарегистрирован: Вт окт 23, 2012 3:43 am
- Откуда: Южно-Сахалинск
- Благодарил (а): 9 раз
- Поблагодарили: 0
Re: Слежение за температурой контура отопления
Вот скрины
- Вложения
-
- 3
- Снимок экрана 3.jpg (140.71 КБ) 15651 просмотр
-
- 2
- Снимок экрана 2.jpg (202.76 КБ) 15651 просмотр
-
- 1
- Снимок экрана 1.jpg (140.71 КБ) 15651 просмотр
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Слежение за температурой контура отопления
Кажется, я понял. Задана связь между свойством 1wire и свойством объекта, поэтому данные передаются в свойство корректно, но при этом метод не вызывается. Можно сделать следующее -- там в настройках 1wire можно указать сценарий, который будет выполняться при изменении свойств и который вызовет нужные метод.
Вот такой код сценария:
Вот такой код сценария:
Код: Выделить всё
if ($params['temperature']) {
callMethod('Sensor_Temperature_test.TemperatureChanged',array('t'=>$params['temperature']['VALUE']));
}
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 354
- Зарегистрирован: Вт окт 09, 2012 8:05 am
- Откуда: Луза Кировская обл. Россия
- Благодарил (а): 20 раз
- Поблагодарили: 35 раз
Re: Слежение за температурой контура отопления
У меня тоже не работало добавил сценарий и все Ок стало. Сергей спасибо.
Linux версия. Ubuntu Server 16.04+2xArduinoMega+Eth_GW_Mysensors_10node+WeatherStation+Xiaomi
CONNECT
CONNECT
-
- Сообщения: 867
- Зарегистрирован: Вт янв 17, 2012 12:31 pm
- Благодарил (а): 121 раз
- Поблагодарили: 78 раз
Re: Слежение за температурой контура отопления
Можно еще такой вариант...
в сценарии датчика 1-wire добавить следующий код, который будет изменять свойства объекта
в выше указанном примере будет следующий код
if (isset($params['temperature'])) {
setGlobal('Sensor_Temperature_Test.Updated_Time',date('H:i'));
}
выбирайте какой больше вариант нравиться...
в любом случае за обои варианты огромное спасибо Сергею))
в сценарии датчика 1-wire добавить следующий код, который будет изменять свойства объекта
в выше указанном примере будет следующий код
if (isset($params['temperature'])) {
setGlobal('Sensor_Temperature_Test.Updated_Time',date('H:i'));
}
выбирайте какой больше вариант нравиться...
в любом случае за обои варианты огромное спасибо Сергею))