Подключение контроллера MegaD-328
Модератор: immortal
- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Подключение контроллера MegaD-328
Сервер на WinXP. Определение ip всегда проходит нормально. С W7 сам лично пока не тестировал. А вот megad-cfg.php работает исключительно на W7. На XP я его так и не завел. Поэтому прошиваю Меги с ноутбука.
Сейчас попробовал включить на Меге at при превышении порога температуры. Действительно Мега шлет пакет без mdid
10.10.3.58 - - [05/Feb/2015:11:18:35 +0300] "GET /megad.php?at=16 HTTP/1.1" 200 -
И это явный косяк. Я просто ранее не использовал эту возможность Мег, т.к. сам опрашиваю их температуру. На сообщение без mdid у меня вот такая реакция
11:18:35 ERROR [page.megad]: MegaDevice has not transmitted mdid. Try to search on IP (at D:\Server\www\majordomo\megad.php:46)
При этом по ip находится объект Меги и дальше все работает штатно. Так что исключать код поиска Меги по ip из файла megad.php не стоит. Если все же на W7 есть проблема, то можно попробовать найти решение, которое будет работать одинаково хорошо на W7 и на XP.
По поводу запуска отдельно метода класса. Это невозможно. Можно вызвать только конкретный Объект.метод При этом вначале будет выполнен код его родительской части, а потом уже его собственный код.
Сейчас попробовал включить на Меге at при превышении порога температуры. Действительно Мега шлет пакет без mdid
10.10.3.58 - - [05/Feb/2015:11:18:35 +0300] "GET /megad.php?at=16 HTTP/1.1" 200 -
И это явный косяк. Я просто ранее не использовал эту возможность Мег, т.к. сам опрашиваю их температуру. На сообщение без mdid у меня вот такая реакция
11:18:35 ERROR [page.megad]: MegaDevice has not transmitted mdid. Try to search on IP (at D:\Server\www\majordomo\megad.php:46)
При этом по ip находится объект Меги и дальше все работает штатно. Так что исключать код поиска Меги по ip из файла megad.php не стоит. Если все же на W7 есть проблема, то можно попробовать найти решение, которое будет работать одинаково хорошо на W7 и на XP.
По поводу запуска отдельно метода класса. Это невозможно. Можно вызвать только конкретный Объект.метод При этом вначале будет выполнен код его родительской части, а потом уже его собственный код.
-
- Сообщения: 265
- Зарегистрирован: Пт дек 26, 2014 1:58 pm
- Благодарил (а): 33 раза
- Поблагодарили: 24 раза
Re: Подключение контроллера MegaD-328
Как уже писал, Андрей поправил уже этот косяк.
Bagir, попробуйте в Меге явно задать свой шлюз по умолчанию и посмотрите реакцию на сообщение at без mdid.
Bagir, попробуйте в Меге явно задать свой шлюз по умолчанию и посмотрите реакцию на сообщение at без mdid.
- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Подключение контроллера MegaD-328
Попробую вечерком, как приеду домой. Надо еще найти и почитать для чего вообще была сделана настройка шлюза в Мегах. Вроде бы раньше ее и не было.
-
- Сообщения: 291
- Зарегистрирован: Вт ноя 18, 2014 11:43 pm
- Откуда: Краснодарский край
- Благодарил (а): 32 раза
- Поблагодарили: 68 раз
Re: Подключение контроллера MegaD-328
Загрузчик 13-й вроде решил проблему с megad-cfg.php и XP. Нужно один раз програматором перешить загрузчик.Bagir писал(а):megad-cfg.php работает исключительно на W7. На XP я его так и не завел
Настройка шлюза используется для обращения к меге напрямую из-за ната. на шлюзе прокидываем порт на мегу и она доступна снаружи. Без указанного шлюза эта связка не работает. На работу в локальной сети это ни как не влияет, если шлюз не пытается сильно рулить внутри сети.
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
CONNECT: http://connect.smartliving.ru/profile/311
-
- Сообщения: 265
- Зарегистрирован: Пт дек 26, 2014 1:58 pm
- Благодарил (а): 33 раза
- Поблагодарили: 24 раза
Re: Подключение контроллера MegaD-328
Только пару дней как получил и поставил в качестве шлюза такую штуку: http://www.hite-pro.ru/lte-%D0%B0%D0%BD ... %8B/hybridzelevova писал(а):На работу в локальной сети это ни как не влияет, если шлюз не пытается сильно рулить внутри сети.
Там внутри закрыт ZyXEL Keenetic 4G II и модем HUAWEI Mobile.
Вроде все настроил, работает, но до конца еще с ним не разобрался...

- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Подключение контроллера MegaD-328
Спасибо за инфу. Я так и предполагал. При работе без сервера кому то такая настройка будет очень полезна.zelevova писал(а):Настройка шлюза используется для обращения к меге напрямую из-за ната. на шлюзе прокидываем порт на мегу и она доступна снаружи. Без указанного шлюза эта связка не работает. На работу в локальной сети это ни как не влияет, если шлюз не пытается сильно рулить внутри сети.
-
- Сообщения: 708
- Зарегистрирован: Сб авг 18, 2012 10:21 am
- Благодарил (а): 26 раз
- Поблагодарили: 183 раза
Re: Подключение контроллера MegaD-328
Вопрос, как подправить incomingMessage что бы при срабатывании входа получать не состояние порта а данные счетчика?Bagir писал(а):.
Подключил геркон ко входу, и хочу писать в базу количество срабатываний.
- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Подключение контроллера MegaD-328
Вот этот абзацJager писал(а):Вопрос, как подправить incomingMessage что бы при срабатывании входа получать не состояние порта а данные счетчика?
Код: Выделить всё
/* Если мы сами спросили Мегу о чем то, запустив метод getData
и указав номер интересующего нас порта.
ВНИМАНИЕ! в группах case нужно изменить код на свой!
*/
if (isset($params['iasked'])) {
// Разделить статус и счетчик
$dt = explode("/", $params['iasked']);
// Заменить слова на цифры
if ($dt[0] == 'ON') { $dt[0] = 1; }
if ($dt[0] == 'OFF') { $dt[0] = 0; }
// Обрабатываем значения портов, которые мы могли бы сами спросить
switch ($pt) {
case 14:
// Сказать счетчик входа 1 и его статус
// Не спрашивайте счетчики у выходов. Они есть только у входов 1-7.
say('Я спросил значение входа 1 равно '.$dt[0].', счётчик '.$dt[1]);
break;
default:
// Если порта нет в группах case, но мы все же спрашиваем его
say('Я спросил статус порта '.$pt.', а что с ним делать пока не придумал.');
}
return;
}
-
- Сообщения: 708
- Зарегистрирован: Сб авг 18, 2012 10:21 am
- Благодарил (а): 26 раз
- Поблагодарили: 183 раза
Re: Подключение контроллера MegaD-328
Это если мы сами спросили, а хочется что бы мега сама слала состояние счетчика при каждом изменении входа.Bagir писал(а):Если мы сами спросили Мегу о чем то, запустив метод getData
- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Подключение контроллера MegaD-328
А присылает ли Мега счетчик при коммутации порта? По моему там только mdid port и m. Пришлите ответ Меги, я посмотрю. Сейчас под рукой просто нет.