Как вызывается метод statusUpdated у Devices? (2)

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

ksv
Сообщения: 96
Зарегистрирован: Вт июл 17, 2018 10:19 am
Благодарил (а): 23 раза
Поблагодарили: 2 раза

Re: Как вызывается метод statusUpdated у Devices? (2)

Сообщение ksv » Ср дек 18, 2019 1:06 am

Дошло наконец. Спасибо.
ksv
Сообщения: 96
Зарегистрирован: Вт июл 17, 2018 10:19 am
Благодарил (а): 23 раза
Поблагодарили: 2 раза

Re: Как вызывается метод statusUpdated у Devices? (2)

Сообщение ksv » Ср дек 18, 2019 1:18 am

Но проблема таки не решена.
То, что UpdatedText меняется я понял. Просто у меня уже давно был переопределен этот метод, я убрал относительный вывод времени типа "1 минуту назад" и ввёл точное абсолютное время последнего обновления, поэтому для меня уже стал неочевидным этот регулярный вызов UpdatedText .

Проблема же в том, что ежечасно это время обновляется даже тогда, когда Status не обновляется.
Ок, вопрос "зачем" обновляется UpdatedText закрыт, с этим ясно.

Осталось выяснить почему меняется само время последнего обновления статуса в то время как сам статус не меняется. То есть датчик отвалился, а время его обновления каждый час увеличивается на час. А ещё я помню, что раньше это работало правильно, но после каких-то моих изменений стало работать некорректно. Поэтому и вопрос-то в самом начале был такой - как именно искать кто вызывает? Как дебажить, как найти источники вызова?
fandaymon
Сообщения: 973
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 31 раз
Поблагодарили: 403 раза

Re: Как вызывается метод statusUpdated у Devices? (2)

Сообщение fandaymon » Ср дек 18, 2019 1:24 am

ksv писал(а):
Ср дек 18, 2019 1:18 am
Но проблема таки не решена.
То, что UpdatedText меняется я понял. Просто у меня уже давно был переопределен этот метод, я убрал относительный вывод времени типа "1 минуту назад" и ввёл точное абсолютное время последнего обновления, поэтому для меня уже стал неочевидным этот регулярный вызов UpdatedText .

Проблема же в том, что ежечасно это время обновляется даже тогда, когда Status не обновляется.
Ок, вопрос "зачем" обновляется UpdatedText закрыт, с этим ясно.

Осталось выяснить почему меняется само время последнего обновления статуса в то время как сам статус не меняется. То есть датчик отвалился, а время его обновления каждый час увеличивается на час. А ещё я помню, что раньше это работало правильно, но после каких-то моих изменений стало работать некорректно. Поэтому и вопрос-то в самом начале был такой - как именно искать кто вызывает? Как дебажить, как найти источники вызова?
По идее, в относительно последних версиях МДМ при изменении значения в $params['SOURCE'] хранится что именно изменило значение. Все эти парамс можно посмотреть в X_RAY - Methods. Но я боюсь, что если где-то что-то переопределено, то оно будет работать совсем не так как задумано автором
За это сообщение автора fandaymon поблагодарил:
ksv (Ср дек 18, 2019 1:40 am)
Рейтинг: 1.25%
ksv
Сообщения: 96
Зарегистрирован: Вт июл 17, 2018 10:19 am
Благодарил (а): 23 раза
Поблагодарили: 2 раза

Re: Как вызывается метод statusUpdated у Devices? (2)

Сообщение ksv » Ср дек 18, 2019 1:40 am

Спасибо за подсказку, да, есть там источник. Пока все датчики работают никаких левых вызовов не видно. Буду тестировать, надо будет принудительно отключить датчик и проверить.
Logrus
Сообщения: 1539
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 262 раза
Поблагодарили: 281 раз

Re: Как вызывается метод statusUpdated у Devices? (2)

Сообщение Logrus » Ср дек 18, 2019 2:14 am

ksv писал(а):
Вт дек 17, 2019 11:57 pm
fandaymon писал(а):
Вт дек 17, 2019 11:53 pm
Так оно и должно обновляться . Сначала каждую минуту, потом каждые 5, потом каждый час и т.д.
Прочтите первый пост внимательнее, пожалуйста. Понятно, что оно должно обновляться. Потому что так написан код. Вопрос - зачем? Второй вопрос - через 20 часов оно должно перестать обновляться, это тоже следует из кода (если я конечно верно его понял). Не перестаёт. Почему?
в статусапдейт можно у себя убрать вызов setUpdatedText так что обновление это ломать не будет, аналогично можно изменить логику аливе, метод вызывается по изменению свойства - кто его при мертвом датчике меняет, вопрос?
Мой CONNECT | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо - ТАМ =>
Ответить