Выключатель и сценарий

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
DiminatorDK
Сообщения: 104
Зарегистрирован: Сб фев 20, 2016 12:19 pm
Благодарил (а): 7 раз
Поблагодарили: 2 раза

Выключатель и сценарий

Сообщение DiminatorDK » Вс дек 26, 2021 11:00 am

Имею сценарий который достаточно долго выполняется, запуская выключателем и по времени.
Подскажите, как сделать чтобы при нажатии на выключатель на время выполнения сценария выключатель блокировался и менялась надпись или цвет? Т.е. чтобы было понятно что идёт работа и повторный запуск не возможен.
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Выключатель и сценарий

Сообщение Chainik » Вс дек 26, 2021 12:15 pm

Создаете свойство, которое будет отображать состояние выполнения сценария. В начале выполнения сценария присваиваете свойству значение "1", а в конце "0". У выключателя будут 2 состояния, завязанные на вышеуказанное свойство. В состоянии при значении свойства "1" указывается команда за запуск сценария, в состоянии при значении "0" -- команда не указывается.
DiminatorDK
Сообщения: 104
Зарегистрирован: Сб фев 20, 2016 12:19 pm
Благодарил (а): 7 раз
Поблагодарили: 2 раза

Re: Выключатель и сценарий

Сообщение DiminatorDK » Вс дек 26, 2021 12:38 pm

Я делал через объект в котором менял свойство, но это немного не то, так как выключатель продолжает работать. Я хотел при нажати изменить его вид при этом заблокировать возможность реагирования до окончания выполнения скрипта. Или я не правильно понял?
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Выключатель и сценарий

Сообщение Chainik » Вс дек 26, 2021 1:04 pm

Все правильно. Я, собственно, именно такой вариант и расписал. Тут надо понимать, как у вас реализован выключатель, это элемент типа "выключатель" на сцене, html-блок или еще что-то?
Ничего сложного тут нет. Могу попробовать подсказать с кодом, если скажите, как реализован выключатель, как называется скрипт, как называется свойство, отображающее состояние выполнения скрипта.
DiminatorDK
Сообщения: 104
Зарегистрирован: Сб фев 20, 2016 12:19 pm
Благодарил (а): 7 раз
Поблагодарили: 2 раза

Re: Выключатель и сценарий

Сообщение DiminatorDK » Вс дек 26, 2021 5:23 pm

сейчас на сцене у меня просто выключатель Тип: Выключатель имя Home-Sleep. У него одно состояние Off. Выполнить сценарий: спокойной ночи. Отображение: всегда показывать.
Сценарий собирает все включенные приборы и выстраивает их в очередь выключения. В итоге сценарий может работать до 30 минут.

Я предполагал что можно взять у кнопки состояние on и в Условие отображения в расширенных создать слежение за работой сценария и блокировать возможность нажатия выключателя до тех пор пока работает сценарий.
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Выключатель и сценарий

Сообщение Chainik » Вс дек 26, 2021 5:58 pm

Пусть сам сценарий следит за работой сценария. Другими словами, в начале кода сценария пишем sg('Объект.Свойство', 0); Т.е. сценарий работает. В конце кода sg('Объект.Свойство', 1); Т.е. сценарий не выполняется.

Теперь что касается выключателя на сцене. Пусть его состояние "Off" будет означать, что сценарий работает и повторный запуск во время работы невозможен. Для этого в простом условии отображения надо указать наши Объект и Свойство, условие сравнение "= 0". Если есть желание указать это "в явном виде", в настройках элемента сцены выбирете "Расширенная настройка" = "Да". При этом в пункте "Выполнить при клике" должно быть указано "Ничего не делать".

Добавляем к выключателю новое состояние "On" при котором будет запускаться сценарий. В пункте "Выполнить при клике" указываем сценарий "спокойной ночи", а в условиях отображения "<> 0".
Должно работать.
DiminatorDK
Сообщения: 104
Зарегистрирован: Сб фев 20, 2016 12:19 pm
Благодарил (а): 7 раз
Поблагодарили: 2 раза

Re: Выключатель и сценарий

Сообщение DiminatorDK » Вс дек 26, 2021 10:16 pm

спасибо. все получилось. правда наличие паразитного объекта напрягает но главное что работает.
DiminatorDK
Сообщения: 104
Зарегистрирован: Сб фев 20, 2016 12:19 pm
Благодарил (а): 7 раз
Поблагодарили: 2 раза

Re: Выключатель и сценарий

Сообщение DiminatorDK » Вс дек 26, 2021 10:32 pm

еще попутный вопрос, пока у меня работает скрипт, остальные контролы не реагируют :( это может быть из-за использования sleep в скрипте?
Ответить