Логические сценарии

Материал из Sprut.hub Wiki
(перенаправлено с «Web/scenarios/logic»)

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

Для создания данного типа сценариев - используется JavaScript на базе Nashorn. Поэтому для работы с этими видами сценариев - необходимо обладание навыками программирования. Удобнее всего пользоваться примерами на Node JS

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

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

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

Есть встроенные системные логические сценарии.

Причем в системе их больше

Виртуальная логика

На примере лампочки мы видим, что часть сценариев, перечисленных в блоке логических - можно подключить к лампочке.

Но например Виртуальная логика "Связь включения и уровня" является системной и не отображается в разделе логических сценариев но доступна в лампочке.

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

Если раздел виртуальной логики в настройках устройства отсутствует, значит для данного типа устройств нет ни одного логического сценария. Как только вы создадите свой логический сценарий для этого типа устройств - раздел виртуальной логики в настройках появится автоматически

Раздел логики у реальных и виртуальных устройств

Так как в Sprut.hub существуют виртуальные и реальные устройства, то для них доступны одинаковые наборы логических сценариев.

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

Целевой режим - тот, который вы устанавливаете на термостате. Текущий режим - тот, в котором термостат сейчас работает

Логика "Обычный термостат" обеспечивает изменение текущего режима в зависимости от установленной температуры. Реальный термостат - сам принимает это решение, а для виртуального термостата нужно включать эту логику.

Поэтому нужно четко понимать зачем и для чего вы включаете логики у реальных устройств