Страница 1 из 2

MajorDoMo и MegaD

Добавлено: Пт июл 24, 2015 8:08 pm
Денис
Объекты MegaDПоказать
001.png
001.png (45.98 КБ) 9724 просмотра
Устройство MegaD со вставленными объектамиПоказать
001.png
001.png (65.67 КБ) 9724 просмотра
Сделал кнопку в вебинтерфейсе, которая вкл/выкл нагрузку, все работает, только вроде бы как
очень долго. Примерно по секунде на 1 метод. Наже код кнопки. Можно ли как то увеличить скорость?

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

if ($params['VALUE']) {
callMethod('p1Mega1.turnOn');
callMethod('p2Mega1.turnOn');
callMethod('p3Mega1.turnOn');
$this->setProperty("status",1);
}
else {
callMethod('p1Mega1.turnOff');
callMethod('p2Mega1.turnOff');
callMethod('p3Mega1.turnOff');
$this->setProperty("status",0);
}
Никак не могу разобраться с "железной кнопкой" в моем примере она расположена в разделе Relays объект называется "p12Mega1" (12 пин на Megad).
Код методаПоказать
002.png
002.png (91.75 КБ) 9724 просмотра

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

if ($this->getProperty('status')) {
callMethod('p1Mega1.switch');
} 
Нагрузка включается и сразу выключается и отрабатывается код megaD при отсутствии сервера
(включается другая нагрузка)

Помогите пожалуйста разобраться с внешним управлением, на форуме смотрел нашел много тем с данным описанием, но как понял они уже устаревшие, т.к. в то время не было специального расширения для устройства MegaD

Re: MajorDoMo и MegaD

Добавлено: Сб июл 25, 2015 5:26 am
Alexiy2
Ответ на Ваш вопрос уже имеется на форуме. И его давал даже не один человек. Надо вникать в прочитанное. Вот ссылка на настройку с нуля: http://majordomo.smartliving.ru/forum/v ... &start=130 Там имеется инструкция товарища AHgpeu. Посмотри повнимательнее, все доходчиво написано. Простым русским языком. Если не получится-обращайся! Сам долго с этим мучился, пока Сергей модуль под Мегу не написал.

Re: MajorDoMo и MegaD

Добавлено: Сб июл 25, 2015 11:37 am
Денис
Да и в правду оказалось все просто. Спасибо за наводку.
точная ссылка вот: http://majordomo.smartliving.ru/forum/v ... 600#p22600

Re: MajorDoMo и MegaD

Добавлено: Пн июл 27, 2015 11:10 am
Денис
Наткнулся на несколько проблем

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

if (!$params['VALUE']) return;  
$value=getGlobal("p10Mega1.value") + 64; 
if ($value == 256) $value = 255;
if ($value > 255)  $value = 0;
setGlobal("p10Mega1.value", $value);
say ($value);
return"";

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

14:23 Алиса: 0
14:23 Алиса: 255
14:23 Алиса: 255
14:23 Алиса: 192
14:23 Алиса: 192
14:23 Алиса: 128
14:23 Алиса: 128
14:23 Алиса: 64
14:23 Алиса: 0
14:23 Алиса: 0
Подскажите пожалуйста почему выполняется код MegaD по умолчанию? return"" в конце стоит, тем не менее все равно выполняется.

И еще не всегда отрабатывается код приведенный выше, в X-Ray очень часто висит старая цифра, хотя MegaD уже поменяла режим.

Re: MajorDoMo и MegaD

Добавлено: Пн июл 27, 2015 3:51 pm
AHgpeu
между return и кавычками нужен пробел
а ещё после выполнения любой команды, отправляемой меге с помощью модуля, модуль запрашивает состояние меги. и, если состояние изменилось, он обрабатывает команду ещё раз.

Re: MajorDoMo и MegaD

Добавлено: Вт июл 28, 2015 5:59 pm
Денис
Вообще запутался

Вот код:
if (!$params['VALUE']) return;
callMethod("p1Mega1.switch"); //объект обычное реле и метод switch
return ""; //

В результате выполняется и действие по умолчанию и метод switch. Что еще дописать чтоб действие по умолчанию не выполнялось??

Re: MajorDoMo и MegaD

Добавлено: Вт июл 28, 2015 8:33 pm
AHgpeu
попробуйте вместо if (!$params['VALUE']) return;
сделать if (!$params['VALUE']) return "";

Re: MajorDoMo и MegaD

Добавлено: Ср июл 29, 2015 10:29 am
Денис
К сожалению это не помогает((
Действие выполняется, а через секунду следует действие MegaD по умолчанию

Re: MajorDoMo и MegaD

Добавлено: Ср июл 29, 2015 11:49 am
AHgpeu
ну последнее, что приходит в голову...
у Вас, похоже, у метода есть родительский метод. запретите его выполнение
Вызывать родительский метод:
0 перед выполнением кода 0 после выполнения кода V никогда

Re: MajorDoMo и MegaD

Добавлено: Ср июл 29, 2015 2:14 pm
Денис
Нет галочка "никогда" стоит

Вообще ума не приложу, вроде все просто, а не работает((
Вот конечный вариант настроек:
СпойлерПоказать
001.png
001.png (76.83 КБ) 9471 просмотр
002.png
002.png (14.02 КБ) 9471 просмотр
003.png
003.png (25.56 КБ) 9471 просмотр
Методы класса Relays я не менял, они по умолчанию. Может в них нужно вставить return ?