Страница 35 из 41

Re: Подключение контроллера MegaD-328

Добавлено: Чт мар 12, 2015 9:53 pm
Bagir
Класс должен называться именно MegaD. В файле megad.php есть такая строка
$objects = getObjectsByClass('MegaD');
Таким образом мы получаем коллекцию объектов класса, чтобы потом их все перебрать в поисках нужного.
Дальше, когда объект найдет, у него вызывается метод incomingMessage с передачей ему параметров. Весь код обработки должен быть в нем. У каждого объекта Меги свой метод incomingMessage. Код в нем одинаковый только по структуре. Он разбит на группы по номерам портов Меги. В примере есть объект Megad99. В нем, в разных группах, я собрал все имеющиеся примеры.

Re: Подключение контроллера MegaD-328

Добавлено: Вс мар 15, 2015 12:30 am
zelevova
Bagir, подскажи при обработке сообщения от меги ей возвращается пустой ответ?
У меня иногда срабатывают сценарии по умолчанию прописаные в меге. Пока не пробовал отлавливать. Мне кажется что мега долго не видит ответа от сервера и начинает выполнять сченарий по умолчанию.

Re: Подключение контроллера MegaD-328

Добавлено: Вс мар 15, 2015 10:21 am
Bagir
В ответе действительно можно было бы что то сказать Меге, используя echo например. Но я эту возможность вообще не использовал. Ответы всегда пустые. Так что Мега не должна запускать сценарий по умолчанию.

Re: Подключение контроллера MegaD-328

Добавлено: Вс мар 15, 2015 12:32 pm
zelevova
Пустой ответ уходит сразу как отработал megad.php или когда орработает вся логика мжд?

Re: Подключение контроллера MegaD-328

Добавлено: Вс мар 15, 2015 1:21 pm
Bagir
Мега обращается к файлу megad.php То есть, делает к нему get запрос если так можно сказать. В самом конце файла идет вызов метода incomingMessage. Сначала выполняется код его родительской части, а потом личная часть объекта, в которой Вы и пишите свой код. Ответ Меге будет дан по завершению всей этой цепочки. Если в коде будет ошибка при каких либо обстоятельствах, то возможно Мега не получит свой ответ, и выполнит сценарий по умолчанию.

Сегодня пробовал заменить megad.php на сценарий. С графиками получилось, с Мегой нет. в ее настройках поле Script: не берет objects/?script=megad Не нравятся /? и не помещается по длине. Жаль, но ничего не поделаешь.

Re: Подключение контроллера MegaD-328

Добавлено: Вс мар 15, 2015 2:57 pm
Jager
Bagir писал(а):Сегодня пробовал заменить megad.php на сценарий. С графиками получилось, с Мегой нет. в ее настройках поле Script: не берет objects/?script=megad Не нравятся /? и не помещается по длине. Жаль, но ничего не поделаешь.
"•13.03.2015 ver 3.30 beta5
- В поле, в котором указывается вызываемый на сервере скрипт, теперь возможно использовать слэш."

Re: Подключение контроллера MegaD-328

Добавлено: Вс мар 15, 2015 3:21 pm
Bagir
Надо будет полюбопытствовать. Если длинна увеличена и пройдет ? то можно будет уйти на сценарий.

Re: Подключение контроллера MegaD-328

Добавлено: Вс мар 15, 2015 10:16 pm
avtomat78
Bagir писал(а):Класс должен называться именно MegaD. В файле megad.php есть такая строка
$objects = getObjectsByClass('MegaD');
Таким образом мы получаем коллекцию объектов класса, чтобы потом их все перебрать в поисках нужного.
Дальше, когда объект найдет, у него вызывается метод incomingMessage с передачей ему параметров. Весь код обработки должен быть в нем. У каждого объекта Меги свой метод incomingMessage. Код в нем одинаковый только по структуре. Он разбит на группы по номерам портов Меги. В примере есть объект Megad99. В нем, в разных группах, я собрал все имеющиеся примеры.
Так, с железной кнопкой разобрался. Теперь возник вопрос, как сделать чтобы при нажатии железной кнопки происходило изменение состояния выключателя в МД, точнее если свет горит выключатель перешел в ВКЛ, если свет погас хоть от кнопки, хоть по таймеру выключатель перешел в ВЫКЛ?

Re: Подключение контроллера MegaD-328

Добавлено: Вс мар 15, 2015 10:22 pm
Bagir
Все просто. Создайте в классе Relay объект реле1.
Настройте его методы на управление нужным портом Меги.
Добавьте в меню элемент выключатель с периодом обновления, к примеру, 2-5 секунд.
Слинкуйте его со свойством status объекта реле. Теперь выключатель в меню будет клацать релюшкой.
В методе incomingMessage порта на котором кнопка вызывайте нужные методы объекта реле1

Re: Подключение контроллера MegaD-328

Добавлено: Пн мар 16, 2015 1:27 am
skysilver
Bagir писал(а):Добавьте в меню элемент выключатель с периодом обновления, к примеру, 2-5 секунд.
А у Вас вот этот период обновления выключателя корректно работает? У меня вот ни в какую сам не обновляется, какое время бы не ставил. Только при ручном обновлении странички меню в браузере статус выключателя меняется на нужный.