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

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

Модератор: immortal

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

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

Сообщение ksv » Ср окт 09, 2019 11:53 am

Сложилась такая ситуация.
Возникла необходимость временно физически отключить от системы один внешний контроллер с группой датчиков. Контроллер подключен к МД по MQTT. Серверу контроллер передаёт состояния своих датчиков и свой uptime. Значение uptime я записываю в свойство Status объекта SDiveces, описывающего контроллер. Так вот, если с датчиками всё нормально - их обновление прервалось в момент отключения, то со свойством status самого контроллера непонятно. Значение статуса там сохранилось последнее (uptime в момент отключения), всё норм. И больше это значение не обновляется. Но свойство updatedText при этом продолжает обновляться ежечасно, но не в ноль минут, а в 04 минуты каждого часа, именно в 04 минуты и было произведено отключение контроллера. То есть я вижу, что данные как бы обновляются каждый час, но сами данные (свойство status) не меняеются. В MQTT видно, что последнее обновление значения было в момент отключения, новых данных никоткуда не поступает. А свойство updatedText обновляется, и свойство alive стоит в еденице. Кто может дёргать метод statusUpdated, где это посмотреть? По поиску в системе никаких левых вызовов я не вижу.
fandaymon
Сообщения: 1554
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

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

Сообщение fandaymon » Ср окт 09, 2019 12:03 pm

ksv писал(а):
Ср окт 09, 2019 11:53 am
Кто может дёргать метод statusUpdated, где это посмотреть? По поиску в системе никаких левых вызовов я не вижу.
Обновления статусов смотреть в таймерах (X-Ray Timers)
За это сообщение автора fandaymon поблагодарил:
ksv (Ср окт 09, 2019 1:46 pm)
Рейтинг: 1.16%
ksv
Сообщения: 102
Зарегистрирован: Вт июл 17, 2018 10:19 am
Благодарил (а): 23 раза
Поблагодарили: 4 раза

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

Сообщение ksv » Ср окт 09, 2019 12:06 pm

Ну ок, вызов там есть, и запланирован на 13:04. А кто его запланировал, кто его вызывает?
fandaymon
Сообщения: 1554
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

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

Сообщение fandaymon » Ср окт 09, 2019 12:18 pm

ksv писал(а):
Ср окт 09, 2019 12:06 pm
Ну ок, вызов там есть, и запланирован на 13:04. А кто его запланировал, кто его вызывает?
Простые устройства
ksv
Сообщения: 102
Зарегистрирован: Вт июл 17, 2018 10:19 am
Благодарил (а): 23 раза
Поблагодарили: 4 раза

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

Сообщение ksv » Ср окт 09, 2019 12:28 pm

Но у меня их нет. Я не использую.
fandaymon
Сообщения: 1554
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

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

Сообщение fandaymon » Ср окт 09, 2019 12:45 pm

ksv писал(а):
Ср окт 09, 2019 12:28 pm
Но у меня их нет. Я не использую.
Класс SDiveces это они и есть. У этого класса свои свойства и свои методы, в том числе обновление статуса по таймеру
За это сообщение автора fandaymon поблагодарил:
ksv (Ср окт 09, 2019 1:47 pm)
Рейтинг: 1.16%
ksv
Сообщения: 102
Зарегистрирован: Вт июл 17, 2018 10:19 am
Благодарил (а): 23 раза
Поблагодарили: 4 раза

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

Сообщение ksv » Ср окт 09, 2019 12:53 pm

То есть имеется ввиду, что класс SDevices заточен под какие-то стандартные физические девайсы, у которых статус автоматом запрашивается по таймеру и ответ записывается в status?
fandaymon
Сообщения: 1554
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

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

Сообщение fandaymon » Ср окт 09, 2019 1:08 pm

ksv писал(а):
Ср окт 09, 2019 12:53 pm
То есть имеется ввиду, что класс SDevices заточен под какие-то стандартные физические девайсы, у которых статус автоматом запрашивается по таймеру и ответ записывается в status?
Класс SDevices заточен под ПУ 8-) Насколько я смотрел код - по таймеру определяется alive и проставляется текстовой статус - движение было 1 мин назад, 5 мин назад и т.д. Отсчёт перезапускается, когда от устройства приходит статус, например если сработал датчик движения. Опрос статуса по таймеру обычно заложен в специализированных модулях.
За это сообщение автора fandaymon поблагодарил:
ksv (Ср окт 09, 2019 1:46 pm)
Рейтинг: 1.16%
ksv
Сообщения: 102
Зарегистрирован: Вт июл 17, 2018 10:19 am
Благодарил (а): 23 раза
Поблагодарили: 4 раза

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

Сообщение ksv » Ср окт 09, 2019 1:11 pm

Так я не понял всё равно. Почему у меня опрос по таймеру сам по себе работает, хотя я просто создал экземпляр стандартного класса SDevices? Это можно отключить? Или надо делать своё свойство и самому следить за его обновлением как мне надо?
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

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

Сообщение tarasfrompir » Ср окт 09, 2019 1:13 pm

ksv писал(а):
Ср окт 09, 2019 1:11 pm
Так я не понял всё равно. Почему у меня опрос по таймеру сам по себе работает, хотя я просто создал экземпляр стандартного класса SDevices? Это можно отключить? Или надо делать своё свойство и самому следить за его обновлением как мне надо?
Если не нужны ПУ - отключи их в конфиге...
Спасибо нам ПОМОЖЕТ..!
Ответить