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

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

Модератор: immortal

Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Модуль "MegaD"

Сообщение Chainik » Ср авг 09, 2017 4:21 pm

"Засада" может сидеть в двух местах:
1. При работе входа Меги в режиме "P", после нахождения 1,5 секунды в замкнутом состоянии Мега отдает серверу 2-й ответ с параметром "m=2". Соответственно, скрипт вызывается повторно.
Метод "лечения" найден в этой ветке на стр.56.
Или можно посмотреть здесь (http://ab-log.ru/forum/viewtopic.php?f= ... 309#p28309) с примером кода (в конце поста, после подзаголовка "ДОПОЛНЕНИЕ/УТОЧНЕНИЕ").
2. Еще возможная причина: "Вызывать родительский метод" - "перед выполнением кода". Попробуйте поставить - "никогда".
За это сообщение автора Chainik поблагодарил:
barsmaster (Ср авг 09, 2017 5:31 pm)
Рейтинг: 1.16%
Аватара пользователя
barsmaster
Сообщения: 60
Зарегистрирован: Пн апр 03, 2017 12:21 pm
Откуда: Киев
Благодарил (а): 10 раз
Поблагодарили: 1 раз

Re: Модуль "MegaD"

Сообщение barsmaster » Ср авг 09, 2017 4:50 pm

родительский метод пустой.
Скорее всего m=2, копаю. спасибо!
UPD:
Добавление строки в файл megad.class.php
$params['m']=$m;
помогло.

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

if(!$params['m']){
say("Протечка",1);
}
return; 
Аватара пользователя
barsmaster
Сообщения: 60
Зарегистрирован: Пн апр 03, 2017 12:21 pm
Откуда: Киев
Благодарил (а): 10 раз
Поблагодарили: 1 раз

Re: Модуль "MegaD"

Сообщение barsmaster » Чт авг 10, 2017 5:32 pm

Сил моих больше не хватает. Снова нуждаюсь в помощи.
Продолжая историю с датчиками протечки, и методом который вызывается при срабатывании датчика, оповещая где именно произошла сработка.
Так вот, сделал копии первого объекта, методы все переписал соответственно, выходы назначил.
https://gyazo.com/18dc52d80602e07195e9361a5948c4ae

странная штука происходит.
вот есть три обьекта подряд, у которых (ecmd: 7:1) - входы 15,16,17.
При сработке последнего из списка, всё хорошо.
При срабатывании среднего, дергает метод свой, и метод следующего в списке.
По моей картинке. Метод 17го входа срабатывает один раз.
Метод 16го входа срабатывает и тянет за собой метод 17го.
Метод 15го входа срабатывает и тянет за собой метод 16го.
Не понимаю, как такое возможно.
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Модуль "MegaD"

Сообщение Chainik » Чт авг 10, 2017 6:51 pm

С таким не сталкивался. Может попробовать перевыбрать методы, очистить код и опять прописать код методов. Ну не знаю, даже. Выключить и включить Мажордомо. Трижды плюнуть через левое плечо, наконец...
Странно все это, в общем.
Аватара пользователя
barsmaster
Сообщения: 60
Зарегистрирован: Пн апр 03, 2017 12:21 pm
Откуда: Киев
Благодарил (а): 10 раз
Поблагодарили: 1 раз

Re: Модуль "MegaD"

Сообщение barsmaster » Пт авг 11, 2017 1:45 pm

Круг сужается.
Обнаружил следующую проблему.
во вкладке данные, в поле Текущее значение, не обнуляется значение после срабатывания датчика.
тоесть было Текущее значение =0, датчик сработал и Текущее значение остается висеть 1, хотя если зайти на саму мегу, то текущее состояние порта пишет OFF.

Если нажать кнопку обновить - скидывает в ноль. пока не нажмешь, держит 1.
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Модуль "MegaD"

Сообщение Chainik » Пт авг 11, 2017 3:02 pm

Думаю, такое поведение является нормальным. И у меня на вкладке "данные" информация о состоянии входа обновляется только после перезагрузки страницы (F5).
Аватара пользователя
barsmaster
Сообщения: 60
Зарегистрирован: Пн апр 03, 2017 12:21 pm
Откуда: Киев
Благодарил (а): 10 раз
Поблагодарили: 1 раз

Re: Модуль "MegaD"

Сообщение barsmaster » Пт авг 11, 2017 4:10 pm

можно как-то просмотреть данные которые летят из меги в MD?
Есть подозрение что мега отправляет бред.
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Модуль "MegaD"

Сообщение Chainik » Пт авг 11, 2017 4:36 pm

Способ точно есть. Сам никогда не пользовался. Не нужно было. Первое, что пришло в голову - Wireshark (программа для анализа сетевого трафика).
Ну или пусть сообщество подскажет какой-нибудь другой способ.
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Модуль "MegaD"

Сообщение skysilver » Пт авг 11, 2017 4:49 pm

barsmaster писал(а):можно как-то просмотреть данные которые летят из меги в MD?
Есть подозрение что мега отправляет бред.
Если задача на стороне сервера отслеживать, то можно в начало файла megad.php добавить

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

DebMes("MegaD obj request: ".$_SERVER['REQUEST_URI']); 
и смотреть в x-ray. А если затык в сети и до сервера ничего не доходить, то тогда надо снифить пакеты wireshark-ом.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Аватара пользователя
barsmaster
Сообщения: 60
Зарегистрирован: Пн апр 03, 2017 12:21 pm
Откуда: Киев
Благодарил (а): 10 раз
Поблагодарили: 1 раз

Re: Модуль "MegaD"

Сообщение barsmaster » Пт авг 11, 2017 4:58 pm

skysilver писал(а):
barsmaster писал(а):можно как-то просмотреть данные которые летят из меги в MD?
Есть подозрение что мега отправляет бред.
Если задача на стороне сервера отслеживать, то можно в начало файла megad.php добавить

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

DebMes("MegaD obj request: ".$_SERVER['REQUEST_URI']);
и смотреть в x-ray. А если затык в сети и до сервера ничего не доходить, то тогда надо снифить пакеты wireshark-ом.
слишком много всего приходит наоборот, физически срабатывает один вход, MD ловит срабатывания сразу нескольких.
Ответить