Планирование времени простоя для устройства

Устройство в назначенный период времени должно периодически подвергаться профилактическому осмотру/ремонту. Это означает, что устройство не будет доступно для SberMobile во время данного периода, и оно не будет синхронизировано с сервером. Система не должна генерировать предупреждение о недоступности устройства во время назначенного времени простоя.

В этом уроке показано, как использовать выражение зависимости устройства, чтобы временно отключить синхронизацию устройства в определенное время.

Хотя выражения зависимости чаще всего используются для проверки статуса другого устройства и отключения синхронизации, если указанное устройство опущено, их также можно использовать и для проверки текущего времени.

Назначение времени простоя в абсолютном времени

В этом случае мы установим выражение зависимости, которое разрешается в FALSE за определенный интервал времени или в TRUE в ином случае. Мы будем использовать функцию now() , которая возвращает текущую временную метку (т.е. время проверки зависимости) и функцию date() , которая создает временную метку из аргументов года, месяца, дня, часов и минут. Описания этих функций доступны в здесь. Обратите внимание, что аргумент месяца функции даты () основан на нуле, поэтому следует присвоить январю 0.

Давайте назначим время простоя для устройства на 08 фев 2010 с 18:00 до 20:00. Наше выражение зависимости выглядит следующим образом:

now() < date(2010, 1, 8, 18, 0, 0) || now() > date(2010, 1, 8, 20, 0, 0)

Свойства учетной записи устройства в SberMobile IIoT Platform Client:

Выражение, которое назначает для времени простоя целый день:

now() < date(2010, 1, 8, 0, 0, 0) || now() > date(2010, 1, 9, 0, 0, 0)

Назначение периодического времени простоя

Этот же метод можно использовать для назначения периодического времени простоя. В этом случае выражение зависимости будет использовать другие функции обработки данных/времени для установления вывода текущей функции ().

Ниже приводится выражение зависимости, которое отключает синхронизацию устройства каждый понедельник:

dayOfWeek(now()) != 1

Обратите внимание, что функция dayOfWeek() возвращает нуль для воскресенья. Используется оператор "Не равен" ("Not equals"), поскольку выражение зависимости должно возвращать TRUE (чтобы включить синхронизацию), когда текущий день не понедельник.

Чтобы назначить время простоя для каждой среды с 22:00 до 23:00:

!(dayOfWeek(now()) == 3 && hour(now()) > 22 && hour(now()) < 23)

Альтернативный метод назначения времени простоя для устройства - использовать планировщик задач, чтобы активировать/деактивировать свойство Временно отключить устройство учетной записи устройства в определенное время.