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

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

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

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

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

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

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

Изображение

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

Добавлено: Вт янв 29, 2013 10:27 am
immortal
Напишите пожалуйста пошагово как подключить 1-wire датчик температуры и вывести результат в меню и в график, в устройствах датчики видны.

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

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

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

Добавлено: Пт апр 26, 2013 8:34 pm
Jager
Outrider писал(а): Приведите, пжлста, в текстовом виде шаблон поиска?
Где-то так T0:283AC2E603000039(*?); ?
283AC2E603000039:(.+?);

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

Добавлено: Вт окт 29, 2013 12:11 pm
elik745i
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()));

но как же быть с изменением направления, я в тупике подскажите код плиз!

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

Добавлено: Пн дек 09, 2013 10:05 pm
immortal
может кому нибудь будет полезен код обработки с датчика температуры 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

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

Добавлено: Чт окт 02, 2014 3:46 pm
West727
Подскажите кто может
не устанавливает 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

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

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