Страница 1 из 2
MajorDoMo и MegaD
Добавлено: Пт июл 24, 2015 8:08 pm
Денис

- 001.png (45.98 КБ) 9724 просмотра

- 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 (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 (76.83 КБ) 9471 просмотр

- 002.png (14.02 КБ) 9471 просмотр

- 003.png (25.56 КБ) 9471 просмотр
Методы класса Relays я не менял, они по умолчанию. Может в них нужно вставить return ?