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

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

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

Сообщение Bagir » Чт мар 12, 2015 9:53 pm

Класс должен называться именно MegaD. В файле megad.php есть такая строка
$objects = getObjectsByClass('MegaD');
Таким образом мы получаем коллекцию объектов класса, чтобы потом их все перебрать в поисках нужного.
Дальше, когда объект найдет, у него вызывается метод incomingMessage с передачей ему параметров. Весь код обработки должен быть в нем. У каждого объекта Меги свой метод incomingMessage. Код в нем одинаковый только по структуре. Он разбит на группы по номерам портов Меги. В примере есть объект Megad99. В нем, в разных группах, я собрал все имеющиеся примеры.
За это сообщение автора Bagir поблагодарил:
avtomat78 (Чт мар 12, 2015 11:31 pm)
Рейтинг: 1.16%
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

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

Сообщение zelevova » Вс мар 15, 2015 12:30 am

Bagir, подскажи при обработке сообщения от меги ей возвращается пустой ответ?
У меня иногда срабатывают сценарии по умолчанию прописаные в меге. Пока не пробовал отлавливать. Мне кажется что мега долго не видит ответа от сервера и начинает выполнять сченарий по умолчанию.
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

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

Сообщение Bagir » Вс мар 15, 2015 10:21 am

В ответе действительно можно было бы что то сказать Меге, используя echo например. Но я эту возможность вообще не использовал. Ответы всегда пустые. Так что Мега не должна запускать сценарий по умолчанию.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

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

Сообщение zelevova » Вс мар 15, 2015 12:32 pm

Пустой ответ уходит сразу как отработал megad.php или когда орработает вся логика мжд?
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

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

Сообщение Bagir » Вс мар 15, 2015 1:21 pm

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

Сегодня пробовал заменить megad.php на сценарий. С графиками получилось, с Мегой нет. в ее настройках поле Script: не берет objects/?script=megad Не нравятся /? и не помещается по длине. Жаль, но ничего не поделаешь.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

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

Сообщение Jager » Вс мар 15, 2015 2:57 pm

Bagir писал(а):Сегодня пробовал заменить megad.php на сценарий. С графиками получилось, с Мегой нет. в ее настройках поле Script: не берет objects/?script=megad Не нравятся /? и не помещается по длине. Жаль, но ничего не поделаешь.
"•13.03.2015 ver 3.30 beta5
- В поле, в котором указывается вызываемый на сервере скрипт, теперь возможно использовать слэш."
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

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

Сообщение Bagir » Вс мар 15, 2015 3:21 pm

Надо будет полюбопытствовать. Если длинна увеличена и пройдет ? то можно будет уйти на сценарий.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
avtomat78
Сообщения: 4
Зарегистрирован: Вт мар 10, 2015 12:46 pm
Благодарил (а): 2 раза
Поблагодарили: 0

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

Сообщение avtomat78 » Вс мар 15, 2015 10:16 pm

Bagir писал(а):Класс должен называться именно MegaD. В файле megad.php есть такая строка
$objects = getObjectsByClass('MegaD');
Таким образом мы получаем коллекцию объектов класса, чтобы потом их все перебрать в поисках нужного.
Дальше, когда объект найдет, у него вызывается метод incomingMessage с передачей ему параметров. Весь код обработки должен быть в нем. У каждого объекта Меги свой метод incomingMessage. Код в нем одинаковый только по структуре. Он разбит на группы по номерам портов Меги. В примере есть объект Megad99. В нем, в разных группах, я собрал все имеющиеся примеры.
Так, с железной кнопкой разобрался. Теперь возник вопрос, как сделать чтобы при нажатии железной кнопки происходило изменение состояния выключателя в МД, точнее если свет горит выключатель перешел в ВКЛ, если свет погас хоть от кнопки, хоть по таймеру выключатель перешел в ВЫКЛ?
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

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

Сообщение Bagir » Вс мар 15, 2015 10:22 pm

Все просто. Создайте в классе Relay объект реле1.
Настройте его методы на управление нужным портом Меги.
Добавьте в меню элемент выключатель с периодом обновления, к примеру, 2-5 секунд.
Слинкуйте его со свойством status объекта реле. Теперь выключатель в меню будет клацать релюшкой.
В методе incomingMessage порта на котором кнопка вызывайте нужные методы объекта реле1
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1754 раза
Контактная информация:

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

Сообщение skysilver » Пн мар 16, 2015 1:27 am

Bagir писал(а):Добавьте в меню элемент выключатель с периодом обновления, к примеру, 2-5 секунд.
А у Вас вот этот период обновления выключателя корректно работает? У меня вот ни в какую сам не обновляется, какое время бы не ставил. Только при ручном обновлении странички меню в браузере статус выключателя меняется на нужный.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Ответить