Условия перехода состояния

Условия перехода состояния

Условия перехода состояния ​

Условия перехода состояния – набор пользовательских условий, которые определяют когда объект должен изменить своё состояние.

Условия перехода состояния можно задать в соответствующей секции сущностей. Условия перехода состояния по умолчанию для объектов можно задать с помощью классов.

Алгоритм выбора данных для нескольких условий ​

Если у сущности задано несколько условий перехода состояний, то система применяет следующий алгоритм:

  • для первого условия система производит поиск по всему доступному набору данных и возвращает набор из всех найденных совпадений;
  • для второго и последующих условий система ищет не по всему набору доступных сущности данных, а по набору оставшемуся после фильтрации в предыдущем условии.

Таким образом с каждой проверкой происходит "сужение" проверяемого набора данных.

Приоритетность условий ​

Проверка условий работает сверху вниз до первого выполненного условия. Чем выше запись, тем приоритетнее условие.

Порядок записей можно менять перетаскиванием за иконку .

Если ни одно из условий не выполнено, то объект переходит в состояние по умолчанию NO DATA с указанием причины Нет подходящего условия.

NOTE

Состояние по умолчанию можно задать в параметре default_state_id в разделе Server конфигурационного файла сервера .

Если необходимо исключить ситуацию перехода в состояние по умолчанию по причине отсутствия подходящего условия, рекомендуется установить последним пустое условие с действием Не переводить состояние:

dont change state light

dont change state dark

NOTE

Описанный выше метод работает только для выполненной проверки , возвращающей данные. Если по каким-либо причинам проверка не выполняется, то объект будет принудительно переведён в состояние по умолчанию.

Этот способ также может быть полезен, если необходимо игнорировать некоторое значение или диапазон значений. Например, если необходимо проверить доступность некоторого ресурса с помощью HTTP-GET запроса, то настройка может быть такой:

  1. При 200-м коде ответа состояние меняется на WORKING.
  2. Если в течение более одной минуты код ответа отличен от 200-го, то состояние меняется на ALARM.
  3. В остальных случаях состояние не меняется.

Пример настройки:

example light

example dark