Подключение контроллера MegaD-328
Модератор: immortal
- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Подключение контроллера MegaD-328
Класс должен называться именно MegaD. В файле megad.php есть такая строка
$objects = getObjectsByClass('MegaD');
Таким образом мы получаем коллекцию объектов класса, чтобы потом их все перебрать в поисках нужного.
Дальше, когда объект найдет, у него вызывается метод incomingMessage с передачей ему параметров. Весь код обработки должен быть в нем. У каждого объекта Меги свой метод incomingMessage. Код в нем одинаковый только по структуре. Он разбит на группы по номерам портов Меги. В примере есть объект Megad99. В нем, в разных группах, я собрал все имеющиеся примеры.
$objects = getObjectsByClass('MegaD');
Таким образом мы получаем коллекцию объектов класса, чтобы потом их все перебрать в поисках нужного.
Дальше, когда объект найдет, у него вызывается метод incomingMessage с передачей ему параметров. Весь код обработки должен быть в нем. У каждого объекта Меги свой метод incomingMessage. Код в нем одинаковый только по структуре. Он разбит на группы по номерам портов Меги. В примере есть объект Megad99. В нем, в разных группах, я собрал все имеющиеся примеры.
- Рейтинг: 1.16%
-
- Сообщения: 291
- Зарегистрирован: Вт ноя 18, 2014 11:43 pm
- Откуда: Краснодарский край
- Благодарил (а): 32 раза
- Поблагодарили: 68 раз
Re: Подключение контроллера MegaD-328
Bagir, подскажи при обработке сообщения от меги ей возвращается пустой ответ?
У меня иногда срабатывают сценарии по умолчанию прописаные в меге. Пока не пробовал отлавливать. Мне кажется что мега долго не видит ответа от сервера и начинает выполнять сченарий по умолчанию.
У меня иногда срабатывают сценарии по умолчанию прописаные в меге. Пока не пробовал отлавливать. Мне кажется что мега долго не видит ответа от сервера и начинает выполнять сченарий по умолчанию.
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
CONNECT: http://connect.smartliving.ru/profile/311
- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Подключение контроллера MegaD-328
В ответе действительно можно было бы что то сказать Меге, используя echo например. Но я эту возможность вообще не использовал. Ответы всегда пустые. Так что Мега не должна запускать сценарий по умолчанию.
-
- Сообщения: 291
- Зарегистрирован: Вт ноя 18, 2014 11:43 pm
- Откуда: Краснодарский край
- Благодарил (а): 32 раза
- Поблагодарили: 68 раз
Re: Подключение контроллера MegaD-328
Пустой ответ уходит сразу как отработал megad.php или когда орработает вся логика мжд?
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
CONNECT: http://connect.smartliving.ru/profile/311
- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Подключение контроллера MegaD-328
Мега обращается к файлу megad.php То есть, делает к нему get запрос если так можно сказать. В самом конце файла идет вызов метода incomingMessage. Сначала выполняется код его родительской части, а потом личная часть объекта, в которой Вы и пишите свой код. Ответ Меге будет дан по завершению всей этой цепочки. Если в коде будет ошибка при каких либо обстоятельствах, то возможно Мега не получит свой ответ, и выполнит сценарий по умолчанию.
Сегодня пробовал заменить megad.php на сценарий. С графиками получилось, с Мегой нет. в ее настройках поле Script: не берет objects/?script=megad Не нравятся /? и не помещается по длине. Жаль, но ничего не поделаешь.
Сегодня пробовал заменить megad.php на сценарий. С графиками получилось, с Мегой нет. в ее настройках поле Script: не берет objects/?script=megad Не нравятся /? и не помещается по длине. Жаль, но ничего не поделаешь.
-
- Сообщения: 708
- Зарегистрирован: Сб авг 18, 2012 10:21 am
- Благодарил (а): 26 раз
- Поблагодарили: 183 раза
Re: Подключение контроллера MegaD-328
"•13.03.2015 ver 3.30 beta5Bagir писал(а):Сегодня пробовал заменить megad.php на сценарий. С графиками получилось, с Мегой нет. в ее настройках поле Script: не берет objects/?script=megad Не нравятся /? и не помещается по длине. Жаль, но ничего не поделаешь.
- В поле, в котором указывается вызываемый на сервере скрипт, теперь возможно использовать слэш."
- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Подключение контроллера MegaD-328
Надо будет полюбопытствовать. Если длинна увеличена и пройдет ? то можно будет уйти на сценарий.
-
- Сообщения: 4
- Зарегистрирован: Вт мар 10, 2015 12:46 pm
- Благодарил (а): 2 раза
- Поблагодарили: 0
Re: Подключение контроллера MegaD-328
Так, с железной кнопкой разобрался. Теперь возник вопрос, как сделать чтобы при нажатии железной кнопки происходило изменение состояния выключателя в МД, точнее если свет горит выключатель перешел в ВКЛ, если свет погас хоть от кнопки, хоть по таймеру выключатель перешел в ВЫКЛ?Bagir писал(а):Класс должен называться именно MegaD. В файле megad.php есть такая строка
$objects = getObjectsByClass('MegaD');
Таким образом мы получаем коллекцию объектов класса, чтобы потом их все перебрать в поисках нужного.
Дальше, когда объект найдет, у него вызывается метод incomingMessage с передачей ему параметров. Весь код обработки должен быть в нем. У каждого объекта Меги свой метод incomingMessage. Код в нем одинаковый только по структуре. Он разбит на группы по номерам портов Меги. В примере есть объект Megad99. В нем, в разных группах, я собрал все имеющиеся примеры.
- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Подключение контроллера MegaD-328
Все просто. Создайте в классе Relay объект реле1.
Настройте его методы на управление нужным портом Меги.
Добавьте в меню элемент выключатель с периодом обновления, к примеру, 2-5 секунд.
Слинкуйте его со свойством status объекта реле. Теперь выключатель в меню будет клацать релюшкой.
В методе incomingMessage порта на котором кнопка вызывайте нужные методы объекта реле1
Настройте его методы на управление нужным портом Меги.
Добавьте в меню элемент выключатель с периодом обновления, к примеру, 2-5 секунд.
Слинкуйте его со свойством status объекта реле. Теперь выключатель в меню будет клацать релюшкой.
В методе incomingMessage порта на котором кнопка вызывайте нужные методы объекта реле1
-
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Благодарил (а): 400 раз
- Поблагодарили: 1754 раза
- Контактная информация:
Re: Подключение контроллера MegaD-328
А у Вас вот этот период обновления выключателя корректно работает? У меня вот ни в какую сам не обновляется, какое время бы не ставил. Только при ручном обновлении странички меню в браузере статус выключателя меняется на нужный.Bagir писал(а):Добавьте в меню элемент выключатель с периодом обновления, к примеру, 2-5 секунд.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram