Страница 1 из 2

Авто-запуск сценариев

Добавлено: Пт дек 29, 2017 5:34 pm
sergejey
В настройке сценариев появилась дополнительная опция автоматического запуска:

Изображение

Эта опция позволяет запускать сценарий, если произошло изменение в указанном свойстве. Отдельно указать, с каким именно свойством связывается сценарий, нельзя. Работает это следующим образом: если в первой строчке кода сценария идёт условие, то система пытается определить, какое свойство отвечает за исполнение условия и автоматически связывает запуск сценария с этим свойством.

Работает это как с PHP-кодом, таки и со сценариями в режиме блокли. Например, можно создать новый сценарий такого вида:

Изображение
и он сразу заработает, т.к. свяжется с обновлением таймера.

или же вот ещё пример:

Изображение

сценарий тоже заработает сразу, т.к. привяжется к обновлению влажности.

Автоматическую привязку можно включить или отключить для каждого сценария.

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

Re: Авто-запуск сценариев

Добавлено: Вт янв 30, 2018 3:23 am
Gelezako
обновился из альфа ветки, но у меня в сценариях нет этого нового меню - "автоматический запуск сценария"

Re: Авто-запуск сценариев

Добавлено: Вс фев 04, 2018 9:38 am
sergejey
Gelezako писал(а):обновился из альфа ветки, но у меня в сценариях нет этого нового меню - "автоматический запуск сценария"
этот пункт появляется после сохранения кода и если в самом коде в первой строчке идёт проверка условия, по которому можно сделать автоматический запуск

Re: Авто-запуск сценариев

Добавлено: Ср фев 07, 2018 2:15 pm
Gelezako
sergejey писал(а): этот пункт появляется после сохранения кода и если в самом коде в первой строчке идёт проверка условия, по которому можно сделать автоматический запуск
а можно пример проверки условия?

Re: Авто-запуск сценариев

Добавлено: Ср фев 07, 2018 2:30 pm
directman66
Эти изменения уже есть в основной ветке репозитория?

Re: Авто-запуск сценариев

Добавлено: Ср фев 07, 2018 2:32 pm
Gelezako
что вы подразумеваете под новой? мастер или альфа? код на сколько я понимаю в альфа и судя по сообщению Сергея всегда весь новый код будет только в альфа

Re: Авто-запуск сценариев

Добавлено: Вс фев 11, 2018 9:58 am
sergejey
Gelezako писал(а):
sergejey писал(а): этот пункт появляется после сохранения кода и если в самом коде в первой строчке идёт проверка условия, по которому можно сделать автоматический запуск
а можно пример проверки условия?
Вот кусок исходника этой проверки:

Код: Выделить всё

        if (preg_match('/^if(.+?){/is', $rec['CODE'], $m)) {
            $conditions = trim($m[1], '()');
            if (preg_match('/getglobal\(["\'](\w+)\.(\w+)["\']\)/is', $conditions, $m2)) {
                $linked_object=$m2[1];
                $linked_property=$m2[2];
            } elseif (preg_match('/gg\(["\'](\w+)\.(\w+)["\']\)/is', $conditions, $m2)) {
                $linked_object=$m2[1];
                $linked_property=$m2[2];
            } elseif (preg_match('/timeis/is', $conditions) ||
                      preg_match('/timebefore/is', $conditions) ||
                      preg_match('/timeafter/is', $conditions) ||
                      preg_match('/timebetween/is', $conditions)) {
                $linked_object='ClockChime';
                $linked_property='time';
            }
        }
 
т.е. код должен начинаться с if и система пытается по первому условию определить, к изменению какого свойства привязать запуск скрипта.

Re: Авто-запуск сценариев

Добавлено: Пн фев 12, 2018 4:19 pm
Gelezako
Что я только не делал, но у меня не появляется этот пункт меню. Я написал пхп кодом пример, который представлен в виде блока в первом посте. Что я делю не так?
Скрин:
СпойлерПоказать
Изображение

Re: Авто-запуск сценариев

Добавлено: Пн фев 12, 2018 4:24 pm
Logrus
скобки фигурные? и тут к какому свойству привязываться вместо времени?

Re: Авто-запуск сценариев

Добавлено: Ср фев 14, 2018 1:04 am
Gelezako
я проделал кучу тестов, если делать блоками, то авто запуск работает, если писать кодом, то не работает. Отображает "Связанный объект", но не срабатывает.