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

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

Модератор: immortal

Anton_kulibin
Сообщения: 354
Зарегистрирован: Вт окт 09, 2012 8:05 am
Откуда: Луза Кировская обл. Россия
Благодарил (а): 20 раз
Поблагодарили: 35 раз

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

Сообщение Anton_kulibin » Вс дек 23, 2012 12:21 pm

Sorry за качество скрина, некогда было искать файлообменник.
Спасибо за строку в скетче, думал уже про это но еще не добрался до него.
Linux версия. Ubuntu Server 16.04+2xArduinoMega+Eth_GW_Mysensors_10node+WeatherStation+Xiaomi
CONNECT
Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

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

Сообщение Jager » Вт дек 25, 2012 6:20 pm

sergejey писал(а):На сколько я понимаю, нужно опрашивать устройство через веб-переменные.
Брать температуру через web переменные получилось, осталось решить проблему с записью времени в "tempSensors. updatedTime" там пусто.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

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

Сообщение sergejey » Ср дек 26, 2012 11:58 am

Jager писал(а):
sergejey писал(а):На сколько я понимаю, нужно опрашивать устройство через веб-переменные.
Брать температуру через web переменные получилось, осталось решить проблему с записью времени в "tempSensors. updatedTime" там пусто.
Можно попробовать прописать такие строчки в код, запускаемый при обновлении веб-переменной:

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

$params=array('t'=>$new_status);
callMethod('mySensor.tempChanged',$params);
вместо mySensor -- нужное имя объекта

Изображение
За это сообщение автора sergejey поблагодарил:
Andrey64 (Пт ноя 02, 2018 11:53 pm)
Рейтинг: 1.16%

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
immortal
Сообщения: 1138
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а): 16 раз
Поблагодарили: 402 раза
Контактная информация:

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

Сообщение immortal » Вт янв 29, 2013 10:27 am

Напишите пожалуйста пошагово как подключить 1-wire датчик температуры и вывести результат в меню и в график, в устройствах датчики видны.
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
Outrider
Сообщения: 1
Зарегистрирован: Пт апр 26, 2013 9:54 am
Благодарил (а): 0
Поблагодарили: 0

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

Сообщение Outrider » Пт апр 26, 2013 10:26 am

Anton_kulibin писал(а):Sorry за качество скрина, некогда было искать файлообменник.
Спасибо за строку в скетче, думал уже про это но еще не добрался до него.
Приведите, пжлста, в текстовом виде шаблон поиска?
Где-то так T0:283AC2E603000039(*?); ?
Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

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

Сообщение Jager » Пт апр 26, 2013 8:34 pm

Outrider писал(а): Приведите, пжлста, в текстовом виде шаблон поиска?
Где-то так T0:283AC2E603000039(*?); ?
283AC2E603000039:(.+?);
elik745i
Сообщения: 17
Зарегистрирован: Сб окт 26, 2013 8:39 pm
Благодарил (а): 0
Поблагодарили: 0

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

Сообщение elik745i » Вт окт 29, 2013 12:11 pm

Vit писал(а):Можно еще такой вариант...

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

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

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

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

в любом случае за обои варианты огромное спасибо Сергею))
моем случае: передача данных от датчика посредством радиопередатчика на 433мгц, прием на ардуино и передача в мдомо через arduinoGW я сделал так:


1) Create Scenario called easyRF:

$device_id=$params['did'];
$destination_id=$params['dest'];
$packet_id=$params['pid'];
$command_id=$params['c'];
$data=$params['d'];
setGlobal('GarageTS.temp',$data);

2) Create/Add Proprties to object: TempSensors
3) Add/modify TempSensors properties to:

direction (keep history let's say 7 days)
temp (Start method on change: tempUpdated, keep history let's say 7 days)
updated (keep history let's say 7 days)
updatedTime (keep history let's say 7 days)

4) Create Object under TempSensors:
GarageTS

Set Method of GarageTS Object to:

setGlobal('GarageTS.updatedTime',date("H:i",time()));

но как же быть с изменением направления, я в тупике подскажите код плиз!
immortal
Сообщения: 1138
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а): 16 раз
Поблагодарили: 402 раза
Контактная информация:

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

Сообщение immortal » Пн дек 09, 2013 10:05 pm

может кому нибудь будет полезен код обработки с датчика температуры 1-ware

температуру берет со свойства temperature12
имя объекта tempD5 свойство temp, свойства не связываем, просто устанавливаем интервал обновления и пишем следующий код:

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

$temp12 = $params['temperature12']['VALUE'];
if ($temp12<>"" and $temp12<>0 and $temp12<>85 )
{
$temp12 = round($temp12,1);
sg("tempD5.temp", $temp12);
callMethod('tempD5.tempChanged',array('t'=>$temp12)); 
}
округление температуры до десятых

я не понял как он вбазу пишет, пишет ли если значение не изменилось, если в базу необходимо писать только измененные значения то код будет иметь следующий вид:

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

$temp12 = $params['temperature12']['VALUE'];
if ($temp12<>"" and $temp12<>0 and $temp12<>85 )
{
$temp12 = round($temp12,1);
$temp00=getGlobal("tempD5.temp");
if ($temp12<>$temp00){sg("tempD5.temp", $temp12);}
callMethod('tempD5.tempChanged',array('t'=>$temp12)); 
}
в данном коде если температура совпадает, то значение температуры не пишется, а время обновления данных всё равно обновляется
но как же быть с изменением направления, я в тупике подскажите код плиз!
добавить в конец:

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

$old_temp = getGlobal("GarageTS.temp");
if ($data>$old_temp) {
 $d=1;
} elseif ($data<$old_temp) {
 $d=-1;
} else {
 $d=0;
}
setGlobal('GarageTS.direction',$d);
вроде так, у Вас значение температуры я так понял в переменной $data
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
West727
Сообщения: 3
Зарегистрирован: Пт сен 26, 2014 12:23 pm
Благодарил (а): 0
Поблагодарили: 0

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

Сообщение West727 » Чт окт 02, 2014 3:46 pm

Подскажите кто может
не устанавливает updatedTime и все тут

0.70b
ubuntu 14

$this->setProperty("updated",time());
$this->setProperty('updatedTime',date("H:i",time()));
$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=1;
} elseif ($t<$old_temp) {
$d=-1;
} else {
$d=0;
}
$this->setProperty('direction',$d);

$linked_room=$this->getProperty("LinkedRoom");
if ($linked_room) {
setGlobal($linked_room.'.Temperature',$t);
}


причем не устанавливает даже direction
gromozeka
Сообщения: 2
Зарегистрирован: Сб май 23, 2015 1:56 pm
Благодарил (а): 1 раз
Поблагодарили: 0

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

Сообщение gromozeka » Сб май 23, 2015 2:08 pm

Добрый день!
Взяли всё необходимое оборудование и пытались реализовать по инструкции. Затык на загрузке прошивки в Ардуино:
http://smartliving.ru/Main/ArduinoCode
Библиотеки подгрузил...их видно. Но зависает компиляция и всё.
Что можно ещё сделать? Или мне нужно обращаться к техподдержке Ардуино?
Ответить