[Модуль] MegaD (megad)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

semkyskov
Сообщения: 29
Зарегистрирован: Вт июл 10, 2018 11:21 am
Благодарил (а): 40 раз
Поблагодарили: 1 раз

Re: [Модуль] MegaD (megad)

Сообщение semkyskov » Чт дек 12, 2019 8:05 am

Подтверждаю, такие же проблемы как у ILGAS и likex2000. И далеко не с последнего обновления. По этой причине у меня все настроено через контроллер и я таким образом решаю ситуацию такой работы модуля MegaD МДМ. Получается, что в модуле, при установленном методе switch при получении внешней команды от кнопки меги и после ответа на нее, не корректно отрабатывается смена статуса и через короткое время все возвращается к состоянию установленному из интерфейса МДМ. Из интерфейса все работает отлично. Получается некое рассогласование в работе метода switch и свойством status.
Dmitry M
Сообщения: 2
Зарегистрирован: Чт дек 12, 2019 11:24 am
Благодарил (а): 0
Поблагодарили: 0

Re: [Модуль] MegaD (megad)

Сообщение Dmitry M » Чт дек 12, 2019 11:44 am

Посмотрел обмен между сервером и мегой Wiresharkом - ответ от сервера на срабатывание кнопки в мегу приходит кривой. Если добавить в megad.php ob_flush(); в предпоследнюю строку или закомментить последний flush(); , то все работает, я в php не силен, пусть знающие люди поправят. Система - win2008r2, мега 328, на линуксе не проверял.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: [Модуль] MegaD (megad)

Сообщение sergejey » Чт дек 12, 2019 12:00 pm

Dmitry M писал(а):
Чт дек 12, 2019 11:44 am
Посмотрел обмен между сервером и мегой Wiresharkом - ответ от сервера на срабатывание кнопки в мегу приходит кривой. Если добавить в megad.php ob_flush(); в предпоследнюю строку или закомментить последний flush(); , то все работает, я в php не силен, пусть знающие люди поправят. Система - win2008r2, мега 328, на линуксе не проверял.
А не могли бы показать что именно сервер выдаёт?

Я убрал flush -- возможно, на каких-то конфигурациях эта конструкция выдавала ошибку. Попробуйте пожалуйста сейчас.

Если у кого-то ещё не работает, то включите пожалуйста лог MegaD -- там будет обмен показан между контроллером и сервером. В частности, реакция сервера на запросы от контроллера. Для надёжности можно попробовать этот запрос продублировать в браузере и посмотреть, что сервер выдаст, потому что ошибки или предупреждения в лог не попадут.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Dmitry M
Сообщения: 2
Зарегистрирован: Чт дек 12, 2019 11:24 am
Благодарил (а): 0
Поблагодарили: 0

Re: [Модуль] MegaD (megad)

Сообщение Dmitry M » Чт дек 12, 2019 1:59 pm

sergejey писал(а):
Чт дек 12, 2019 12:00 pm
А не могли бы показать что именно сервер выдаёт?

Я убрал flush -- возможно, на каких-то конфигурациях эта конструкция выдавала ошибку. Попробуйте пожалуйста сейчас.

Если у кого-то ещё не работает, то включите пожалуйста лог MegaD -- там будет обмен показан между контроллером и сервером. В частности, реакция сервера на запросы от контроллера. Для надёжности можно попробовать этот запрос продублировать в браузере и посмотреть, что сервер выдаст, потому что ошибки или предупреждения в лог не попадут.
5й пакет приходит какой-то странный, в нем начало ответа сервера, а в 6ом, который уже HTTP, приходит последний кусок ответа.
Обмен меги и сервера после обновления модуляПоказать
new1.jpg
new1.jpg (273.1 КБ) 3812 просмотров
вот так это выглядит, когда все ок
Обмен меги и сервера до обновленияПоказать
old1.jpg
old1.jpg (296.2 КБ) 3812 просмотров
semkyskov
Сообщения: 29
Зарегистрирован: Вт июл 10, 2018 11:21 am
Благодарил (а): 40 раз
Поблагодарили: 1 раз

Re: [Модуль] MegaD (megad)

Сообщение semkyskov » Чт дек 12, 2019 3:45 pm

sergejey писал(а):
Чт дек 12, 2019 12:00 pm
Я убрал flush -- возможно, на каких-то конфигурациях эта конструкция выдавала ошибку. Попробуйте пожалуйста сейчас.

Если у кого-то ещё не работает, то включите пожалуйста лог MegaD -- там будет обмен показан между контроллером и сервером. В частности, реакция сервера на запросы от контроллера. Для надёжности можно попробовать этот запрос продублировать в браузере и посмотреть, что сервер выдаст, потому что ошибки или предупреждения в лог не попадут.
На Raspberry, базовый образ 3.41, насколько я могу судить, после обновления работает без изменений, как я описывал в предыдущем посте. Вот видео: https://drive.google.com/open?id=1ZCseF ... pTk6hQ6Oa8

Конфиг Меги:
Изображение
Конфиг модуля:
Изображение
Лог: Порт 6 кнопка, порт 11 реле.

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

21:32:40 0.77989000 Command response: Done
21:32:40 0.76918400 Sending command: http://192.168.1.15/sec/?cmd=11:1
21:32:40 0.29971000 Command response: Done
21:32:40 0.28925100 Sending command: http://192.168.1.15/sec/?cmd=11:0
21:32:40 0.22463500 Result:
21:32:40 0.12927200 Request: /megad.php?pt=6&click=1&cnt=38&mdid=aDLkt (192.168.1.15)
21:32:38 0.00624700 Request: /megad.php?pt=6&click=1&cnt=37&mdid=aDLkt (192.168.1.15)
21:32:38 0.26068100 Sending command: http://192.168.1.15/sec/?cmd=11:1
21:32:38 0.09696400 Result:
21:32:38 0.27088400 Command response: Done
21:32:30 0.99035800 Command response: Done
21:32:30 0.97863900 Sending command: http://192.168.1.15/sec/?cmd=11:0
21:32:30 0.88728000 Result:
21:32:30 0.77497400 Request: /megad.php?pt=6&click=1&cnt=36&mdid=aDLkt (192.168.1.15)
21:32:28 0.20077300 Command response: Done
21:32:28 0.18974700 Sending command: http://192.168.1.15/sec/?cmd=11:0
21:32:18 0.15526700 Command response: Done
21:32:18 0.14234700 Sending command: http://192.168.1.15/sec/?cmd=11:1
21:32:17 0.69820600 Result:
21:32:17 0.59579800 Request: /megad.php?pt=6&click=1&cnt=35&mdid=aDLkt (192.168.1.15)
21:32:15 0.12757200 Command response: Done
21:32:15 0.11700900 Sending command: http://192.168.1.15/sec/?cmd=11:0
21:32:05 0.76820200 Command response: Done
21:32:05 0.75793800 Sending command: http://192.168.1.15/sec/?cmd=11:1
21:32:05 0.58695000 Result:
21:32:05 0.47098400 Request: /megad.php?pt=6&click=1&cnt=34&mdid=aDLkt (192.168.1.15)
Dmitry M писал(а):
Чт дек 12, 2019 1:59 pm
5й пакет приходит какой-то странный, в нем начало ответа сервера, а в 6ом, который уже HTTP, приходит последний кусок ответа.
Обмен меги и сервера после обновления модуляПоказать
new1.jpg
вот так это выглядит, когда все ок
Обмен меги и сервера до обновленияПоказать
old1.jpg
В Вашем случае, ответная команда, по моему, вообще не приходит, только информация, что сервер доступен.
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: [Модуль] MegaD (megad)

Сообщение Chainik » Чт дек 12, 2019 4:01 pm

semkyskov писал(а):
Чт дек 12, 2019 3:45 pm
...
Конфиг модуля:
...
Попробуйте вместа ТИПа "IN" выставить ТИП "counter". Изменится что-нибудь в лучшую сторону? У меня при типе "IN" вообще ничего не работало (хотя я давно не обновлял модуль).
Ну и заодно, что написано в методе "switch"?
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: [Модуль] MegaD (megad)

Сообщение sergejey » Чт дек 12, 2019 4:54 pm

semkyskov писал(а):
Чт дек 12, 2019 3:45 pm

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

21:32:40 0.77989000 Command response: Done
21:32:40 0.76918400 Sending command: http://192.168.1.15/sec/?cmd=11:1
21:32:40 0.29971000 Command response: Done
21:32:40 0.28925100 Sending command: http://192.168.1.15/sec/?cmd=11:0
21:32:40 0.22463500 Result:
21:32:40 0.12927200 Request: /megad.php?pt=6&click=1&cnt=38&mdid=aDLkt (192.168.1.15)
21:32:38 0.00624700 Request: /megad.php?pt=6&click=1&cnt=37&mdid=aDLkt (192.168.1.15)
21:32:38 0.26068100 Sending command: http://192.168.1.15/sec/?cmd=11:1
21:32:38 0.09696400 Result:
21:32:38 0.27088400 Command response: Done
21:32:30 0.99035800 Command response: Done
21:32:30 0.97863900 Sending command: http://192.168.1.15/sec/?cmd=11:0
21:32:30 0.88728000 Result:
21:32:30 0.77497400 Request: /megad.php?pt=6&click=1&cnt=36&mdid=aDLkt (192.168.1.15)
21:32:28 0.20077300 Command response: Done
21:32:28 0.18974700 Sending command: http://192.168.1.15/sec/?cmd=11:0
21:32:18 0.15526700 Command response: Done
21:32:18 0.14234700 Sending command: http://192.168.1.15/sec/?cmd=11:1
21:32:17 0.69820600 Result:
21:32:17 0.59579800 Request: /megad.php?pt=6&click=1&cnt=35&mdid=aDLkt (192.168.1.15)
21:32:15 0.12757200 Command response: Done
21:32:15 0.11700900 Sending command: http://192.168.1.15/sec/?cmd=11:0
21:32:05 0.76820200 Command response: Done
21:32:05 0.75793800 Sending command: http://192.168.1.15/sec/?cmd=11:1
21:32:05 0.58695000 Result:
21:32:05 0.47098400 Request: /megad.php?pt=6&click=1&cnt=34&mdid=aDLkt (192.168.1.15)
Судя по логу получается так -- MegaD присылает событие, сервер вызывает метод Switch, вызов этого метода отправляет команду на Мегу для включения и через 10 секунд сервер снова отправляет команду на мегу, только уже для выключения. Последнее значит, что изменился статус связанного свойства на сервере, но вопрос кем. Я тут рекомендовал бы ещё посмотреть историю изменений связанного свойства -- там есть поле Source, из которого можно понять причину обновления. Т.е. надо найти что через 10 секунд выставляет свойство в ноль.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: [Модуль] MegaD (megad)

Сообщение Chainik » Чт дек 12, 2019 5:15 pm

sergejey писал(а):
Чт дек 12, 2019 4:54 pm
...
Последнее значит, что изменился статус связанного свойства на сервере, но вопрос кем. Я тут рекомендовал бы ещё посмотреть историю изменений связанного свойства -- там есть поле Source, из которого можно понять причину обновления. Т.е. надо найти что через 10 секунд выставляет свойство в ноль.
sergejey, посмотрите на предыдущей странице likex2000 выкладывал историю изменения свойства status. Вот там написано, что свойство меняет
/ajax/megad.html?op=processCycle
semkyskov
Сообщения: 29
Зарегистрирован: Вт июл 10, 2018 11:21 am
Благодарил (а): 40 раз
Поблагодарили: 1 раз

Re: [Модуль] MegaD (megad)

Сообщение semkyskov » Пт дек 13, 2019 8:38 am

sergejey писал(а):
Чт дек 12, 2019 4:54 pm
Судя по логу получается так -- MegaD присылает событие, сервер вызывает метод Switch, вызов этого метода отправляет команду на Мегу для включения и через 10 секунд сервер снова отправляет команду на мегу, только уже для выключения. Последнее значит, что изменился статус связанного свойства на сервере, но вопрос кем. Я тут рекомендовал бы ещё посмотреть историю изменений связанного свойства -- там есть поле Source, из которого можно понять причину обновления. Т.е. надо найти что через 10 секунд выставляет свойство в ноль.
Chainik, Вы правы, это /ajax/megad.html?op=processCycle.
История свойства к логу из прошлого поста:
СпойлерПоказать
Изображение
Кстати, я уже сталкивался с вмешательством этой "конструкции" в работу ПУ с импульсным счетчиком, вызывающей ложные срабатывания. От чего показания счетчика со временем начинают превышать реальные:
СпойлерПоказать
Изображение
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: [Модуль] MegaD (megad)

Сообщение sergejey » Пт дек 13, 2019 10:14 pm

Конструкция /ajax/megad.html?op=processCycle используется для периодического опроса, т.е. выходит так, что периодический опрос статуса портов мегад возвращает разные значения? А не могли бы вы ещё на лог изменений значения статуса наложить лог взаимодействия с megad за тот же период? Возможно мы тогда увидим, почему после включения мы через 10 секунд получаем запрос на выключение. Ну или если это однозначно воспроизводится и есть возможность предоставить доступ к системе, то я мог бы подключиться и посмотреть прямо у вас.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Ответить