Логика
Основное назначение раздела Логика - поднять уровень абстракции с уровня моделей и элементарных составляющих устройства до полноценного автоматического взаимодействия с устройством в виде сценария автоматизации. Каждый сценарий автоматизации – это алгоритм, задающий логику поведения объекта. Прописав подобный сценарий, можно учитывать все изменения, которые происходят с устройством, и на основании того, какие именно изменения произошли, устройство сможет выполнять соответствующие действия автоматически, без отправки команды пользователем.
Сценарий автоматизации представляет собой конечный автомат и включает в себя состояния и переходы между ними:
-
Состояние характеризует период времени, в течение которого не происходило никаких изменений свойств процесса. Например, в автомат могут быть добавлены состояния: устройство включено, находится в покое, в движении, зафиксировано отклонение показаний. Если речь идет об автомобиле, то можно обозначить состояние поломки, угона, вход в определенную геозону и т. д.
-
Между состояниями совершаются переходы, которые характеризуют изменения свойств процесса. Переходы инициируются событиями, произошедшими в системе управления устройством. Также в переходе могут быть прописаны дополнительные условия. При срабатывании события и выполнении указанных условий реализуется переход между состояниями. Например, в условии может быть указано, что переход совершается при превышении указанного значения численным показателем датчика. Если зафиксировано, что значение данного показателя действительно превысило норму, то тогда происходит переход между состояниями системы. Переход всегда должен вести из одного состояния в другое.
Сценарий автоматизации, построенный при формировании состояний и переходов между ними, определяет логику автоматического управления объектом. Запуск сценария устраняет необходимость в постоянном мониторинге и контроле текущего состояния объекта путем выполнения каких-либо действий при срабатывании определенных событий.
Карточка автомата

-
Имя автомата
-
Описание автомата
-
Модель, используемая в автомате. Если моделей несколько, то рядом в круглых скобках указывается количество дополнительных моделей
-
Количество объектов, добавленных в автомат. Нажмите на него, чтобы применить фильтр к списку объектов и показать только те объекты, которые связаны с этим автоматом
Создание сценария автоматизации
Заголовок раздела «Создание сценария автоматизации»Для создания нового автомата перейдите на вкладку Логика. Добавьте автомат, нажав на плюсик.
Заполните следующие поля:
-
имя — наименование автомата;
-
описание — подробная характеристика автомата, заполняется при необходимости;
-
модель — выберите модель объекта, для которого будете формировать сценарий автоматизации. Если автомат будет включать в себя взаимодействие между несколькими объектами, выберите те модели, которые соответствуют этим объектам;
-
импорт — возможность импортировать готовый автомат в виде файла или по ссылке.


Нажмите кнопку Создать. Перед вами откроется новый автомат с минимальным набором элементов в рабочей области.

-
Состояние: Добавить новое состояние
-
Сохранить: Сохранить изменения автомата. Если ранее автомат был запущен на объектах, он продолжит работать в предыдущей версии. Для того чтобы изменения вступили в силу, автомат необходимо перезапустить на объекте
-
Экспорт .json: Экспортировать автомат в файл формата JSON
-
Обозначение начала исполнения сценария: Используется в любом автомате
-
Обозначение окончания исполнения сценария: Может не использоваться, если автомат предполагает циклическое выполнение без остановки
-
Состояние инициализации сценария: Присутствует в любом автомате
-
Состояние: В нем указываются действия, которые должны быть выполнены на входе и выходе
-
Переход: В нем задается событие (всегда) и условие (опционально), при которых происходит переход из одного состояния в другое
-
Minimap: Небольшое вспомогательное окно, отображающее весь автомат в целом. Перемещение по автомату может производиться как через minimap, так и непосредственно через рабочую область. Minimap можно скрыть, нажав на кнопку в ее правом верхнем углу
-
Кнопки для изменения масштаба
Состояния
Заголовок раздела «Состояния»Для добавления состояния нажмите кнопку Состояние.

Интерфейс состояния

-
Вход в состояние
-
Выход из состояния
-
Удаление состояния
-
Название состояния
-
Описание состояния
-
Добавление действий, которые будут выполняться при входе в состояние
-
Перечень выбранных действий на входе
-
Добавление действий, которые будут выполняться при выходе из состояния
-
Перечень выбранных действий на выходе
-
Изменение размеров состояния
Для того чтобы добавить в состояние действие, определите, когда оно должно выполняться: на входе или на выходе. После этого нажмите на соответствующую кнопку, чтобы открыть полный список действий в соответствии с заданной моделью. Этот перечень включает в себя как действия, определенные для каждой модели, так и команды, которые вы добавили. Из данного раскрывающегося списка выберите одну или несколько команд, которые должны быть выполнены на входе или на выходе из состояния.
Действия на входе в состояние выполняются при переходе в это состояние из любого другого. Действия на выходе из состояния выполняются при переходе из этого состояния в любое другое.
Запуск сценария автоматизации
Заголовок раздела «Запуск сценария автоматизации»Для того чтобы назначить автомат на объекты, перейдите в раздел Объекты.

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

Нажмите на кнопку Сохранить, объекты появятся в списке, который представляет из себя кликабельные строки. Выделите строки с теми объектами, для которых хотите запустить автомат, - они подсветятся голубым:
-
для выбора одного объекта, кликните на его строку;
-
для выбора нескольких непоследовательных строк, кликните на каждую из них, зажав клавишу Ctrl;
-
для выбора нескольких последовательных строк (диапазона), кликните на первой строке диапазона, зажмите клавишу Shift и кликните на последней строке диапазона;
-
для выбора всех объектов из списка нажмите кнопку Выбрать все.

Для всех выбранных объектов станут доступны кнопки Старт и Удалить.
Нажмите на кнопку Старт -статус автомата сменится на Запущен.
Теперь для объектов с запущенным автоматом доступны кнопки Стоп и Рестарт. Кнопка Стоп остановит выполнение автомата. Кнопка Рестарт аналогична последовательному нажатию кнопок Стоп и Старт и используется для перезапуска автомата после внесенных в него изменений.
Если сценарий был создан, сохранен и запущен, а затем перестроен и снова сохранен, то в этом случае обязательно необходимо его перезапустить, так как в противном случае будет исполняться старая версия автомата.
Детальную информацию о выполнении автомата на конкретном объекте можно получить в меню Объекты.

Обработка ошибок в редакторе автоматов
Заголовок раздела «Обработка ошибок в редакторе автоматов»Сущности модели и автомата тесно связаны, однако может возникнуть ситуация их несоответствия. Например, когда модель редактируется после создания автомата или при попытке использовать один автомат с разными моделями. Такая же проблема может возникнуть и при импорте автоматов со сторонних источников. Возникающие при этом ошибки приводят к тому, что в исполняемом автомате могут оказаться параметры, события и команды, которых нет в модели устройства. Соответственно, при исполнении такого автомата эти параметры не участвуют в проверке условий, события не вызывают переход, а команды не отправляются. Для того чтобы обратить внимание на такую проблему, в интерфейсе автомата есть дополнительная информация о возникающих ошибках. Наведите на восклицательный знак, чтобы узнать, в чем заключается проблема.

Автомат с ошибками может быть сохранен и запущен, но в этом случае нет гарантии корректного исполнения автомата, поэтому обращайте внимание на логи запущенного автомата.

Взаимодействие нескольких устройств в одном сценарии автоматизации
Заголовок раздела «Взаимодействие нескольких устройств в одном сценарии автоматизации»В автоматах есть возможность использовать несколько объектов внутри одного сценария. То есть можно организовать совместную работу разнородных объектов, которые подключены к платформе. Это позволяет более широко взглянуть на мир IoT, так как IoT — это именно взаимодействие между умными вещами.
Для того чтобы составить автомат взаимодействия нескольких устройств, добавьте в него модели тех объектов, между которыми будет настраиваться общая логика. Это могут быть объекты как с разными моделями, так и с одинаковыми.

Импорт/экспорт
Заголовок раздела «Импорт/экспорт»В автоматах также есть функция импорта/экспорта, для того чтобы делиться своими сценариями автоматизации.
Импорт производится при создании автомата.
Источники для импорта:
- файл

- ссылка, например, через raw-режим просмотра файлов на GitHub

Экспорт
Заголовок раздела «Экспорт»Для экспорта автомата нажмите на кнопку Экспорт .json.
