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

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

Модератор: immortal

Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

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

Сообщение Jager » Пт фев 06, 2015 1:47 pm

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

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

Сообщение Bagir » Пт фев 06, 2015 1:49 pm

Как выход из положения, при получении сообщения о коммутации сразу спрашивать состояние этого порта.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

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

Сообщение Jager » Пт фев 06, 2015 2:27 pm

В общем пока забираю показания счетчика так:
$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()));
avtomat78
Сообщения: 4
Зарегистрирован: Вт мар 10, 2015 12:46 pm
Благодарил (а): 2 раза
Поблагодарили: 0

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

Сообщение avtomat78 » Вт мар 10, 2015 2:04 pm

Добрый день, с PHP раньше не встречался, по этому освоение MD идет тяжело, пытаюсь подружить MegaD и MD, вроде все по инструкции сделал, тестовые ссылки в методах работают, а железную кнопку никак. При нажатии на кнопку к логу добавляются чередующиеся Closing thread: и RESTARTING:
Лог прикрепляю может что подскажите.
Вложения
log.rar
(15.65 КБ) 149 скачиваний
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

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

Сообщение Bagir » Вт мар 10, 2015 2:29 pm

Циклы падают. Хм, странно. По логу ничего не скажу. Там не видно. Но раз падение циклов происходит при нажатии на железную кнопку, то алгоритм следующий: Кнопка комутит контакты Меги. Мега делает GET запрос к файлу megad.php на нашем сервере. Файл при работе вызывает метод incomingMessage нужного объекта Меги. Дальше работает код из incomingMessage в соответствующей порту Меги группе.
Где именно неполадка сказать не могу, но уверен, Вы разберетесь. Предлагаю начать решение по шагам. Первым делом надо удостовериться, что MegaD успешно обращается к файлу megad.php
Включите логирование в этом файле и в методах. Все будет писаться в debmes. И будем анализировать дальше.
По своей надежности, из всего того что есть у меня, Мега показала себя с наилучшей стороны. Так что не отступайте. Все получится.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
ILGAS
Сообщения: 366
Зарегистрирован: Пт июл 26, 2013 4:11 pm
Благодарил (а): 71 раз
Поблагодарили: 18 раз

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

Сообщение ILGAS » Вт мар 10, 2015 2:42 pm

Bagir писал(а):Циклы падают. Хм, странно. По логу ничего не скажу. Там не видно. Но раз падение циклов происходит при нажатии на железную кнопку, то алгоритм следующий: Кнопка комутит контакты Меги. Мега делает GET запрос к файлу megad.php на нашем сервере. Файл при работе вызывает метод incomingMessage нужного объекта Меги. Дальше работает код из incomingMessage в соответствующей порту Меги группе.
Где именно неполадка сказать не могу, но уверен, Вы разберетесь. Предлагаю начать решение по шагам. Первым делом надо удостовериться, что MegaD успешно обращается к файлу megad.php
Включите логирование в этом файле и в методах. Все будет писаться в debmes. И будем анализировать дальше.
По своей надежности, из всего того что есть у меня, Мега показала себя с наилучшей стороны. Так что не отступайте. Все получится.
Bagir, сделал бы уже модуль для "Маркет дополнений" и не было таких сложностей. :)
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

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

Сообщение Bagir » Вт мар 10, 2015 2:51 pm

Даже не представляю, как это все запихать в модуль. В самом начале я даже писал, что мой класс MegaD сгодится только на время, пока Мега не появится модулем в "Устройствах". Теперь я даже не знаю на что это должно быть похоже.
Да, можно заточить под отдельную задачу. Управление светом например, и следать модуль. Но подрезать имеющиеся возможности я не хочу. И так уже кое чем принебрег. Мега после GET запроса в ответе ожидает команды. Этой фишки у меня в классе нет. Команда, при ее наличии, уже идет вторым GET от сервера к Меге.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
avtomat78
Сообщения: 4
Зарегистрирован: Вт мар 10, 2015 12:46 pm
Благодарил (а): 2 раза
Поблагодарили: 0

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

Сообщение avtomat78 » Чт мар 12, 2015 7:59 pm

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

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

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. Эти свойства должны быть обязательно заполнены у объекта Меги. Имя самого объекта значение не имеет. В любом случае будут перебраны все объекты класса. Проверьте этот момент.
Изображение
За это сообщение автора Bagir поблагодарил:
avtomat78 (Чт мар 12, 2015 9:40 pm)
Рейтинг: 1.16%
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
avtomat78
Сообщения: 4
Зарегистрирован: Вт мар 10, 2015 12:46 pm
Благодарил (а): 2 раза
Поблагодарили: 0

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

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

У меня класс назывался 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)
я понял что МД получает информацию от МегаД, но не пойму как сделать реагирование.
Ответить