Страница 10 из 141
Re: Модуль "MegaD"
Добавлено: Чт май 21, 2015 2:46 pm
AHgpeu
sergejey писал(а):Проблему смог воспроизвести, но решение пока в голову не лезет.
...
Я это связываю с тем, что на меге стоит очень маленький тайм-аут на запрос к серверу и в некоторых случаях мега просто считает, что не дождалась ответа от сервера, какой бы он там ни был, и, соответственно, выполняет команду по-умолчанию.
если, к примеру, меги реальной вообще нет, то по ссылке, имитирующей мегу, тоже различные ответы.
и тайм-аут 2 секунды. в принципе, это очень много
Re: Модуль "MegaD"
Добавлено: Чт май 21, 2015 3:19 pm
sergejey
AHgpeu писал(а):sergejey писал(а):Проблему смог воспроизвести, но решение пока в голову не лезет.
...
Я это связываю с тем, что на меге стоит очень маленький тайм-аут на запрос к серверу и в некоторых случаях мега просто считает, что не дождалась ответа от сервера, какой бы он там ни был, и, соответственно, выполняет команду по-умолчанию.
если, к примеру, меги реальной вообще нет, то по ссылке, имитирующей мегу, тоже различные ответы.
и тайм-аут 2 секунды. в принципе, это очень много
Да, дело не в таймауте. Попоробуйте ещё раз обновить модуль, кое-что смог у себя воспроизвести и исправил.
Re: Модуль "MegaD"
Добавлено: Чт май 21, 2015 4:36 pm
Victor_S
А можно поинтересоваться почему такая большая временная разница при переключении "железным" переключателем и "программным"? Т.е. есть лампочка на сцене, связана с выходом Меги. На входе Меги есть аппаратная кнопка. Щелкаю по лампочке на сцене - Мега реагирует сразу, и тут же меняется статус лампочки на сцене. Щелкаю аппаратной кнопкой - Мега реагирует так же быстро, а вот статус лампочки на сцене изменяется только секунд через 5. Момент не сильно важный, но у меня нигде никакой логики особо нету, а задержка приличная.
Re: Модуль "MegaD"
Добавлено: Пт май 22, 2015 8:58 am
AHgpeu
кстати... кажется понял закономерность падения циклов.
они у меня падают при обновлении модуля.
и обратно не поднимаются. по идее должны же?
можно ли как-то ручками запустить циклы? (debian)
на форуме не нашёл.
Victor_S писал(а):...а вот статус лампочки на сцене изменяется только секунд через 5. Момент не сильно важный, но у меня нигде никакой логики особо нету, а задержка приличная.
информация на сценах обновляется с помощью технологии ajax, функция вызывается браузером с некоторой периодичностью (вроде где-то регулировалась в сцене).
но ускорять не рекомендуется, что бы не завалить сервер запросами. слабую машину можно будет вообще подвесить десятком открытых сцен
Re: Модуль "MegaD"
Добавлено: Пт май 22, 2015 12:39 pm
Victor_S
По сценам вообще отдельный вопрос...

Чтобы не заводить отдельную тему, спрошу тут кратенько. Сцены - это на самом деле что такое? У меня сложилось впечатление, что это не сцены, а сцена(одна) и представляет собою некий один большой жаваскрипт или ему подобное...
А по реакции, так у меня ничего не изменилось в принципе, просто вместо класса МегаД, стал использовать модуль. Я и раньше получал статус этой лампочки после щелчка железного выключателя, только телодвижений было поболее...

Обработка incommingmessages от Меги, отправка setdata, запрос getdata, вызов метода объекта по изменению статуса лампочки. Теперь же статус связан в модуле, а задание Мега получает эхо-ответом. Раньше я визуально не видел никакой разницы, теперь не заметить ее просто невозможно. Вот и интересуюсь в чем причина. Мне показалось, что запрос о состоянии выходов отправляется Меге не сразу после команд , а тупо периодически(3-5с)...
Re: Модуль "MegaD"
Добавлено: Сб май 23, 2015 10:30 am
AHgpeu
прошу прощения, что пишу в эту тему не по теме, но я тут уже поднимал вопрос о падении циклов.
вот, нашёл причину
Код: Выделить всё
2015-03-21 17:17:55 1146: Table 'MajorDoMo.system_errors_data' doesn t exist INSERT INTO `system_errors_data`(`ERROR_ID`, `COMMENTS`, `ADDED`) VALUES('2', '1146: Table \'MajorDoMo.system_errors\' doesn\'t exist\nSELECT * FROM system_errors WHERE CODE LIKE \'sql\'', '2015-03-21 17:17:55')
2015-03-21 17:17:55 1146: Table 'MajorDoMo.system_errors_data' doesn t exist INSERT INTO `system_errors_data`(`ERROR_ID`, `COMMENTS`, `ADDED`) VALUES('5', '1146: Table \'MajorDoMo.system_errors\' doesn\'t exist\nSELECT * FROM system_errors WHERE CODE LIKE \'sql\'', '2015-03-21 17:17:55')
2015-03-21 17:17:55 1146: Table 'MajorDoMo.system_errors_data' doesn t exist INSERT INTO `system_errors_data`(`ERROR_ID`, `COMMENTS`, `ADDED`) VALUES('3', '1146: Table \'MajorDoMo.system_errors\' doesn\'t exist\nSELECT * FROM system_errors WHERE CODE LIKE \'sql\'', '2015-03-21 17:17:55')
как вылечить? таблицы system_errors_data и system_errors присутствуют.
по времени до секунды совпадает с падением циклов.
Re: Модуль "MegaD"
Добавлено: Сб май 23, 2015 2:38 pm
AHgpeu
sergejey, ещё проблема:
есть объект RELAY
на кнопку меги повешен простейший тестовый RELAY.method:
Код: Выделить всё
$status=$this->getProperty("status");
if ($status) {
$this->setProperty("status", 0);
} else {
$this->setProperty("status", 1);
}
return '';
соответственно реальное реле той же меги привязано к RELAY.status
при самой первой подаче команды (щёлкнул кнопкой) свет включается, через секунду выключается.
дальше вроде бы работает корректно, НО! при status=1 свет выключен, при status=0 свет включен.
как только перезаписался статус любой другой релюхи этой же меги (со сцены, или с кнопки, работающей по умолчанию), status перезаписывается на реальное положение дел.
и начитается всё с начала, т.е. вкл-выкл, далее норма, но инвертированная.
изменение status любым другим способом (с той же сцены, к примеру) обрабатывается корректно.
Re: Модуль "MegaD"
Добавлено: Пн май 25, 2015 11:50 am
sergejey
AHgpeu, честно говоря, не понял с методом. Он сам по себе несколько странный. Если и метод и свойство привязаны в модуле МегаД, то лучше что-то отвязать или разнести по разным объектам.
Re: Модуль "MegaD"
Добавлено: Вт май 26, 2015 10:54 am
AHgpeu
это было сделано для упрощения.
точно такая же бага при методе другого объекта:
Код: Выделить всё
$status=$this->gg("RELAY.status");
if ($status) {
$this->sg("RELAY.status", 0);
} else {
$this->sg("RELAY.status", 1);
}
return '';
соответственно RELAY.status остался привязан к выходу меги
метод - простой переключатель. если выключено, включить, и наоборот.
Re: Модуль "MegaD"
Добавлено: Вс май 31, 2015 2:54 pm
Victor_S
Есть проблема со считыванием и установкой конфигурации в закладке advanced. Думаю проблема с использованием нестандартного пароля(т.е. берется не пароль из свойств, а тупо пароль по умолчанию sec). Поставил систему на объект. В реальной Меге один выключатель подключил к другому порту, чем было на тестовой. В результате имею проблему, модуль видит тестовую конфигурацию, а не реальную. Приходится бегать к туалету чтобы включить свет в комнате и наоборот...

))