Страница 1 из 2

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

Добавлено: Ср окт 09, 2019 11:53 am
ksv
Сложилась такая ситуация.
Возникла необходимость временно физически отключить от системы один внешний контроллер с группой датчиков. Контроллер подключен к МД по MQTT. Серверу контроллер передаёт состояния своих датчиков и свой uptime. Значение uptime я записываю в свойство Status объекта SDiveces, описывающего контроллер. Так вот, если с датчиками всё нормально - их обновление прервалось в момент отключения, то со свойством status самого контроллера непонятно. Значение статуса там сохранилось последнее (uptime в момент отключения), всё норм. И больше это значение не обновляется. Но свойство updatedText при этом продолжает обновляться ежечасно, но не в ноль минут, а в 04 минуты каждого часа, именно в 04 минуты и было произведено отключение контроллера. То есть я вижу, что данные как бы обновляются каждый час, но сами данные (свойство status) не меняеются. В MQTT видно, что последнее обновление значения было в момент отключения, новых данных никоткуда не поступает. А свойство updatedText обновляется, и свойство alive стоит в еденице. Кто может дёргать метод statusUpdated, где это посмотреть? По поиску в системе никаких левых вызовов я не вижу.

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

Добавлено: Ср окт 09, 2019 12:03 pm
fandaymon
ksv писал(а):
Ср окт 09, 2019 11:53 am
Кто может дёргать метод statusUpdated, где это посмотреть? По поиску в системе никаких левых вызовов я не вижу.
Обновления статусов смотреть в таймерах (X-Ray Timers)

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

Добавлено: Ср окт 09, 2019 12:06 pm
ksv
Ну ок, вызов там есть, и запланирован на 13:04. А кто его запланировал, кто его вызывает?

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

Добавлено: Ср окт 09, 2019 12:18 pm
fandaymon
ksv писал(а):
Ср окт 09, 2019 12:06 pm
Ну ок, вызов там есть, и запланирован на 13:04. А кто его запланировал, кто его вызывает?
Простые устройства

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

Добавлено: Ср окт 09, 2019 12:28 pm
ksv
Но у меня их нет. Я не использую.

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

Добавлено: Ср окт 09, 2019 12:45 pm
fandaymon
ksv писал(а):
Ср окт 09, 2019 12:28 pm
Но у меня их нет. Я не использую.
Класс SDiveces это они и есть. У этого класса свои свойства и свои методы, в том числе обновление статуса по таймеру

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

Добавлено: Ср окт 09, 2019 12:53 pm
ksv
То есть имеется ввиду, что класс SDevices заточен под какие-то стандартные физические девайсы, у которых статус автоматом запрашивается по таймеру и ответ записывается в status?

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

Добавлено: Ср окт 09, 2019 1:08 pm
fandaymon
ksv писал(а):
Ср окт 09, 2019 12:53 pm
То есть имеется ввиду, что класс SDevices заточен под какие-то стандартные физические девайсы, у которых статус автоматом запрашивается по таймеру и ответ записывается в status?
Класс SDevices заточен под ПУ 8-) Насколько я смотрел код - по таймеру определяется alive и проставляется текстовой статус - движение было 1 мин назад, 5 мин назад и т.д. Отсчёт перезапускается, когда от устройства приходит статус, например если сработал датчик движения. Опрос статуса по таймеру обычно заложен в специализированных модулях.

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

Добавлено: Ср окт 09, 2019 1:11 pm
ksv
Так я не понял всё равно. Почему у меня опрос по таймеру сам по себе работает, хотя я просто создал экземпляр стандартного класса SDevices? Это можно отключить? Или надо делать своё свойство и самому следить за его обновлением как мне надо?

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

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