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

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

Добавлено: Пн дек 10, 2012 5:08 pm
Panchez
Здравствуйте Сергей!
Собрал управляющий модуль MegaD-328 с сайта ab-log.ru.
Опробовал, работает хорошо, теперь встал вопрос о его интеграции в систему.
В прошивке, можно указать исполняемый php скрипт, но проблема в том, что максимальная длина сообщения 15 символов и сделать по аналогии с Ардуино не получается, думаю в исходниках поменять можно, но неуверен как.
Можно ли добавить в систему скрипт с сайта http://ab-log.ru/smart-house/ethernet/megad-328 для интеграции этого модуля в систему, без изменения прошивки?

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

Добавлено: Пн дек 10, 2012 6:43 pm
sergejey
Да, конечно можно. Сейчас проверить не могу, но должна работать такая конструкция:
1. создаём файл /megad.php (в том же каталоге что и /config.php)
с таким контентом

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

<?
$op='m';
$object='MyObject';
$m='MyMethod';
include('./objects/index.php');
?>
2. Всё, прописываем http://адрес_сервера/megad.php в мегадевайсе :)

Теперь метод объекта MyObject.MyMethod будет вызываться когда что-то нажимается на МегаДевайсе
При этом в коде метода можно использовать $params['pt'] чтобы получить номер сработавшего входа.

Делал по аналогии с тем, что написано здесь http://ab-log.ru/smart-house/ethernet/megad-328

Должно работать, но т.к. вслепую, то на 100% не уверен.

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

Добавлено: Пн дек 10, 2012 11:39 pm
Panchez
Попробовал, не получается, может что то с созданием объектов напутал.

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

Добавлено: Вт дек 11, 2012 10:30 am
sergejey
Можно попробовтаь ещё в файле /objects/index.php раскомментировать строчку
DebMes("Request: ".$request);
(для записи запросов в лог)

И потом посмотреть в папке /debmes/ последний файл -- это лог. Что б знать наверняка, что МегаДевайс посылает события.

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

Добавлено: Вт дек 11, 2012 12:08 pm
Panchez
Посмотрел, мега посылает запрос.

Лог
11.12.2012 10:44:26
Request: &pt=0
11.12.2012 10:44:26
object [MyObject] not found
11.12.2012 10:44:27
Request: &pt=1
11.12.2012 10:44:27
object [MyObject] not found

Создал новый класс Mega, в нем новый объект MyObject, в свойствах этого объекта добавил новое свойство MyMethod.
Теперь я понимаю нужно прописать код метода в MyObject для отображения сработавшего входа?

Теперь лог выглядит так
11.12.2012 10:57:11
Request: &pt=0
11.12.2012 10:57:14
Request: &pt=1

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

Добавлено: Вт дек 11, 2012 12:13 pm
sergejey
Да, только нужно не свойство MyMethod а именно метод. А в сам код метода уже можно писать что угодн, например такой обработчик
if ($params['pt']) {
say("Что-то включилось");
} else {
say("Что-то выключилось");
}

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

Добавлено: Вт дек 11, 2012 12:35 pm
Panchez
Получилось! А вот теперь вопрос как определять какой вход сработал pt=0, pt=1 и.т.д. ля выполнения к примеру внешнего скрипта?

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

Добавлено: Вт дек 11, 2012 1:37 pm
sergejey
Вот по этому же примеру можно

if ($params['pt']==1) {
// pt=1
say("Что-то включилось 1");
} elseif ($params['pt']==2) {
// pt=2
say("Что-то включилось 1");
} else {
// pt=0
say("Что-то другое...");
}

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

Добавлено: Ср дек 12, 2012 12:24 am
Panchez
Отлично! Большое спасибо, все работает как надо.

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

Добавлено: Сб фев 23, 2013 12:06 am
jonyzs
Panchez неможеш выложить свой скрипт управления мегой чтоб я быстрей вёхал что и как?