[Модуль] MegaD (megad)
Модератор: immortal
-
- Сообщения: 265
- Зарегистрирован: Пт дек 26, 2014 1:58 pm
- Благодарил (а): 33 раза
- Поблагодарили: 24 раза
Re: Модуль "MegaD"
avacs, в модуле, на закладке advanced, нужно один раз нажать кнопку read config. Если в окошке снизу появятся данные - идем на закладку Данные и радуемся. Если не появятся - идем на закладку свойства и проверяем ip и пароль.
Re: Модуль "MegaD"
Victor_S, все это проверил, ни чего не заполняется при нажатии кнопки read config, IP указан верно, При поиске находит мегу на 192.168.0.14, сервер находится по адресу 192.168.0.10, это же и прописано во вкладке "настройки мегад". Пароль установлен по умолчанию "sec", он же и считался при обнаружении модуля. Модуль ввода-вывода установлен 7I7O-R, Мегай ID установлен "1", в настройках установил тоже "1", но фак в другом, модуль не работает!!! В итоге - "совсем не радуемся!!!" остается или костыли делать или разбирать модуль MEGAD и разбираться что делать! Грешил, что модуль самодельный, на ардуине с подпаянным клоком от ENC. Но походу траблы в модуле, т.к. через команды предложенные "Chainik"ом (за что ему спасибо еще раз) - работает!
UPD.
Раскоментировал в файле megad.php строчку дебаг мессаджа
в итоге увидел, что мега опросилась, и периодические (раз в минуту) идут запросы "/megad.php?mdid=1&all=",
но поле "Данные" - так же остается пустым.
мой лог:
22:54:37 0.64730100 megad: /megad.php?mdid=1&all=OFF;ON/1;ON/1;ON/1;ON/1;ON/1;ON/0;ON;ON;ON;ON;OFF;OFF;OFF;604;639 (192.168.0.14)
22:53:37 0.44993100 megad: /megad.php?mdid=1&all=OFF;ON/1;ON/1;ON/1;ON/1;ON/1;ON/0;ON;ON;ON;ON;OFF;OFF;OFF;615;636 (192.168.0.14)
22:52:38 0.31872400 megad: /megad.php?pt=5&m=2&cnt=1&mdid=1 (192.168.0.14)
22:52:38 0.30583500 megad: /megad.php?pt=4&m=2&cnt=1&mdid=1 (192.168.0.14)
22:52:38 0.29210400 megad: /megad.php?pt=3&m=2&cnt=1&mdid=1 (192.168.0.14)
22:52:38 0.27827900 megad: /megad.php?pt=2&m=2&cnt=1&mdid=1 (192.168.0.14)
22:52:38 0.26400700 megad: /megad.php?pt=1&m=2&cnt=1&mdid=1 (192.168.0.14)
22:52:37 0.36141300 megad: /megad.php?pt=5&cnt=1&mdid=1 (192.168.0.14)
22:52:37 0.34245900 megad: /megad.php?pt=4&cnt=1&mdid=1 (192.168.0.14)
22:52:37 0.32734900 megad: /megad.php?pt=3&cnt=1&mdid=1 (192.168.0.14)
22:52:37 0.30738900 megad: /megad.php?pt=2&cnt=1&mdid=1 (192.168.0.14)
22:52:37 0.29207000 megad: /megad.php?pt=1&cnt=1&mdid=1 (192.168.0.14)
Внимание вопрос, куда передается эта строка "OFF;ON/1;ON/1;ON/1;ON/1;ON/1;ON/0;ON;ON;ON;ON;OFF;OFF;OFF;604;639"?
в каком файле обработчик (парсер)???
Что то мне подсказывает нужно здесь копать, как то это не правильно парсится или неправильно дается запрос для меги.
"/megad.php?pt=5&m=2&cnt=1&mdid=1"
UPD.
Раскоментировал в файле megad.php строчку дебаг мессаджа
в итоге увидел, что мега опросилась, и периодические (раз в минуту) идут запросы "/megad.php?mdid=1&all=",
но поле "Данные" - так же остается пустым.
мой лог:
22:54:37 0.64730100 megad: /megad.php?mdid=1&all=OFF;ON/1;ON/1;ON/1;ON/1;ON/1;ON/0;ON;ON;ON;ON;OFF;OFF;OFF;604;639 (192.168.0.14)
22:53:37 0.44993100 megad: /megad.php?mdid=1&all=OFF;ON/1;ON/1;ON/1;ON/1;ON/1;ON/0;ON;ON;ON;ON;OFF;OFF;OFF;615;636 (192.168.0.14)
22:52:38 0.31872400 megad: /megad.php?pt=5&m=2&cnt=1&mdid=1 (192.168.0.14)
22:52:38 0.30583500 megad: /megad.php?pt=4&m=2&cnt=1&mdid=1 (192.168.0.14)
22:52:38 0.29210400 megad: /megad.php?pt=3&m=2&cnt=1&mdid=1 (192.168.0.14)
22:52:38 0.27827900 megad: /megad.php?pt=2&m=2&cnt=1&mdid=1 (192.168.0.14)
22:52:38 0.26400700 megad: /megad.php?pt=1&m=2&cnt=1&mdid=1 (192.168.0.14)
22:52:37 0.36141300 megad: /megad.php?pt=5&cnt=1&mdid=1 (192.168.0.14)
22:52:37 0.34245900 megad: /megad.php?pt=4&cnt=1&mdid=1 (192.168.0.14)
22:52:37 0.32734900 megad: /megad.php?pt=3&cnt=1&mdid=1 (192.168.0.14)
22:52:37 0.30738900 megad: /megad.php?pt=2&cnt=1&mdid=1 (192.168.0.14)
22:52:37 0.29207000 megad: /megad.php?pt=1&cnt=1&mdid=1 (192.168.0.14)
Внимание вопрос, куда передается эта строка "OFF;ON/1;ON/1;ON/1;ON/1;ON/1;ON/0;ON;ON;ON;ON;OFF;OFF;OFF;604;639"?
в каком файле обработчик (парсер)???
Что то мне подсказывает нужно здесь копать, как то это не правильно парсится или неправильно дается запрос для меги.
"/megad.php?pt=5&m=2&cnt=1&mdid=1"
-
- Сообщения: 265
- Зарегистрирован: Пт дек 26, 2014 1:58 pm
- Благодарил (а): 33 раза
- Поблагодарили: 24 раза
Re: Модуль "MegaD"
avacs, у меня есть и готовые модули от Андрея и самопальные на ардуинках. Модуль стоит как на рабочей системе на объекте,там не обновлял МД и модуль уже год это точно, так и дома на тестовом компе. Тут обновляю все регулярно и проверяю.
1. Пока не добъетесь чтения конфигурации из модуля - нет смысла ничего копать в МД.
2. Кроме неправильного ip, id и пароля, могут быть вопросы с настройкой сети в самой Меге. У меня были проблемы с одним маршрутизатором. Никак МД не видел Мегу по ip, только по id. Поэтому проверьте в Меге настройки сети, в частности уберите шлюз по умолчанию(поставьте туда 255.255.255.255, как это и было по умолчанию). А то Мега пытается слать серверу сообщения даже в одной сети через шлюз. В результате апач получает запрос от адреса шлюза, а не от Меги, и возникает путаница. Смотрите настройки nat на маршрутизаторе.
1. Пока не добъетесь чтения конфигурации из модуля - нет смысла ничего копать в МД.
2. Кроме неправильного ip, id и пароля, могут быть вопросы с настройкой сети в самой Меге. У меня были проблемы с одним маршрутизатором. Никак МД не видел Мегу по ip, только по id. Поэтому проверьте в Меге настройки сети, в частности уберите шлюз по умолчанию(поставьте туда 255.255.255.255, как это и было по умолчанию). А то Мега пытается слать серверу сообщения даже в одной сети через шлюз. В результате апач получает запрос от адреса шлюза, а не от Меги, и возникает путаница. Смотрите настройки nat на маршрутизаторе.
Re: Модуль "MegaD"
Victor_S, все это неоднократно проверял, шлюз стоит (и стоял) 255.255.255.255, IP- megad-192.168.0.14, сервер МД на 192.168.0.10. При дебаге, вижу ответы от МЕГИ в МД раз в секунду вида "22:54:37 0.64730100 megad: /megad.php?mdid=1&all=OFF;ON/1;ON/1;ON/1;ON/1;ON/1;ON/0;ON;ON;ON;ON;OFF;OFF;OFF;604;639 (192.168.0.14)"
Маршрутизатора нет, есть свитч неуправляемый Dlink 10/100 и три соединения, сервер, ноут и МегаД. Единственное, что шлюз для МД прописан как ноутбук (192.168.0.100), а в ноуте сделан проброс с вайфая интернета.
Есть предположение, что у меня там две сетевухи, и одна из них не настроена в системе (да и к ней кабель не подключен).
При нажатии на кнопку "read config", некоторое время система висит, как будто ждет ответ, а потом выдает результат "ОК", при этом поле "конфиг" пустое на вкладке "advanced".
Я когда настраивал /etc/php5/apache2/php.ini и /etc/php5/cli/php.ini
для error_reporting задавал одинаковые параметры:
error_reporting = E_ALL & ~E_NOTICE
max_execution_time с 30 меняем на 90
max_input_time поменяем с 60 на 180
post_max_size меняем с 8M на 200M
upload_max_filesize меняем с 2M на 50M
max_file_uploads меняем с 20 на 150
Как и было написано в инструкции, может я что то не то сделал?!
Вот еще вопрос по самодельным модулям, сейчас у меня просто Ардуино нано + ENC шилд. К портам просто подключены светодиоды и кнопки. Работу светодиодов и кнопок через веб интерфейс я вижу. Не нужно ли что нибудь соединять (например перемычки между портами, резистор как в некоторых схемах?). Хотя по логике, оно же работает по прямым командам из МД....
В общем, может криво поставил систему, или может не нужно было обновлять?!
Маршрутизатора нет, есть свитч неуправляемый Dlink 10/100 и три соединения, сервер, ноут и МегаД. Единственное, что шлюз для МД прописан как ноутбук (192.168.0.100), а в ноуте сделан проброс с вайфая интернета.
Есть предположение, что у меня там две сетевухи, и одна из них не настроена в системе (да и к ней кабель не подключен).
При нажатии на кнопку "read config", некоторое время система висит, как будто ждет ответ, а потом выдает результат "ОК", при этом поле "конфиг" пустое на вкладке "advanced".
Я когда настраивал /etc/php5/apache2/php.ini и /etc/php5/cli/php.ini
для error_reporting задавал одинаковые параметры:
error_reporting = E_ALL & ~E_NOTICE
max_execution_time с 30 меняем на 90
max_input_time поменяем с 60 на 180
post_max_size меняем с 8M на 200M
upload_max_filesize меняем с 2M на 50M
max_file_uploads меняем с 20 на 150
Как и было написано в инструкции, может я что то не то сделал?!
Вот еще вопрос по самодельным модулям, сейчас у меня просто Ардуино нано + ENC шилд. К портам просто подключены светодиоды и кнопки. Работу светодиодов и кнопок через веб интерфейс я вижу. Не нужно ли что нибудь соединять (например перемычки между портами, резистор как в некоторых схемах?). Хотя по логике, оно же работает по прямым командам из МД....
В общем, может криво поставил систему, или может не нужно было обновлять?!
-
- Сообщения: 265
- Зарегистрирован: Пт дек 26, 2014 1:58 pm
- Благодарил (а): 33 раза
- Поблагодарили: 24 раза
Re: Модуль "MegaD"
avacs, у меня все ж стойкое ощущение проблем настройки сети. В сервере одна сетевуха?, сервер под виндой? И все ж гляньте логи апача.
По нано с шилдом не понял вопроса. Вообще, если делать МегаД на основе нано, нужно учитывать кучу моментов. Проще(и дешевле) спаять все на про мини. Тогда аппаратно получаем полный аналог и шьем hex прошивку через загрузчик Меги. Нано и его шилд рассчитаны на 5В и тогда тактировать нужно от кварца нано. Соответственно и прошивку нужно немного перекомпилировать под эти задачи. Я не смог на нано с загрузчиком, прошить Мегу(выдавало ошибку превышения размера прошивки). Только напрямую программатором, оставив ардуиновский загрузчик. По обвязке. На входах я использую по 2 сопротивления(последовательно от ножки ардуины 1 кОм, дальше 4.7кОм на питание, вход от датчика/кнопки в точку соединения сопротивлений). При таком варианте устойчиво работают кнопки(сухой контакт) и термодатчики ds18b20. Других датчиков к "Мегам" я не подключаю. Выходы прямо на микросхему 2003, с нее на 12В релюшки. ШИМ и симисторы не использую.
По нано с шилдом не понял вопроса. Вообще, если делать МегаД на основе нано, нужно учитывать кучу моментов. Проще(и дешевле) спаять все на про мини. Тогда аппаратно получаем полный аналог и шьем hex прошивку через загрузчик Меги. Нано и его шилд рассчитаны на 5В и тогда тактировать нужно от кварца нано. Соответственно и прошивку нужно немного перекомпилировать под эти задачи. Я не смог на нано с загрузчиком, прошить Мегу(выдавало ошибку превышения размера прошивки). Только напрямую программатором, оставив ардуиновский загрузчик. По обвязке. На входах я использую по 2 сопротивления(последовательно от ножки ардуины 1 кОм, дальше 4.7кОм на питание, вход от датчика/кнопки в точку соединения сопротивлений). При таком варианте устойчиво работают кнопки(сухой контакт) и термодатчики ds18b20. Других датчиков к "Мегам" я не подключаю. Выходы прямо на микросхему 2003, с нее на 12В релюшки. ШИМ и симисторы не использую.
-
- Сообщения: 52
- Зарегистрирован: Ср фев 04, 2015 12:28 am
- Благодарил (а): 54 раза
- Поблагодарили: 6 раз
Re: Модуль "MegaD"
После последнего обновления модуля начались какие то странности: при выполнении метода TurnOn статус должен меняться с 0 на 1, модуль должен это видеть и сразу отправлять команду меге типа 7:1 на включение. Раньше все работало как часы. Сейчас никакой реакции. Нажимаешь принудительно TurnOn, статус меняется на 1, через 2-3 секунды проверяет статус на меге (а там OFF) и перещелкивает статус обратно на 0.
Если в метод TurnOn прописать не присваивание status значение 1, а сразу отправлять команду меге типа getURL('...cmd=7:1',0), то все работает исправно. Но это ведь неправильно, этого некого рода хак. Прошу помочь советом: где искать?
Так же Сергея прошу несколько исправить настройку меги в модуле: lобавилась новая опция "Тип (контроллер)". Я считаю, что при выборе контроллера на 328 камне, предлагать одно поле: "Тип (периферия)" с возможностью выбора одного из четырех доступных на текущий момент исполнительных модуля. А если выбираем контроллер 2561, то предлагать два независимых поля: "Тип (периферия) - XP1" и "Тип (периферия) - XP2" с возможностью выбора в каждом поле одного из четырех доступных исполнительных модуля (ну и выбор "Не подключен" конечно тоже надо на случай отсутствия модуля в XP2)
UPD:
Отвечу сам себе. После долгих мучений с удалением/ установкой модуля, удалением/созданием свойств объекта, создал новый объект с новым свойством. Как прописал новый объект в модуле, сразу все заработало.
Если в метод TurnOn прописать не присваивание status значение 1, а сразу отправлять команду меге типа getURL('...cmd=7:1',0), то все работает исправно. Но это ведь неправильно, этого некого рода хак. Прошу помочь советом: где искать?
Так же Сергея прошу несколько исправить настройку меги в модуле: lобавилась новая опция "Тип (контроллер)". Я считаю, что при выборе контроллера на 328 камне, предлагать одно поле: "Тип (периферия)" с возможностью выбора одного из четырех доступных на текущий момент исполнительных модуля. А если выбираем контроллер 2561, то предлагать два независимых поля: "Тип (периферия) - XP1" и "Тип (периферия) - XP2" с возможностью выбора в каждом поле одного из четырех доступных исполнительных модуля (ну и выбор "Не подключен" конечно тоже надо на случай отсутствия модуля в XP2)
UPD:
Отвечу сам себе. После долгих мучений с удалением/ установкой модуля, удалением/созданием свойств объекта, создал новый объект с новым свойством. Как прописал новый объект в модуле, сразу все заработало.
-
- Сообщения: 27
- Зарегистрирован: Сб ноя 19, 2016 10:33 pm
- Благодарил (а): 10 раз
- Поблагодарили: 1 раз
Re: Модуль "MegaD"
Добрый день. Не расскажете чуть более подробнее?tsember писал(а):Сергей. Вопрос до сих пор актуален. В связанный метод передается два параметра: сработавший порт и его значение. Катострофически не хватает переданного параметра m (отпустили кнопку или держим свыше 1,5 сек).sergejey писал(а):Так вы поставьте в свойствах входа тип R&D (если не ошибаюсь) и событие будет приходить дважды -- как на нажатие так и на отпускание. При этом в метод передаётся парметр value, который говорит как раз о том, какое действие было произведено.AHgpeu писал(а):и категорически необходима галочка для входов "обрабатывать отпускание кнопки"
Хочу сделать простую логику работы "железной" кнопки:
m=0. Кликнул - свет включился на Х минут; Кликнул еще - свет выключился;
m=1. На отжатие не реагируем, т.к. у нас кнопка
m=0, m=2. При выключенном свете нажал и подержал - свет сразу включится как бы на Х минут и через полторы секунды второй параметр скажет, что таймер Х минут нужно очистить (свет будет продолжать гореть до активации режима "Никого нет дома" или пока его не выключат).
Если два параметра уже передаются, то передать третий - не должно быть проблемой. Или кто может подсказать что нужно править что бы передавать параметр m?
Заранее большое спасибо участниками конференции.
UPD:
На удивление сам разобрался: примерно в середине файла megad.class.php есть код:
после строчкиСпойлерПоказатьКод: Выделить всё
if ($prop['LINKED_OBJECT'] && $prop['LINKED_METHOD']) { // && $old_value!=$prop['CURRENT_VALUE_STRING'] $params=array(); $params['TITLE']=$rec['TITLE']; $params['VALUE']=$prop['CURRENT_VALUE_STRING']; $params['value']=$params['VALUE']; $params['port']=$prop['NUM']; $methodRes=callMethod($prop['LINKED_OBJECT'].'.'.$prop['LINKED_METHOD'], $params);
добавляем строчку:Код: Выделить всё
$params['port']=$prop['NUM'];
оказывается в модуле уже все есть, только этот параметр в метод не передавался.Код: Выделить всё
$params['m']=$m;
$params['m']=$m я добавил в megad.class.php. А как теперь в своём методе можно вытащить это параметр, чтоб назначить различные условия (нажал - свет включился, подержал - выключился весь)?
-
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: Модуль "MegaD"
Может быть получится так:EvgenySM писал(а):Добрый день. Не расскажете чуть более подробнее?
$params['m']=$m я добавил в megad.class.php. А как теперь в своём методе можно вытащить это параметр, чтоб назначить различные условия (нажал - свет включился, подержал - выключился весь)?
Код: Выделить всё
if ( $_GET['m'] == "2" )
{
// Выполнить одно действие (например, "выключить все")
file_get_contents("http://192.168.0.14/sec/?cmd=7:0");
file_get_contents("http://192.168.0.14/sec/?cmd=8:0");
file_get_contents("http://192.168.0.14/sec/?cmd=11:0");
}
else
{
// Выполнить другое действие (например, включить где-то свет)
file_get_contents("http://192.168.0.14/sec/?cmd=8:1");
}
- Рейтинг: 1.16%
Re: Модуль "MegaD"
Доброго времени суток, с недавних пор пользуюсь связкой md + mega md крутится на сервере (малина + Linux)gagarin74 писал(а):Добрый день. Нужна помощь. Может уже это обсуждалось ,но полностью 57 листов просчитать не осилил,да и на форуме веток много.
Суть проблемы.
Имеем 3 устройства
1 телефон с андройдом
2 мега девайс
3 Умный дом на Rasperry.
Начнем с телефона. На нем установлен самописный софт который имеет две кнопки -включить свет и отключить свет. Соответственно отсылает команды по Http на мега девайс как у него написано в мануале. Включает и выключает реле (работает без проблем).
Заходя на веб морду мега девайса (или веб командой для просмотра состояние портов) -видим что все отображается правильно. Да и свет во всей квартире не даст соврать .
Дальше наступают траблы и бубны (может только у меня). Умный дом ни как не хочет реагировать на изменение состояние портов.
Модуль мега в умном доме стоит -работает "корректно", но обновляет данные только при нажатие кнопки в модуле обновить!!!!!
Тобишь в сухом остатке получаем -что мегадевайс отработал (и мы видим это в его веб морде) ,а дальше КОСТЫЛЬ.
Причем если все это организовать без телефона,а воспользоваться прикруткой кнопок к мегадевайсу и с их помощью гасить свет,данные попадают в умный дом (и соответственно меняются показатели).
Нужен совет(ы).
1 как заставить обновиться данные в умном доме.
2 как заставить мега девайс послать волшебный пинок умному дому и сообщить что параметр изменился.
В мегадевайсе с кнопками вроде более менее понятно -там всяких настроик на входы полно. А вот как быть с выходами?!! если их задействовать на прямую без кнопок с мегадевайса.
Спасибо за понимание. (пока писал сообщение прошло минут 5), умный дом так и не оповестил меня(и себя тоже) что на меге один выход переключился с ON на OFF
Появилась такая проблема, обновление данных с меги происходит только после нажатия кнопки обновить в интерфейсе мд:(
В какой момент появилась проблема сложно сказать скорее всего обновление.
Подскажите в каком направлении рыть.
Спасибо
-
- Сообщения: 87
- Зарегистрирован: Ср ноя 09, 2016 10:21 am
- Откуда: Липецкая обл.
- Благодарил (а): 22 раза
- Поблагодарили: 2 раза
Re: Модуль "MegaD"
Такая же ........ В неопределенное время пропадает связь с Мегой. Передергивание по питанию Меги помогает восстановить связь. Грешил на сетевые соединения, но подключил через свич кабелем, проблема осталась. Сейчас набираю статистику, кто виноват. Дополнительно подключил esp8266. Будем посмотреть.sin писал(а): Доброго времени суток, с недавних пор пользуюсь связкой md + mega md крутится на сервере (малина + Linux)
Появилась такая проблема, обновление данных с меги происходит только после нажатия кнопки обновить в интерфейсе мд:(
В какой момент появилась проблема сложно сказать скорее всего обновление.
Подскажите в каком направлении рыть.
Спасибо
Загрузил другую прошивку на Мегу.......
Debian Linux 7,Linux 3.2.0-4-686-pae on i686
Intel(R) Celeron(R) CPU 1.70GHz, 1 cores
Intel(R) Celeron(R) CPU 1.70GHz, 1 cores