Как узнать текущее значение переключателя в сцене?

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

Модератор: immortal

Ответить
knik777
Сообщения: 15
Зарегистрирован: Чт апр 09, 2020 8:03 pm
Благодарил (а): 7 раз
Поблагодарили: 2 раза

Как узнать текущее значение переключателя в сцене?

Сообщение knik777 » Пт апр 10, 2020 8:10 pm

Всем привет!
Не нашел ответа в базе знаний, хотя знаю, что вопрос ерундовый. Подскажите пожалуйста.

Краткое описание "что имеем":

Создал выключатель "весь свет" в сцене. Нужно, чтобы выключатель одновременно управлял сразу 4мя свойствами объектов:
k1.light1state
k2.light1state
k2.dimmer1state
k3.light1state
Если меняем значение выключателя, то его значение присваивается всем 4м свойствам, указанным выше. Если ноль, значит ноль. Если 1, значит 1.

Как это реализовать в мажордомо?
Чувствую, что нужно использовать команду setGlobal('k1.lightstate",1);

Есть два вопроса:
1) Как прочитать текущее состояние переключателя в сцене?
2) Как по событию "изменение состояния переключателя" запустить сценарий смены значений для указанных 4х свойств объектов?
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 262 раза
Поблагодарили: 455 раз

Re: Как узнать текущее значение переключателя в сцене?

Сообщение Chainik » Пт апр 10, 2020 8:27 pm

knik777 писал(а):
Пт апр 10, 2020 8:10 pm
...
Есть два вопроса:
1) Как прочитать текущее состояние переключателя в сцене?
2) Как по событию "изменение состояния переключателя" запустить сценарий смены значений для указанных 4х свойств объектов?
Поскольку объект выключателя у вас "сложный" (управляет сразу несколькими другими объектами), то ассоциировать его состояние с каким-то из управляемых объектов непродуктивно.

Можете для объекта выключателя создать отдельный собственный объект, у которого будет свойство, обозначающее состояние выключателя ("State"). Вот это Объект.Свойство и привяжите к выключателю. Узнать состояние выключателя, соответственно:

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

gg("ИМЯ_ВАШЕГО_ОБЪЕКТА_ДЛЯ_ВЫКЛЮЧАТЕЛЯ.State");
У выключателя должно быть 2 состояния (для "включить" и для "выключить"), поскольку действия будут различные.
Можно даже сценарий отдельный не писать. А просто для каждого состояния прописать код. Для состояния "включено":

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

sg("k1.light1state",0);
sg("k2.light1state",0);
sg("k2.dimmer1state",0);
sg("k3.light1state",0);
И для состояния "выключено":

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

sg("k1.light1state",1);
sg("k2.light1state",1);
sg("k2.dimmer1state",1);
sg("k3.light1state",1);
Последний раз редактировалось Chainik Пт апр 10, 2020 8:45 pm, всего редактировалось 1 раз.
За это сообщение автора Chainik поблагодарил:
knik777 (Пт апр 10, 2020 8:32 pm)
Рейтинг: 1.16%
knik777
Сообщения: 15
Зарегистрирован: Чт апр 09, 2020 8:03 pm
Благодарил (а): 7 раз
Поблагодарили: 2 раза

Re: Как узнать текущее значение переключателя в сцене?

Сообщение knik777 » Пт апр 10, 2020 8:32 pm

Спасибо! Разобрался!
Хитрость была в том, чтобы создать еще один объект, который привязать к нарисованному выключателю!
Помогло :)
Ответить