Для начала, если вы перейдете в раздел Сценариев, который расположен в настройках, то слева вы увидите четыре типа сценариев.
- Блочные - основные пользовательские сценарии, которые используются больше всего. Единственные, которые имеют визуальную блочную структуру.
- Логические сценарии - это скрипты, которые могут быть назначены на различные устройства, например датчики движения или другие подобные устройства. Они создаются пока исключительно с помощью кода и требуют знания структуры.
- Шаблоны - это шаблоны для различных сценариев
- Глобальные - это сценарии, которые можно вызывать из других сценариев на любом уровне, передавая им определенные данные и получать определенные ответы. Например сценарий для уведомлений через бота в Телеграм - именно глобальный, так как должен вызываться из любого уровня. Тоже создаются пока исключительно с помощью кода и требуют знания структуры.
Обычные блочные сценарии - не требуют программирования и создаются за счет визуального интерфейса.
В логических и глобальных сценариях - используется JavaScript на базе Nashorn. Поэтому для работы с этими видами сценариев - необходимо обладание навыками программирования. При этом эти типы сценариев, обитают в ограниченной "песочнице", в которой доступна работа с сервисами и характеристиками аксессуаров, а также некоторый набор функций, типа HTTP запросов или работы с SSH.
В блочных сценариях тоже есть возможность использовать блоки кода, в которых используется тот же JavaScript.
Так что основными видами сценариев для пользователей - являются классические, визуальные и простые блочные сценарии.
О них и поговорим.
Общее окно управления сценариями
Главное окно блочных сценариев, позволяет:
- отобразить сценарии по комнатам
- изменить порядок выполнения сценариев
- загрузить/импортировать шаблон сценария
- создать новый сценарий
- посмотреть активность сценариев
Импорт и экспорт сценариев, позволяет делиться ими с другими пользователями.
При экспорте сценария - он обезличивается. Это означает, что даже если вы экспортировали а потом импортировали сценарий на одном и том же хабе - он будет обезличен и вам придется подставлять все аксессуары в сценарий заново
Создание блочного сценария
- добавить устройства в блоки, при этом можно добавлять и скрытые, а также изменять группировку отображения устройств
- добавлять устройства в сценарий путем перетаскивания из блока устройств в нужный блок сценария
- добавлять различные блоки в сценарий
- удалить сценарий
- изменить настройки сценария
- удалить сценарий
- запустить его для проверки
- сохранить как шаблон - экспорт шаблона сценария для отправки или сохранения. Экспортированный шаблон, может импортировать любой пользователь Sprut.hub
- сохранить изображение сценария
Настройки сценария
В настройках можно изменить:
- выполнение сценария при старте хаба
- включить или выключить сценарий
- включить режим последовательного выполнения, который учитывает сортировку сценариев для их запуска, которая настраивается в общем окне управления сценариями
Блоки сценария
У разделов Если и Тогда - различный набор допустимых блоков
В разделе Если, вам доступно добавление следующих блоков:
- добавить сервис (устрйоства)
- добавить дополнительный блок условий (следующий уровень Если)
- добавить планировщик
- добавить условие в виде кода
- добавить глобальный раздел Иначе в сценарий
В разделе Тогда, перечень уже немного другой:
- добавить сервис (Устройство)
- добавить дополнительный блок условий
- добавить задержку
- добавить очистку задержки
- добавить запуск дочернего сценария
- добавить блок кода
- добавить уведомление в веб интерфейсе
- добавить глобальный блок Иначе
У раздела Иначе, набор возможных к добавлению блоков похож на набор для раздела Тогда за одним исключением:
- в этом меню можно удалить раздел Иначе
Внутрь блока задержки, также можно добавить элементы, просто нажав по названию "Задержка"
Что делает значок бесконечности в сценариях
Во всех блочных сценариях, в блоке если есть значок бесконечности. Он предназначен для включения или отключения срабатывания блока если при выполнении условия
В указанном примере:
при включенном значке бесконечности
- выключатель будет выключаться каждый раз, когда ваттметр пришлет показания, которые больше 10 Вт и включаться каждый раз, когда ваттметр будет присылать показания меньше или равно 10 Вт
- выключатель будет включаться каждый раз, когда ваттметр будет присылать показания меньше или равно 10 Вт
при выключенном значке бесконечности:
- сценарий сработает только один раз при превышении ваттметром значения в 10 Вт и выключит выключатель
- сценарий сработает только однажды при получении значения ваттметра меньше или равно 10 Вт и включит выключатель
Так как подобные устройства (ваттметры, датчики температуры, влажности и т.п.) обновляют показания постоянно, если их показания совпадают с условием при каждом обновлении (а у некоторых датчиков это может происходить даже чаще одного раза в секунду), то каждое новое показание будет запускать сценарий при включенной бесконечности.
При выключенной бесконечности, если, например температура, будет всегда выше установленного порога - сценарий выполнит условие только один раз до тех пор, пока температура не пересечет указанный в блоке Если порог в обратную сторону.