Jeugenius, а каким образом вы опрашиваете датчик (в какой момент, каким кодом)?Jeugenius писал(а):Ребята! Может вопрос глупый, но...! Реализовал управление тёплыми полами, датчики DS18B20 подключил к MegaD-2561 P30 и P31. Так вот информация с датчиков обновляется только когда включаешь или включаешь ТП. Не в вижу актуального роста температуры. Может где галку поставить забыл? Управление через сцену MDM.
[Модуль] MegaD (megad)
Модератор: immortal
-
- Сообщения: 1465
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 262 раза
- Поблагодарили: 455 раз
Re: Модуль "MegaD"
-
- Сообщения: 18
- Зарегистрирован: Пн мар 27, 2017 6:39 pm
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
Re: Модуль "MegaD"
Создан объект в классе "sensors" подкласс "temperaturesensors" привязано устройство с меги.Chainik писал(а):Jeugenius, а каким образом вы опрашиваете датчик (в какой момент, каким кодом)?Jeugenius писал(а):Ребята! Может вопрос глупый, но...! Реализовал управление тёплыми полами, датчики DS18B20 подключил к MegaD-2561 P30 и P31. Так вот информация с датчиков обновляется только когда включаешь или включаешь ТП. Не в вижу актуального роста температуры. Может где галку поставить забыл? Управление через сцену MDM.
Отправлено с моего MI 5 через Tapatalk
-
- Сообщения: 1465
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 262 раза
- Поблагодарили: 455 раз
Re: Модуль
Странно, но у меня нет класса "sensors" и нет подкласса "temperaturesensors" (есть класс "tempSensors" и есть класс "keySensors"). Но дело даже не в том.Jeugenius писал(а):Создан объект в классе "sensors" подкласс "temperaturesensors" привязано устройство с меги.
У вас где-то должен быть вписан код опроса датчика вроде такого
Код: Выделить всё
$T=file_get_contents("http://192.168.0.14/sec/?pt=23&cmd=get");
$T = substr($T,5,5);
sg('TempSensor03.temp',$T);
-
- Сообщения: 18
- Зарегистрирован: Пн мар 27, 2017 6:39 pm
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
Re: Модуль
У объекта есть вот такой метод: sensors->onChangeChainik писал(а):Странно, но у меня нет класса "sensors" и нет подкласса "temperaturesensors" (есть класс "tempSensors" и есть класс "keySensors"). Но дело даже не в том.Jeugenius писал(а):Создан объект в классе "sensors" подкласс "temperaturesensors" привязано устройство с меги.
У вас где-то должен быть вписан код опроса датчика вроде такогоВ результате выполнения этого кода в Обект.Свойство "TempSensor03.temp" запишется температура с датчика DS18B20, подключенного к порту P23.Код: Выделить всё
$T=file_get_contents("http://192.168.0.14/sec/?pt=23&cmd=get"); $T = substr($T,5,5); sg('TempSensor03.temp',$T);
http://192.168.0.2:80/objects/?object=T ... m=onChange&
-
- Сообщения: 1465
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 262 раза
- Поблагодарили: 455 раз
Re: Модуль
А есть ли внутри этого метода код, из которого будет опрашиваться порт Меги с датчиком на понятном Меге языке?Jeugenius писал(а):У объекта есть вот такой метод: sensors->onChange
http://192.168.0.2:80/objects/?object=T ... m=onChange&
-
- Сообщения: 18
- Зарегистрирован: Пн мар 27, 2017 6:39 pm
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
Re: Модуль
Да вот метод onChangeChainik писал(а):А есть ли внутри этого метода код, из которого будет опрашиваться порт Меги с датчиком на понятном Меге языке?Jeugenius писал(а):У объекта есть вот такой метод: sensors->onChange
http://192.168.0.2:80/objects/?object=T ... m=onChange&
Код: Выделить всё
//$params['t']
$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=2*60*60;
}
clearTimeOut($ot."_alive");
setTimeOut($ot."_alive","sg('".$ot.".alive',0);",$alive_timeout);
if (!isset($params['v'])) {
return;
}
$old_v=$this->getProperty('value');
$v=round($params['v'],1);
$this->setProperty('value',$v);
if ($params['uptime']) {
$this->setProperty('uptime',$params['uptime']);
}
if ($v>$old_v) {
$d=1;
} elseif ($v<$old_v) {
$d=-1;
} else {
$d=0;
}
$this->setProperty('direction',$d);
/*
$linked_room=$this->getProperty("LinkedRoom");
if ($linked_room) {
setGlobal($linked_room.'.Temperature',$v);
}
*/
-
- Сообщения: 1465
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 262 раза
- Поблагодарили: 455 раз
Re: Модуль "MegaD"
Я тоже к программированию не имею никакого отношения. В представленном вами методе не увидел обращения к Меге по поводу опроса состояния порта. Код должен быть примерно такой, который я приводил выше.
А что касается вопроса почему сам датчик не шлет информацию при изменении, то вообще все устройства, работающие по протоколу 1-wire, не умеют по своей инициативе сообщать в сеть об этом.
Касательно вопроса о периодическом опросе порта, то можно поступить так же, как указано в конце моего длинного поста на стр.52. Там создается скрипт, который будет перезапускать сам себя через заданное время.
А что касается вопроса почему сам датчик не шлет информацию при изменении, то вообще все устройства, работающие по протоколу 1-wire, не умеют по своей инициативе сообщать в сеть об этом.
Касательно вопроса о периодическом опросе порта, то можно поступить так же, как указано в конце моего длинного поста на стр.52. Там создается скрипт, который будет перезапускать сам себя через заданное время.
-
- Сообщения: 366
- Зарегистрирован: Пт июл 26, 2013 4:11 pm
- Благодарил (а): 71 раз
- Поблагодарили: 18 раз
Re: Модуль "MegaD"
Помогите пожалуйста. метод выполняется 2 раза.
Создал метод, в нем написано

добавил метод в модуль megad, убрал действие по умолчанию из девайса и поставил галку "Skip default action"

При нажатие на физическую кнопку модуль вызывается 2 раза.

помогите найти причину.
Создал метод, в нем написано

добавил метод в модуль megad, убрал действие по умолчанию из девайса и поставил галку "Skip default action"

При нажатие на физическую кнопку модуль вызывается 2 раза.

помогите найти причину.
-
- Сообщения: 708
- Зарегистрирован: Сб авг 18, 2012 10:21 am
- Благодарил (а): 26 раз
- Поблагодарили: 183 раза
Re: Модуль "MegaD"
Я вижу два варианта:ILGAS писал(а):помогите найти причину.
1. В настройках порта MegaD выбран режим P&R, соответственно метод вызывается при замыкании и при размыкании контакта.
2. Вы прописали say и в метод класса и в метод объекта ПР1_дверь.
-
- Сообщения: 1465
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 262 раза
- Поблагодарили: 455 раз
Re: Модуль "MegaD"
...ILGAS писал(а):помогите найти причину.
При этом в настройке метода в пункте «Вызывать родительский метод» выставлено или "Перед выполнением кода" или "После выполнения кода".Jager писал(а):2. Вы прописали say и в метод класса и в метод объекта ПР1_дверь.