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

Сценарий в сценарии

Добавлено: Ср окт 11, 2017 8:38 pm
workpage
При выполнении метода объекта, выполняется некий сценарий. Но не выполняется сценарий в этом сценарии. Это бага или фича?

Re: Сценарий в сценарии

Добавлено: Ср окт 11, 2017 8:50 pm
sergejey
workpage писал(а):При выполнении метода объекта, выполняется некий сценарий. Но не выполняется сценарий в этом сценарии. Это бага или фича?
Это как? Запуск сценария из сценария вполне стандартная функция и должна работать.

Re: Сценарий в сценарии

Добавлено: Ср окт 11, 2017 9:11 pm
workpage
sergejey писал(а):
workpage писал(а):При выполнении метода объекта, выполняется некий сценарий. Но не выполняется сценарий в этом сценарии. Это бага или фича?
Это как? Запуск сценария из сценария вполне стандартная функция и должна работать.
Ситуация следующая.
Есть выключатель "никого нет дома".
Есть шторы с электроприводом.
Есть охранная сигнализация.
Когда никого дома нет и включена охрана - шторы не должны двигаться. Ну это просто. При открытии/закрытии проверяем статус выключателя.
Пока всё работает.
НО если я прихожу домой, а уже темно, то при нажатии на выключатель "никого нет дома", шторы немедленно должны начать закрываться. Что я сделал. Если грубо, то в методе "НикогоНетДома.Выключить выключатель" я поставил сценарий "Закрыть все шторы". И это не работает! Если поставить сценарий "Закрыть штору в большой комнате", то это уже работает.
Для самоконтроля поставил везде метки say('1'); say('2');...
Т.е. фактически не работают вложенные сценарии.
Можно конечно всё руками написать, но это костыли. Есть нормальное решение этой проблемы?

Re: Сценарий в сценарии

Добавлено: Чт окт 12, 2017 6:15 am
nick7zmail
А если поставить "код", и прописать вызов сценария? т.е.

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

runScript('Закрыть все шторы');//или runScriptSafe  
Та же реакция? (я к тому, что называть кириллицей с пробелами сценарии не совсем хороший тон...если проблема в этом то через runscript должно сработать) Что пишется в дебаг в этот момент?

Re: Сценарий в сценарии

Добавлено: Чт окт 12, 2017 7:10 am
workpage
nick7zmail писал(а):А если поставить "код", и прописать вызов сценария? т.е.

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

runScript('Закрыть все шторы');//или runScriptSafe   
Та же реакция? (я к тому, что называть кириллицей с пробелами сценарии не совсем хороший тон...если проблема в этом то через runscript должно сработать) Что пишется в дебаг в этот момент?
Ни первый ни второй вариант со вложенными сценариями не работают. Как посмотреть debug? Если надо, могу сбросить backup.

Re: Сценарий в сценарии

Добавлено: Чт окт 12, 2017 7:14 am
nick7zmail
Не надо бэкап)) дебаг в панель управления-xray-debug

Re: Сценарий в сценарии

Добавлено: Чт окт 12, 2017 7:39 am
workpage
Вобщем проблему решил прописав сценарий "Закрыть все шторы" в РОДИТЕЛЬСКОМ методе. Для остальных выключателей придётся создавать новый класс.

Re: Сценарий в сценарии

Добавлено: Чт окт 12, 2017 7:43 am
nick7zmail
workpage писал(а):Вобщем проблему решил прописав сценарий "Закрыть все шторы" в РОДИТЕЛЬСКОМ методе. Для остальных выключателей придётся создавать новый класс.
Очень странно на самом деле.
И можете не создавать, на самом деле класс, а в коде условие поставить условие - если title объекта равен нужному объекту - то runscript, иначе ничего не делать.

Re: Сценарий в сценарии

Добавлено: Чт окт 12, 2017 9:30 am
Urbas81
У меня тоже не сработал вложенный скрипт, сейчас посмотрел в логах ничего нет по времени срабатывания, до этого код размещался в onNewMinute, работало все четко, затем создал скрипт, поместил в него код из onNewMinute и установил время запуска, перестало работать, в коде просто запрос file_get_contents(.....), в итоге получился скрипт с runScript('....'); с периодическим запуском, и он не сработал.