MajorDoMo и MegaD

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

Модератор: immortal

Денис
Сообщения: 28
Зарегистрирован: Сб июл 11, 2015 6:58 pm
Благодарил (а): 10 раз
Поблагодарили: 0

MajorDoMo и MegaD

Сообщение Денис » Пт июл 24, 2015 8:08 pm

Объекты MegaDПоказать
001.png
001.png (45.98 КБ) 9616 просмотров
Устройство MegaD со вставленными объектамиПоказать
001.png
001.png (65.67 КБ) 9616 просмотров
Сделал кнопку в вебинтерфейсе, которая вкл/выкл нагрузку, все работает, только вроде бы как
очень долго. Примерно по секунде на 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 КБ) 9616 просмотров

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

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

Помогите пожалуйста разобраться с внешним управлением, на форуме смотрел нашел много тем с данным описанием, но как понял они уже устаревшие, т.к. в то время не было специального расширения для устройства MegaD
Alexiy2
Сообщения: 104
Зарегистрирован: Вт май 12, 2015 9:59 pm
Благодарил (а): 16 раз
Поблагодарили: 13 раз

Re: MajorDoMo и MegaD

Сообщение Alexiy2 » Сб июл 25, 2015 5:26 am

Ответ на Ваш вопрос уже имеется на форуме. И его давал даже не один человек. Надо вникать в прочитанное. Вот ссылка на настройку с нуля: http://majordomo.smartliving.ru/forum/v ... &start=130 Там имеется инструкция товарища AHgpeu. Посмотри повнимательнее, все доходчиво написано. Простым русским языком. Если не получится-обращайся! Сам долго с этим мучился, пока Сергей модуль под Мегу не написал.
За это сообщение автора Alexiy2 поблагодарил:
Денис (Сб июл 25, 2015 11:33 am)
Рейтинг: 1.16%
Денис
Сообщения: 28
Зарегистрирован: Сб июл 11, 2015 6:58 pm
Благодарил (а): 10 раз
Поблагодарили: 0

Re: MajorDoMo и MegaD

Сообщение Денис » Сб июл 25, 2015 11:37 am

Да и в правду оказалось все просто. Спасибо за наводку.
точная ссылка вот: http://majordomo.smartliving.ru/forum/v ... 600#p22600
Денис
Сообщения: 28
Зарегистрирован: Сб июл 11, 2015 6:58 pm
Благодарил (а): 10 раз
Поблагодарили: 0

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 уже поменяла режим.
Аватара пользователя
AHgpeu
Сообщения: 117
Зарегистрирован: Чт мар 12, 2015 11:46 am
Благодарил (а): 26 раз
Поблагодарили: 16 раз

Re: MajorDoMo и MegaD

Сообщение AHgpeu » Пн июл 27, 2015 3:51 pm

между return и кавычками нужен пробел
а ещё после выполнения любой команды, отправляемой меге с помощью модуля, модуль запрашивает состояние меги. и, если состояние изменилось, он обрабатывает команду ещё раз.
За это сообщение автора AHgpeu поблагодарил:
Денис (Ср июл 29, 2015 10:28 am)
Рейтинг: 1.16%
Денис
Сообщения: 28
Зарегистрирован: Сб июл 11, 2015 6:58 pm
Благодарил (а): 10 раз
Поблагодарили: 0

Re: MajorDoMo и MegaD

Сообщение Денис » Вт июл 28, 2015 5:59 pm

Вообще запутался

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

В результате выполняется и действие по умолчанию и метод switch. Что еще дописать чтоб действие по умолчанию не выполнялось??
Аватара пользователя
AHgpeu
Сообщения: 117
Зарегистрирован: Чт мар 12, 2015 11:46 am
Благодарил (а): 26 раз
Поблагодарили: 16 раз

Re: MajorDoMo и MegaD

Сообщение AHgpeu » Вт июл 28, 2015 8:33 pm

попробуйте вместо if (!$params['VALUE']) return;
сделать if (!$params['VALUE']) return "";
За это сообщение автора AHgpeu поблагодарил:
Денис (Ср июл 29, 2015 10:28 am)
Рейтинг: 1.16%
Денис
Сообщения: 28
Зарегистрирован: Сб июл 11, 2015 6:58 pm
Благодарил (а): 10 раз
Поблагодарили: 0

Re: MajorDoMo и MegaD

Сообщение Денис » Ср июл 29, 2015 10:29 am

К сожалению это не помогает((
Действие выполняется, а через секунду следует действие MegaD по умолчанию
Аватара пользователя
AHgpeu
Сообщения: 117
Зарегистрирован: Чт мар 12, 2015 11:46 am
Благодарил (а): 26 раз
Поблагодарили: 16 раз

Re: MajorDoMo и MegaD

Сообщение AHgpeu » Ср июл 29, 2015 11:49 am

ну последнее, что приходит в голову...
у Вас, похоже, у метода есть родительский метод. запретите его выполнение
Вызывать родительский метод:
0 перед выполнением кода 0 после выполнения кода V никогда
За это сообщение автора AHgpeu поблагодарил:
Денис (Ср июл 29, 2015 1:21 pm)
Рейтинг: 1.16%
Денис
Сообщения: 28
Зарегистрирован: Сб июл 11, 2015 6:58 pm
Благодарил (а): 10 раз
Поблагодарили: 0

Re: MajorDoMo и MegaD

Сообщение Денис » Ср июл 29, 2015 2:14 pm

Нет галочка "никогда" стоит

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