Страница 1 из 1
Выключатель и сценарий
Добавлено: Вс дек 26, 2021 11:00 am
DiminatorDK
Имею сценарий который достаточно долго выполняется, запуская выключателем и по времени.
Подскажите, как сделать чтобы при нажатии на выключатель на время выполнения сценария выключатель блокировался и менялась надпись или цвет? Т.е. чтобы было понятно что идёт работа и повторный запуск не возможен.
Re: Выключатель и сценарий
Добавлено: Вс дек 26, 2021 12:15 pm
Chainik
Создаете свойство, которое будет отображать состояние выполнения сценария. В начале выполнения сценария присваиваете свойству значение "1", а в конце "0". У выключателя будут 2 состояния, завязанные на вышеуказанное свойство. В состоянии при значении свойства "1" указывается команда за запуск сценария, в состоянии при значении "0" -- команда не указывается.
Re: Выключатель и сценарий
Добавлено: Вс дек 26, 2021 12:38 pm
DiminatorDK
Я делал через объект в котором менял свойство, но это немного не то, так как выключатель продолжает работать. Я хотел при нажати изменить его вид при этом заблокировать возможность реагирования до окончания выполнения скрипта. Или я не правильно понял?
Re: Выключатель и сценарий
Добавлено: Вс дек 26, 2021 1:04 pm
Chainik
Все правильно. Я, собственно, именно такой вариант и расписал. Тут надо понимать, как у вас реализован выключатель, это элемент типа "выключатель" на сцене, html-блок или еще что-то?
Ничего сложного тут нет. Могу попробовать подсказать с кодом, если скажите, как реализован выключатель, как называется скрипт, как называется свойство, отображающее состояние выполнения скрипта.
Re: Выключатель и сценарий
Добавлено: Вс дек 26, 2021 5:23 pm
DiminatorDK
сейчас на сцене у меня просто выключатель Тип: Выключатель имя Home-Sleep. У него одно состояние Off. Выполнить сценарий: спокойной ночи. Отображение: всегда показывать.
Сценарий собирает все включенные приборы и выстраивает их в очередь выключения. В итоге сценарий может работать до 30 минут.
Я предполагал что можно взять у кнопки состояние on и в Условие отображения в расширенных создать слежение за работой сценария и блокировать возможность нажатия выключателя до тех пор пока работает сценарий.
Re: Выключатель и сценарий
Добавлено: Вс дек 26, 2021 5:58 pm
Chainik
Пусть сам сценарий следит за работой сценария. Другими словами, в начале кода сценария пишем sg('Объект.Свойство', 0); Т.е. сценарий работает. В конце кода sg('Объект.Свойство', 1); Т.е. сценарий не выполняется.
Теперь что касается выключателя на сцене. Пусть его состояние "Off" будет означать, что сценарий работает и повторный запуск во время работы невозможен. Для этого в простом условии отображения надо указать наши Объект и Свойство, условие сравнение "= 0". Если есть желание указать это "в явном виде", в настройках элемента сцены выбирете "Расширенная настройка" = "Да". При этом в пункте "Выполнить при клике" должно быть указано "Ничего не делать".
Добавляем к выключателю новое состояние "On" при котором будет запускаться сценарий. В пункте "Выполнить при клике" указываем сценарий "спокойной ночи", а в условиях отображения "<> 0".
Должно работать.
Re: Выключатель и сценарий
Добавлено: Вс дек 26, 2021 10:16 pm
DiminatorDK
спасибо. все получилось. правда наличие паразитного объекта напрягает но главное что работает.
Re: Выключатель и сценарий
Добавлено: Вс дек 26, 2021 10:32 pm
DiminatorDK
еще попутный вопрос, пока у меня работает скрипт, остальные контролы не реагируют

это может быть из-за использования sleep в скрипте?