Скорость работы Majordomo на разном железе (Raspberry, Intel PC, etc..)

Всё, что не подходит под вышеперечисленные разделы

Модератор: immortal

crazy_russian_bear
Сообщения: 33
Зарегистрирован: Пт авг 03, 2018 5:47 pm
Благодарил (а): 2 раза
Поблагодарили: 2 раза

Re: Скорость работы Majordomo на разном железе (Raspberry, Intel PC, etc..)

Сообщение crazy_russian_bear » Пт ноя 09, 2018 6:12 pm

Подтверждаю проблему. Две квартиры увешанные датчиками движения ксаоми и сенсорными выключателями. Средняя частота срабатывания 1-2 секунды. Бывают задержки в от 5 до 15 секунд. Бывает вообще не срабатывают. В одной квартире малина с МДМ установлена подключены по изернте кабелю. Во второй квартире малина подключена по вайфаю. Во втором случае задержки и несрабатывания происходят гораздо чаще. Картина в целом очень печальная. Каждый раз идешь и думаешь, сработает или нет.
Аватара пользователя
maksimka
Сообщения: 23
Зарегистрирован: Сб апр 07, 2018 2:04 pm
Откуда: Новосибирск
Благодарил (а): 13 раз
Поблагодарили: 12 раз

Re: Скорость работы Majordomo на разном железе (Raspberry, Intel PC, etc..)

Сообщение maksimka » Сб ноя 10, 2018 2:47 pm

Я решил проблему тормозов кардинально - выделил для MDM отдельный роутер, и все что связано с датчиками, ESP, терминалами и прочими компонентами живут в отдельной сети. Третий месяц пошел - полет более чем нормальный!
За это сообщение автора maksimka поблагодарил:
sybman (Сб фев 20, 2021 7:02 pm)
Рейтинг: 1.16%
crazy_russian_bear
Сообщения: 33
Зарегистрирован: Пт авг 03, 2018 5:47 pm
Благодарил (а): 2 раза
Поблагодарили: 2 раза

Re: Скорость работы Majordomo на разном железе (Raspberry, Intel PC, etc..)

Сообщение crazy_russian_bear » Пн ноя 12, 2018 12:24 am

Товарищи, у кого есть задержки, к какому модулю (устройствам) привязаны ваши датчики? Какие выключатели/реле включают? У меня, к примеру, броадлинк. Я сделал дебаги по всему коду ксаомихоум, и прихожу к выводу, что задержка возникает в самом конце работы модуля, при вызове callMethod на связанном объекте. У меня через объекты привязаны выключатели броадлинк. Возможно именно они и дают лаг. Но, это не точно. 1. Я не уверен, что метод callMethod способен блокировать поток выполнения модуля, тем более там получается довольно длинная цепочка. 2. В этом методе есть еще поиск объекта, возможно лагает он. 3. Я проверял все объекты связанные с броадлинк, включение, при нажатии на кнопку тест в разделе редактирования методов, выполняется почти мгновенно.
crazy_russian_bear
Сообщения: 33
Зарегистрирован: Пт авг 03, 2018 5:47 pm
Благодарил (а): 2 раза
Поблагодарили: 2 раза

Re: Скорость работы Majordomo на разном железе (Raspberry, Intel PC, etc..)

Сообщение crazy_russian_bear » Пн ноя 12, 2018 9:23 am

Пока выложу лог, который получился. Дебаги поставил в скрипте xiaomihome.class.php
09:09:15 0.57258000 Recive motion - пришло сообщение от датчика
09:09:15 0.58363100 Xiaomi motion complete setGlobal - в этот момент прошли записи в бд, связанные с сообщением. Никаких задержек нету
09:09:15 0.58383500 Start call method XMotion_ванная motionDetected - дебаг перед вызовом связанного метода
09:09:15 0.98176800 Xiaomi motion update complete!! - завершение метода. Т.е. вся обработка сообщения и вызова метода на выключатели заняли пол секунды. И свет включился без задержки.

А вот лог с другого датчика через несколько минут
09:09:22 0.71682000 Start call method XMotion_туалет motionDetected
09:09:26 0.26229200 Xiaomi motion update complete!!

Разница почти 4 секунды. И визуально я эту задержку включения света в 4 секунды наблюдал.
VladPTZ
Сообщения: 395
Зарегистрирован: Вт май 31, 2016 6:56 pm
Откуда: Россия Карелия Петрозаводск
Благодарил (а): 95 раз
Поблагодарили: 57 раз

Re: Скорость работы Majordomo на разном железе (Raspberry, Intel PC, etc..)

Сообщение VladPTZ » Пн ноя 12, 2018 9:35 am

crazy_russian_bear писал(а):
Пн ноя 12, 2018 12:24 am
Товарищи, у кого есть задержки, к какому модулю (устройствам) привязаны ваши датчики? Какие выключатели/реле включают?
Датчики включают выключатели sonoff с собственной прошивкой через http запросы.
Сервер МД на x86 micro pc ssd + HDD, OC Debian, терминал Xiaomi Redmi note 7
Мои исходники для мд управляемых устройств https://github.com/vgamaev/ESPMDDEVICE
crazy_russian_bear
Сообщения: 33
Зарегистрирован: Пт авг 03, 2018 5:47 pm
Благодарил (а): 2 раза
Поблагодарили: 2 раза

Re: Скорость работы Majordomo на разном железе (Raspberry, Intel PC, etc..)

Сообщение crazy_russian_bear » Пн ноя 12, 2018 10:42 am

VladPTZ писал(а):
Пн ноя 12, 2018 9:35 am
crazy_russian_bear писал(а):
Пн ноя 12, 2018 12:24 am
Товарищи, у кого есть задержки, к какому модулю (устройствам) привязаны ваши датчики? Какие выключатели/реле включают?
Датчики включают выключатели sonoff с собственной прошивкой через http запросы.
А сколько у вас всего устройств от ксаоми подключенных к МД? Включая датчики температуры, открытия/закрытия, движения, в общем все, которые шлют с определенной периодичностью сообщения?
Сейчас прихожу к выводу, что задержка складывается из 2 составляющих. 1. Это обработка сообщений 2. Отправка сообщения на броадлинк
И обе эти задержки могут колебаться. Например вижу, что идет задержка включения света. Лезу в логи, а там в этот момент помимо вызова метода от датчика движения, вызвались еще 20 методов от датчика температуры и прочих датчиков движения, которые послали no_motion. В итоге идет лаг. Но опять же это не точно. Пока нету четкого понимания, как выполняются методы, есть ли какой-нибудь параллелизм или все вызовы блокирующие.
VladPTZ
Сообщения: 395
Зарегистрирован: Вт май 31, 2016 6:56 pm
Откуда: Россия Карелия Петрозаводск
Благодарил (а): 95 раз
Поблагодарили: 57 раз

Re: Скорость работы Majordomo на разном железе (Raspberry, Intel PC, etc..)

Сообщение VladPTZ » Пн ноя 12, 2018 11:05 am

10 устройств и шлюз xiaomi
5 датчиков движения
2 кнопки
2 датчика протечки
1 датчик вибрации
Сервер МД на x86 micro pc ssd + HDD, OC Debian, терминал Xiaomi Redmi note 7
Мои исходники для мд управляемых устройств https://github.com/vgamaev/ESPMDDEVICE
crazy_russian_bear
Сообщения: 33
Зарегистрирован: Пт авг 03, 2018 5:47 pm
Благодарил (а): 2 раза
Поблагодарили: 2 раза

Re: Скорость работы Majordomo на разном железе (Raspberry, Intel PC, etc..)

Сообщение crazy_russian_bear » Пн ноя 12, 2018 11:39 am

Скорее всего у вас такая же ситуация как и у меня
10:58:55 0.55968700 {"cmd":"report","model":"motion","sid":"158d00023ec821","short_id":22706,"data":"{\"status\":\"motion\"}"}
10:58:55 0.56300100 Recive motion
10:58:55 0.56682700 Xiaomi motion start SQLSelectOne cmd_rec
10:58:55 0.56932500 Xiaomi motion complete SQLSelectOne cmd_rec
10:58:55 0.56972600 Xiaomi motion start SQLUpdate cmd_rec
10:58:55 0.57129100 Xiaomi motion , SQLUpdate cmd_rec
10:58:55 0.58437300 Xiaomi motion completesetGlobal cmd_rec
10:58:55 0.58474500 Start call method XMotion_ванная motionDetected
10:58:55 0.66857900 Start execute method XMotion_ванная statusUpdated
10:58:55 0.67079300 Method update complete XMotion_ванная statusUpdated
10:58:55 0.69729700 Start execute method XMotion_ванная setUpdatedText
10:58:55 0.69885800 Method update complete XMotion_ванная setUpdatedText
10:58:55 0.70655900 Method execute complete setUpdatedText
10:58:55 0.72224600 Start execute method XMotion_ванная logicAction
10:58:55 0.72355900 Method update complete XMotion_ванная logicAction
10:58:55 0.72399300 Method execute complete logicAction
10:58:55 0.72509000 Method execute complete statusUpdated
10:58:55 0.77800000 Start execute method Выключатель_ванная_зеркало statusUpdated
10:58:55 0.77932600 Method update complete Выключатель_ванная_зеркало statusUpdated
10:58:55 0.79155000 Start execute method Выключатель_ванная_зеркало setUpdatedText
10:58:55 0.79277400 Method update complete Выключатель_ванная_зеркало setUpdatedText
10:58:55 0.80031800 Method execute complete setUpdatedText
10:58:55 0.81992800 Start execute method Выключатель_ванная_зеркало logicAction
10:58:55 0.82113900 Method update complete Выключатель_ванная_зеркало logicAction
10:58:55 0.82151400 Method execute complete logicAction
10:58:55 0.82258500 Method execute complete statusUpdated
//здесь заканчивается вызов связанных методов
10:58:55 0.97326200 Xiaomi motion update complete!!
// Вот здесь внезапно идет поиск совершенно не связанного объекта и тратиться на это 2 секунды
10:58:58 0.18632600 Object founded, start call method Выключатель_прихожая
10:58:58 0.19567600 Start execute method Выключатель_прихожая setUpdatedText
10:58:58 0.19770400 Method update complete Выключатель_прихожая setUpdatedText
10:58:58 0.21025900 Method execute complete setUpdatedText
// Еще секунда чтобы обновить этот непонятный объект и потом только отправка сообщения на броадлинк
10:58:59 0.73645700 Broadlink packet checked 16 16 72
10:58:59 0.77492200 Message sended
10:58:59 0.79667800 Broadlink packet checked 16 16 72
10:58:59 0.92516500 Message sended

В итоге задержка в несколько секунд. А бывает, что это полотно из методов просто огромное, обновляется все подряд, выключатель в коридоре, датчики температуры в детской и прочее. И в итоге задержка может быть в 10 и более секунд. На 1м этапе нужно пройтись по связанным объектам и методам и понять, почему приходит motion от одного датчика, а обновляться начинает все подряд.
Потом нужно что-то придумать, когда приходят сообщения сразу от нескольких датчиков. Тут нужна какая-то очередь с приоритетом, чтобы события от датчиков движения и датчиков закрытия обрабатывались в первую очередь
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Скорость работы Majordomo на разном железе (Raspberry, Intel PC, etc..)

Сообщение skysilver » Пн ноя 12, 2018 12:02 pm

crazy_russian_bear писал(а):
Пн ноя 12, 2018 12:24 am
Я не уверен, что метод callMethod способен блокировать поток выполнения модуля.
Способен, если в пользовательских методах есть какой-либо треш, например sleep() или еще чего.

Попробуй замени в callMethod($cmd_rec['LINKED_OBJECT'] . '.' . $cmd_rec['LINKED_METHOD'], $message_data['data']);
callMethod() на callMethodSafe()

https://github.com/sergejey/majordomo-x ... s.php#L722
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Скорость работы Majordomo на разном железе (Raspberry, Intel PC, etc..)

Сообщение skysilver » Пн ноя 12, 2018 12:20 pm

crazy_russian_bear писал(а):
Пн ноя 12, 2018 11:39 am
// Вот здесь внезапно идет поиск совершенно не связанного объекта и тратиться на это 2 секунды
10:58:58 0.18632600 Object founded, start call method Выключатель_прихожая
10:58:58 0.19567600 Start execute method Выключатель_прихожая setUpdatedText
А это откуда? В какое место вставлял дебмес, чтобы увидеть?
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Ответить