Конструктор сложных сценариев - noant/Lazurite GitHub Wiki
Для сложного сценария характерно использование циклов, условий, остановок выполнения, запуск других сценариев и т.д. Для того, чтобы начать создавать алгоритм работы сценария, нужно нажать на "+" в конструкторе.
Меню выбора действий.
При выборе пункта меню "Выполнить действие" будет создан блок, который можно настроить на выполнение действия из плагина.
Изначально он будет иметь одну кнопку - это выбор действия из плагина. Не все действия могут быть доступны, так как некоторые из них "только для чтения" и их можно будет выбрать только в правой части выражения.
После выбора действия можно будет настроить его параметры, нажав на вторую кнопку созданной строки, если позволяет сам плагин. На изображении ниже показан пример с выбором цвета для RGB контроллера Z-Wave для светодиодной ленты. Так как в данном примере параметр имеет тип Статус, то в правой части выражения ему можно присвоить значение из списка.
На изображении ниже был добавлен еще один блок, который выполнится вслед за первым. Он имеет тип Кнопка, поэтому у него нет правой части выражения. Нельзя присвоить значение параметру с типом Кнопка, так как кнопка не принимает ничего на вход.
Условия в Lazurite эквивалентны условиям из языков программирования. Они обеспечивают ветвление выполнения в сценарии. Любое условие в Lazurite имеет три части: блок условий, блок выполнения, блок "иначе".
Блоки выполнения здесь абсолютно эквивалентны корневому блоку выполнения сценария, т.е. там можно добавить уже другие условия, циклы и т.д.
Блок условия отличается от блоков выполнения, здесь уже нельзя создать циклы и т.д. Для создания условия необходимо знать, какие параметры необходимо сравнивать. В Lazurite можно сравнивать значения со всеми типами данных, кроме кнопки, так как кнопка не возвращает и не принимает никакого значения.
Для типов данных Число и Дата доступны такие операторы отношения, как ">", "<", ">=", "<=", "!=", "==" (больше, меньше, больше или равно, меньше или равно, не равно, равно). Для других типов данных доступны только "!=" и "==". Помимо этого, перед каждым выражением можно вставить логический оператор "И", "ИЛИ", "НЕ".
Выбор оператора отношения.
![]()
Выбор логического оператора.
![]()
![]()
Помимо прочего, можно сравнивать два блока условий.
Два блока условий, связанные друг с другом через логический оператор "ИЛИ".
![]()
В Lazurite можно создать цикл "ПОКА". Этот цикл состоит из условия и тела выполнения. Во время выполнения сценария тело цикла будет запускаться до тех пор, пока условие цикла будет в значении "ПРАВДА".
Пока влажность в комнате меньше или равно 40%, то регулировать влажность.
![]()