Да, об этом как то забыл, скорее всего не присылает. Сейчас тоже нет под рукой что бы проверить.Bagir писал(а):А присылает ли Мега счетчик при коммутации порта?
Подключение контроллера MegaD-328
Модератор: immortal
-
- Сообщения: 708
- Зарегистрирован: Сб авг 18, 2012 10:21 am
- Благодарил (а): 26 раз
- Поблагодарили: 183 раза
Re: Подключение контроллера MegaD-328
- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Подключение контроллера MegaD-328
Как выход из положения, при получении сообщения о коммутации сразу спрашивать состояние этого порта.
-
- Сообщения: 708
- Зарегистрирован: Сб авг 18, 2012 10:21 am
- Благодарил (а): 26 раз
- Поблагодарили: 183 раза
Re: Подключение контроллера MegaD-328
В общем пока забираю показания счетчика так:
$state = file_get_contents('http://192.168.2.95/sec/?pt=2&cmd=get');
$value = explode('/',$state);
sg('countGas.status',substr($value[0],0));
sg('countGas.const',substr($value[1],0)/100);
sg("countGas.updatedTime",date("H:i",time()));
$state = file_get_contents('http://192.168.2.95/sec/?pt=2&cmd=get');
$value = explode('/',$state);
sg('countGas.status',substr($value[0],0));
sg('countGas.const',substr($value[1],0)/100);
sg("countGas.updatedTime",date("H:i",time()));
-
- Сообщения: 4
- Зарегистрирован: Вт мар 10, 2015 12:46 pm
- Благодарил (а): 2 раза
- Поблагодарили: 0
Re: Подключение контроллера MegaD-328
Добрый день, с PHP раньше не встречался, по этому освоение MD идет тяжело, пытаюсь подружить MegaD и MD, вроде все по инструкции сделал, тестовые ссылки в методах работают, а железную кнопку никак. При нажатии на кнопку к логу добавляются чередующиеся Closing thread: и RESTARTING:
Лог прикрепляю может что подскажите.
Лог прикрепляю может что подскажите.
- Вложения
-
- log.rar
- (15.65 КБ) 149 скачиваний
- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Подключение контроллера MegaD-328
Циклы падают. Хм, странно. По логу ничего не скажу. Там не видно. Но раз падение циклов происходит при нажатии на железную кнопку, то алгоритм следующий: Кнопка комутит контакты Меги. Мега делает GET запрос к файлу megad.php на нашем сервере. Файл при работе вызывает метод incomingMessage нужного объекта Меги. Дальше работает код из incomingMessage в соответствующей порту Меги группе.
Где именно неполадка сказать не могу, но уверен, Вы разберетесь. Предлагаю начать решение по шагам. Первым делом надо удостовериться, что MegaD успешно обращается к файлу megad.php
Включите логирование в этом файле и в методах. Все будет писаться в debmes. И будем анализировать дальше.
По своей надежности, из всего того что есть у меня, Мега показала себя с наилучшей стороны. Так что не отступайте. Все получится.
Где именно неполадка сказать не могу, но уверен, Вы разберетесь. Предлагаю начать решение по шагам. Первым делом надо удостовериться, что MegaD успешно обращается к файлу megad.php
Включите логирование в этом файле и в методах. Все будет писаться в debmes. И будем анализировать дальше.
По своей надежности, из всего того что есть у меня, Мега показала себя с наилучшей стороны. Так что не отступайте. Все получится.
-
- Сообщения: 366
- Зарегистрирован: Пт июл 26, 2013 4:11 pm
- Благодарил (а): 71 раз
- Поблагодарили: 18 раз
Re: Подключение контроллера MegaD-328
Bagir, сделал бы уже модуль для "Маркет дополнений" и не было таких сложностей.Bagir писал(а):Циклы падают. Хм, странно. По логу ничего не скажу. Там не видно. Но раз падение циклов происходит при нажатии на железную кнопку, то алгоритм следующий: Кнопка комутит контакты Меги. Мега делает GET запрос к файлу megad.php на нашем сервере. Файл при работе вызывает метод incomingMessage нужного объекта Меги. Дальше работает код из incomingMessage в соответствующей порту Меги группе.
Где именно неполадка сказать не могу, но уверен, Вы разберетесь. Предлагаю начать решение по шагам. Первым делом надо удостовериться, что MegaD успешно обращается к файлу megad.php
Включите логирование в этом файле и в методах. Все будет писаться в debmes. И будем анализировать дальше.
По своей надежности, из всего того что есть у меня, Мега показала себя с наилучшей стороны. Так что не отступайте. Все получится.

- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Подключение контроллера MegaD-328
Даже не представляю, как это все запихать в модуль. В самом начале я даже писал, что мой класс MegaD сгодится только на время, пока Мега не появится модулем в "Устройствах". Теперь я даже не знаю на что это должно быть похоже.
Да, можно заточить под отдельную задачу. Управление светом например, и следать модуль. Но подрезать имеющиеся возможности я не хочу. И так уже кое чем принебрег. Мега после GET запроса в ответе ожидает команды. Этой фишки у меня в классе нет. Команда, при ее наличии, уже идет вторым GET от сервера к Меге.
Да, можно заточить под отдельную задачу. Управление светом например, и следать модуль. Но подрезать имеющиеся возможности я не хочу. И так уже кое чем принебрег. Мега после GET запроса в ответе ожидает команды. Этой фишки у меня в классе нет. Команда, при ее наличии, уже идет вторым GET от сервера к Меге.
-
- Сообщения: 4
- Зарегистрирован: Вт мар 10, 2015 12:46 pm
- Благодарил (а): 2 раза
- Поблагодарили: 0
Re: Подключение контроллера MegaD-328
Сейчас при нажатии на железную кнопку лог выглядит так :Bagir писал(а): Первым делом надо удостовериться, что MegaD успешно обращается к файлу megad.php
Включите логирование в этом файле и в методах. Все будет писаться в debmes. И будем анализировать дальше.
По своей надежности, из всего того что есть у меня, Мега показала себя с наилучшей стороны. Так что не отступайте. Все получится.
19:52:31 TRACE [page.megad]: Got message from MegaDevice pt=3, cnt=6, mdid=1 (at C:\_majordomo\htdocs\megad.php:31)
19:52:31 ERROR [page.megad]: Cannot find object of MegaD class with mdid = 1 or ip = 192.168.1.39 (at C:\_majordomo\htdocs\megad.php:71)
В свойствах MegaD ip и mdid укузаны!
что ему нужно?
- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Подключение контроллера MegaD-328
Got message from MegaDevice pt=3, cnt=6, mdid=1
Это означает, что Мега успешно обратилась к файлу megad.php. Причем Мега передала свой идентификатор mdid=1
Cannot find object of MegaD class with mdid = 1 or ip = 192.168.1.39
Запрос был обработан кодом в файле megad.php, но нужный объект МД не был найден. Вначале идет поиск по mdid. Если мега его передает, то объект должен быть найден. Если все же не нашелся, или Мега не передала mdid (старая прошивка или не настроена), то будет проведен поиск по ip. Если не найдет и по ip, то получаем подобное сообщение.
Что такое поиск нужного объекта:
Это перебор всех объектов класса MegaD и сравнение с их свойствами mdid и ipAddress. Эти свойства должны быть обязательно заполнены у объекта Меги. Имя самого объекта значение не имеет. В любом случае будут перебраны все объекты класса. Проверьте этот момент.

Это означает, что Мега успешно обратилась к файлу megad.php. Причем Мега передала свой идентификатор mdid=1
Cannot find object of MegaD class with mdid = 1 or ip = 192.168.1.39
Запрос был обработан кодом в файле megad.php, но нужный объект МД не был найден. Вначале идет поиск по mdid. Если мега его передает, то объект должен быть найден. Если все же не нашелся, или Мега не передала mdid (старая прошивка или не настроена), то будет проведен поиск по ip. Если не найдет и по ip, то получаем подобное сообщение.
Что такое поиск нужного объекта:
Это перебор всех объектов класса MegaD и сравнение с их свойствами mdid и ipAddress. Эти свойства должны быть обязательно заполнены у объекта Меги. Имя самого объекта значение не имеет. В любом случае будут перебраны все объекты класса. Проверьте этот момент.

- Рейтинг: 1.16%
-
- Сообщения: 4
- Зарегистрирован: Вт мар 10, 2015 12:46 pm
- Благодарил (а): 2 раза
- Поблагодарили: 0
Re: Подключение контроллера MegaD-328
У меня класс назывался Megadevice, переименовал в MegaD, теперь лог такой :
21:30:41 TRACE [page.megad]: Got message from MegaDevice pt=3, cnt=23, mdid=1 (at C:\_majordomo\htdocs\megad.php:31)
я понял что МД получает информацию от МегаД, но не пойму как сделать реагирование.
21:30:41 TRACE [page.megad]: Got message from MegaDevice pt=3, cnt=23, mdid=1 (at C:\_majordomo\htdocs\megad.php:31)
я понял что МД получает информацию от МегаД, но не пойму как сделать реагирование.