Сценарии в Sprut.hub - основные элементы управления

Материал из Sprut.hub Wiki

Для начала, если вы перейдете в раздел Сценариев, который расположен в настройках, то слева вы увидите четыре типа сценариев.

  • Блочные - основные пользовательские сценарии, которые используются больше всего. Единственные, которые имеют визуальную блочную структуру.
  • Логические сценарии - это скрипты, которые могут быть назначены на различные устройства, например датчики движения или другие подобные устройства. Они создаются пока исключительно с помощью кода и требуют знания структуры.
  • Шаблоны - это шаблоны для различных сценариев
  • Глобальные - это сценарии, которые можно вызывать из других сценариев на любом уровне, передавая им определенные данные и получать определенные ответы. Например сценарий для уведомлений через бота в Телеграм - именно глобальный, так как должен вызываться из любого уровня. Тоже создаются пока исключительно с помощью кода и требуют знания структуры.

Обычные блочные сценарии - не требуют программирования и создаются за счет визуального интерфейса.

В логических и глобальных сценариях - используется JavaScript на базе Nashorn. Поэтому для работы с этими видами сценариев - необходимо обладание навыками программирования. При этом эти типы сценариев, обитают в ограниченной "песочнице", в которой доступна работа с сервисами и характеристиками аксессуаров, а также некоторый набор функций, типа HTTP запросов или работы с SSH.

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

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

О них и поговорим.

Общее окно управления сценариями

Главное окно блочных сценариев, позволяет:

  • отобразить сценарии по комнатам
  • изменить порядок выполнения сценариев
  • загрузить/импортировать шаблон сценария
  • создать новый сценарий
  • посмотреть активность сценариев

Импорт и экспорт сценариев, позволяет делиться ими с другими пользователями.

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

Создание блочного сценария

  • добавить устройства в блоки, при этом можно добавлять и скрытые, а также изменять группировку отображения устройств
  • добавлять устройства в сценарий путем перетаскивания из блока устройств в нужный блок сценария
  • добавлять различные блоки в сценарий
  • удалить сценарий
  • изменить настройки сценария
  • удалить сценарий
  • запустить его для проверки
  • сохранить как шаблон - экспорт шаблона сценария для отправки или сохранения. Экспортированный шаблон, может импортировать любой пользователь Sprut.hub
  • сохранить изображение сценария

Настройки сценария

В настройках можно изменить:

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

Блоки сценария

У разделов Если и Тогда - различный набор допустимых блоков

В разделе Если, вам доступно добавление следующих блоков:

  • добавить сервис (устройства)
  • добавить дополнительный блок условий (следующий уровень Если)
  • добавить планировщик
  • добавить условие в виде кода
  • добавить глобальный раздел Иначе в сценарий

В разделе Тогда, перечень уже немного другой:

  • добавить сервис (Устройство)
  • добавить дополнительный блок условий
  • добавить задержку
  • добавить очистку задержки
  • добавить запуск дочернего сценария
  • добавить блок кода
  • добавить уведомление в веб интерфейсе
  • добавить глобальный блок Иначе

У раздела Иначе, набор возможных к добавлению блоков похож на набор для раздела Тогда за одним исключением:

  • в этом меню можно удалить раздел Иначе

Внутрь блока задержки, также можно добавить элементы, просто нажав по названию "Задержка"

Что делает значок бесконечности в сценариях

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

В указанном примере:

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

  • выключатель будет выключаться каждый раз, когда ваттметр пришлет показания, которые больше 10 Вт и включаться каждый раз, когда ваттметр будет присылать показания меньше или равно 10 Вт
  • выключатель будет включаться каждый раз, когда ваттметр будет присылать показания меньше или равно 10 Вт

при выключенном значке бесконечности:

  • сценарий сработает только один раз при превышении ваттметром значения в 10 Вт и выключит выключатель
  • сценарий сработает только однажды при получении значения ваттметра меньше или равно 10 Вт и включит выключатель

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

При выключенной бесконечности, если, например температура, будет всегда выше установленного порога - сценарий выполнит условие только один раз до тех пор, пока температура не пересечет указанный в блоке Если порог в обратную сторону.