Сценарии в Sprut.hub - основные элементы управления: различия между версиями
Bigmanekb (обсуждение | вклад) |
Bigmanekb (обсуждение | вклад) Нет описания правки |
||
Строка 105: | Строка 105: | ||
При выключенной бесконечности, если, например температура, будет всегда выше установленного порога - сценарий выполнит условие только один раз до тех пор, пока температура не пересечет указанный в блоке Если порог в обратную сторону. | При выключенной бесконечности, если, например температура, будет всегда выше установленного порога - сценарий выполнит условие только один раз до тех пор, пока температура не пересечет указанный в блоке Если порог в обратную сторону. | ||
Еще несколько особенностей на примерах: | |||
Если бесконечность включена у кнопки но выключена у датчика движения - то сценарий пришлет уведомление только один раз и не будет присылать до тех пор, пока датчик движения не сменит состояние (относительно того, в котором он сейчас находится) | |||
[[Файл:Сценарии 026 Кнопка и датчик.png|центр|обрамить]] | |||
А если выключить бесконечность еще и у кнопки, то если на нее нажимать однократно много раз - сработает только при первом совпадении. Потом сценарий просто не будет работать, пока на кнопку не нажмут каким либо другим образом (двойной или долгое) | |||
[[Файл:Сценарии 027 Кнопка и бесконечность.png|центр|обрамить]] | |||
__ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__ | __ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__ |
Версия от 15:43, 24 января 2024
Для начала, если вы перейдете в раздел Сценариев, который расположен в настройках, то слева вы увидите четыре типа сценариев.
- Блочные - основные пользовательские сценарии, которые используются больше всего. Единственные, которые имеют визуальную блочную структуру.
- Логические сценарии - это скрипты, которые могут быть назначены на различные устройства, например датчики движения или другие подобные устройства. Они создаются пока исключительно с помощью кода и требуют знания структуры.
- Шаблоны - это шаблоны для различных сценариев
- Глобальные - это сценарии, которые можно вызывать из других сценариев на любом уровне, передавая им определенные данные и получать определенные ответы. Например сценарий для уведомлений через бота в Телеграм - именно глобальный, так как должен вызываться из любого уровня. Тоже создаются пока исключительно с помощью кода и требуют знания структуры.
Обычные блочные сценарии - не требуют программирования и создаются за счет визуального интерфейса.
В логических и глобальных сценариях - используется JavaScript на базе Nashorn. Поэтому для работы с этими видами сценариев - необходимо обладание навыками программирования. При этом эти типы сценариев, обитают в ограниченной "песочнице", в которой доступна работа с сервисами и характеристиками аксессуаров, а также некоторый набор функций, типа HTTP запросов или работы с SSH.
В блочных сценариях тоже есть возможность использовать блоки кода, в которых используется тот же JavaScript.
Так что основными видами сценариев для пользователей - являются классические, визуальные и простые блочные сценарии.
О них и поговорим.
Видео инструкция по базовым элементам управления сценариями
Описание базовых элементов управления сценариями и базовых принципах их работы (с голосовыми комментариями)
Общее окно управления сценариями
Главное окно блочных сценариев, позволяет:
- отобразить сценарии по комнатам
- изменить порядок выполнения сценариев
- загрузить/импортировать шаблон сценария
- создать новый сценарий
- посмотреть активность сценариев
Импорт и экспорт сценариев, позволяет делиться ими с другими пользователями.
При экспорте сценария - он обезличивается. Это означает, что даже если вы экспортировали а потом импортировали сценарий на одном и том же хабе - он будет обезличен и вам придется подставлять все аксессуары в сценарий заново
Создание блочного сценария
- добавить устройства в блоки, при этом можно добавлять и скрытые, а также изменять группировку отображения устройств
- добавлять устройства в сценарий путем перетаскивания из блока устройств в нужный блок сценария
- добавлять различные блоки в сценарий
- удалить сценарий
- изменить настройки сценария
- удалить сценарий
- запустить его для проверки
- сохранить как шаблон - экспорт шаблона сценария для отправки или сохранения. Экспортированный шаблон, может импортировать любой пользователь Sprut.hub
- сохранить изображение сценария
Настройки сценария
В настройках можно изменить:
- выполнение сценария при старте хаба
- включить или выключить сценарий
- включить режим последовательного выполнения, который учитывает сортировку сценариев для их запуска, которая настраивается в общем окне управления сценариями
Блоки сценария
На надписи "Если", "Тогда" и "Иначе" - можно нажимать и они открывают такое же меню, как если нажать на обычный "+" внутри блока
У разделов Если и Тогда - различный набор допустимых блоков
В разделе Если, вам доступно добавление следующих блоков:
- добавить сервис (устройства)
- добавить дополнительный блок условий (следующий уровень Если)
- добавить планировщик
- добавить условие в виде кода
- добавить глобальный раздел Иначе в сценарий
В разделе Тогда, перечень уже немного другой:
- добавить сервис (Устройство)
- добавить дополнительный блок условий
- добавить задержку
- добавить очистку задержки
- добавить запуск дочернего сценария
- добавить блок кода
- добавить уведомление в веб интерфейсе
- добавить глобальный блок Иначе
У раздела Иначе, набор возможных к добавлению блоков похож на набор для раздела Тогда за одним исключением:
- в этом меню можно удалить раздел Иначе
Внутрь блока задержки, также можно добавить элементы, просто нажав по названию "Задержка"
Что делает значок бесконечности в сценариях
Во всех блочных сценариях, в блоке если есть значок бесконечности. Он предназначен для включения или отключения срабатывания блока если при выполнении условия
Не стоит отключать знак бесконечности для выключателей, лампочек и прочих устройств с двумя состояниями (ВКЛ/ВЫКЛ и подобные)
Для планировщика - бесконечность должна быть включена всегда. Иначе он не будет работать
В указанном примере:
при включенном значке бесконечности
- выключатель будет выключаться каждый раз, когда ваттметр пришлет показания, которые больше 10 Вт и включаться каждый раз, когда ваттметр будет присылать показания меньше или равно 10 Вт
- выключатель будет включаться каждый раз, когда ваттметр будет присылать показания меньше или равно 10 Вт
при выключенном значке бесконечности:
- сценарий сработает только один раз при превышении ваттметром значения в 10 Вт и выключит выключатель
- сценарий сработает только однажды при получении значения ваттметра меньше или равно 10 Вт и включит выключатель
Так как подобные устройства (ваттметры, датчики температуры, влажности и т.п.) обновляют показания постоянно, если их показания совпадают с условием при каждом обновлении (а у некоторых датчиков это может происходить даже чаще одного раза в секунду), то каждое новое показание будет запускать сценарий при включенной бесконечности.
При выключенной бесконечности, если, например температура, будет всегда выше установленного порога - сценарий выполнит условие только один раз до тех пор, пока температура не пересечет указанный в блоке Если порог в обратную сторону.
Еще несколько особенностей на примерах:
Если бесконечность включена у кнопки но выключена у датчика движения - то сценарий пришлет уведомление только один раз и не будет присылать до тех пор, пока датчик движения не сменит состояние (относительно того, в котором он сейчас находится)
А если выключить бесконечность еще и у кнопки, то если на нее нажимать однократно много раз - сработает только при первом совпадении. Потом сценарий просто не будет работать, пока на кнопку не нажмут каким либо другим образом (двойной или долгое)