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

Связь выключателей

Добавлено: Пн июл 08, 2019 7:27 pm
Divan
Добрый вечер. Нужна ваша помощь.

Имеется радиовыключатель Broadlink TC2 на две зоны, настроил в простых устройствах выключатели, сделал 3 выключателя и прописал код согласно инструкции https://kb.mjdm.ru/broadlink_rm_switch_sd/ - тут вопросов нет.

if ($this->getProperty('status')) {
$this->setProperty('command_on',1);
} else {
$this->setProperty('command_off',1);
}


Кнопки выключателя я добавил в простые устройства:
1 кнопка, это вкл\выкл 1 зону выключателя
2 кнопка, это вкл\выкл 2 зоны выключателя
3 кнопка, это вкл\выкл обе зоны выключателя

Как сделать так, чтобы нажав на 3-ю кнопку, менялись статусы 1 и 2 кнопки?

Если я пропишу такой код (см.ниже), то он поэтапно включает и выключает освещение, мне такой вариант не подходит, нужно, чтобы нажав на кнопку 3, статусы кнопок 1 и 2 сменились на 0 одновременно или статусы кнопок 1 и 2 сменились на статус 1 тоже одновременно, без поэтапного включения и выключения.

$objects=array('SRelays01','SRelays02','SRelays03');
foreach($objects as $o) {
callMethod($o.'.turnoff');
}

Re: Связь выключателей

Добавлено: Пт июл 12, 2019 10:02 am
Divan
Сделал как мне нужно. Теперь когда нажимаю включить все зоны света, все лампы включаются одновременно, не поэтапно, как было до этого. Было так, нажимаешь на кнопку "Выключатель Все зоны", сначала включались лампы "Зона-1", потом лампы "Зона-2", а статусы 1 и 2 зоны света менялись с 0 на 1 одновременно, теперь нажав на кнопку "Выключатель Все зоны", лампы 2-х зон включаются одновременно и сразу. Я добавил в методы turnOn и turnOff код статуса, но по мне кажется что это не правильно, может кто-то из знающих подскажет как правильно нужно написать код, чтобы при включении света?

Re: Связь выключателей

Добавлено: Пт июл 12, 2019 11:49 am
xor
Divan писал(а):Сделал как мне нужно. Теперь когда нажимаю включить все зоны света, все лампы включаются одновременно, не поэтапно, как было до этого. Было так, нажимаешь на кнопку "Выключатель Все зоны", сначала включались лампы "Зона-1", потом лампы "Зона-2", а статусы 1 и 2 зоны света менялись с 0 на 1 одновременно, теперь нажав на кнопку "Выключатель Все зоны", лампы 2-х зон включаются одновременно и сразу. Я добавил в методы turnOn и turnOff код статуса, но по мне кажется что это не правильно, может кто-то из знающих подскажет как правильно нужно написать код, чтобы при включении света?
Да всё правильно вы сделали при вашем способе управления реле. Он у вас через статус реализуется или через метод вкл реле/выкл реле. Понятно, что это предложено в статье, но давайте проверим, так сказать, логистику.

Чтобы включить реле, вызывается метод турнон, который меняет статус, при смене статуса вызывается метод, привязанный к изменению свойства, который, в свою очередь устанавливает значение дополнительного свойства коммандОн, которое привязано к команде бродлинка, которая и передаёт команду на реле. При использовании для управления не метода, а свойства всё это сокращается на один шаг.
Не кажется, что это как-то заморочно?

Я у себя делал так - вообще не использовал привязку в модуле бродлинка к объектам.свойствам, использовал оттуда только конечные команды.

В методе турнон реле, например, srelay01 нажимаем кнопку настроить и прописываем там команду бродлинка на вкл этого реле, типа BrLinkCommang('srelay01_on');
Аналогично делаем это и для метода турнофф

А статус устанавливается уж классовыми методами реле.

Управление реле только через методы.
И при вызове метода уже вторым шагом идёт отправка команды от бродлинка и не надо доп. свойств никаких.

Т е., в вашем случае для вкл всего света виртуальным общим выключателем надо в его методе турнон написать

cm('srelay01.turnon');
cm('srelay02.turnon');

Ну, вам решать)

Отправлено с моего Redmi 4X через Tapatalk


Re: Связь выключателей

Добавлено: Пт июл 12, 2019 11:58 am
Divan
Спасибо за ответ, а ваш метод намного проще, попробую. :)

Re: Связь выключателей

Добавлено: Чт июл 25, 2019 9:48 am
Divan
xor писал(а):
Пт июл 12, 2019 11:49 am
Divan писал(а):Сделал как мне нужно. Теперь когда нажимаю включить все зоны света, все лампы включаются одновременно, не поэтапно, как было до этого. Было так, нажимаешь на кнопку "Выключатель Все зоны", сначала включались лампы "Зона-1", потом лампы "Зона-2", а статусы 1 и 2 зоны света менялись с 0 на 1 одновременно, теперь нажав на кнопку "Выключатель Все зоны", лампы 2-х зон включаются одновременно и сразу. Я добавил в методы turnOn и turnOff код статуса, но по мне кажется что это не правильно, может кто-то из знающих подскажет как правильно нужно написать код, чтобы при включении света?
Да всё правильно вы сделали при вашем способе управления реле. Он у вас через статус реализуется или через метод вкл реле/выкл реле. Понятно, что это предложено в статье, но давайте проверим, так сказать, логистику.

Чтобы включить реле, вызывается метод турнон, который меняет статус, при смене статуса вызывается метод, привязанный к изменению свойства, который, в свою очередь устанавливает значение дополнительного свойства коммандОн, которое привязано к команде бродлинка, которая и передаёт команду на реле. При использовании для управления не метода, а свойства всё это сокращается на один шаг.
Не кажется, что это как-то заморочно?

Я у себя делал так - вообще не использовал привязку в модуле бродлинка к объектам.свойствам, использовал оттуда только конечные команды.

В методе турнон реле, например, srelay01 нажимаем кнопку настроить и прописываем там команду бродлинка на вкл этого реле, типа BrLinkCommang('srelay01_on');
Аналогично делаем это и для метода турнофф

А статус устанавливается уж классовыми методами реле.

Управление реле только через методы.
И при вызове метода уже вторым шагом идёт отправка команды от бродлинка и не надо доп. свойств никаких.

Т е., в вашем случае для вкл всего света виртуальным общим выключателем надо в его методе турнон написать

cm('srelay01.turnon');
cm('srelay02.turnon');

Ну, вам решать)

Отправлено с моего Redmi 4X через Tapatalk
Попробовал, но в таком случает идет поэтапное включение света, сначала включается 1 зона, потом 2 зона и также выключается, меня это не устроило, поэтому я просто в "Вкл/Выкл Все зоны" вставил статусы и получилось то, что мне было нужно, когда все зоны сразу одновременно включаются и выключаются, то меняется статус на 1 и 2 зонах.

Re: Связь выключателей

Добавлено: Чт июл 25, 2019 10:04 am
xor
Divan писал(а):
xor писал(а):
Пт июл 12, 2019 11:49 am
Divan писал(а):Сделал как мне нужно. Теперь когда нажимаю включить все зоны света, все лампы включаются одновременно, не поэтапно, как было до этого. Было так, нажимаешь на кнопку "Выключатель Все зоны", сначала включались лампы "Зона-1", потом лампы "Зона-2", а статусы 1 и 2 зоны света менялись с 0 на 1 одновременно, теперь нажав на кнопку "Выключатель Все зоны", лампы 2-х зон включаются одновременно и сразу. Я добавил в методы turnOn и turnOff код статуса, но по мне кажется что это не правильно, может кто-то из знающих подскажет как правильно нужно написать код, чтобы при включении света?
Да всё правильно вы сделали при вашем способе управления реле. Он у вас через статус реализуется или через метод вкл реле/выкл реле. Понятно, что это предложено в статье, но давайте проверим, так сказать, логистику.

Чтобы включить реле, вызывается метод турнон, который меняет статус, при смене статуса вызывается метод, привязанный к изменению свойства, который, в свою очередь устанавливает значение дополнительного свойства коммандОн, которое привязано к команде бродлинка, которая и передаёт команду на реле. При использовании для управления не метода, а свойства всё это сокращается на один шаг.
Не кажется, что это как-то заморочно?

Я у себя делал так - вообще не использовал привязку в модуле бродлинка к объектам.свойствам, использовал оттуда только конечные команды.

В методе турнон реле, например, srelay01 нажимаем кнопку настроить и прописываем там команду бродлинка на вкл этого реле, типа BrLinkCommang('srelay01_on');
Аналогично делаем это и для метода турнофф

А статус устанавливается уж классовыми методами реле.

Управление реле только через методы.
И при вызове метода уже вторым шагом идёт отправка команды от бродлинка и не надо доп. свойств никаких.

Т е., в вашем случае для вкл всего света виртуальным общим выключателем надо в его методе турнон написать

cm('srelay01.turnon');
cm('srelay02.turnon');

Ну, вам решать)

Отправлено с моего Redmi 4X через Tapatalk
Попробовал, но в таком случает идет поэтапное включение света, сначала включается 1 зона, потом 2 зона и также выключается, меня это не устроило, поэтому я просто в "Вкл/Выкл Все зоны" вставил статусы и получилось то, что мне было нужно, когда все зоны сразу одновременно включаются и выключаются, то меняется статус на 1 и 2 зонах.
Тут подряд две команды бродлинку идут, не знаю, откуда у вас получается задержка между переключениями. Выполнение неск. команд на выключение всегда последовательное, кроме случая существования общей команды, поддерживаемой аппаратно

Отправлено с моего Redmi 4X через Tapatalk


Re: Связь выключателей

Добавлено: Чт июл 25, 2019 10:15 am
Divan
у вас все сразу включается, без последовательности? Я вот так добавил (см. скриншот), включается последовательно и также выключается последовательно.

Re: Связь выключателей

Добавлено: Чт июл 25, 2019 12:57 pm
xor
Divan писал(а):у вас все сразу включается, без последовательности? Я вот так добавил (см. скриншот), включается последовательно и также выключается последовательно.
Если у вас два выключателя и одна рука, то вы сможете выключить их только по очереди. Если вы будете делать это очень быстро, то будет казаться, что свет переключается одновременно.
По настоящему одновременно вы можете включить свет в двух местах либо общим выключателем одной рукой, либо теми же выключателями, но двумя руками.
Или вы знаете ещё способ?

Отправлено с моего Redmi 4X через Tapatalk


Re: Связь выключателей

Добавлено: Чт июл 25, 2019 1:55 pm
Divan
Нее ), тут речь идет про 1 выключатель и 1 люстру с двумя зонами. У радиовыключателя Broadlink TC2 на две зоны имеется 3 режима:

1) Вкл/Выкл 1 зону
2) Вкл/Выкл 2 зону
3) Вкл/Выкл все зоны

Когда нажимаю на кнопку "Вкл/Выкл все зоны", то все зоны одновременно включается или выключаются.

А так, конечно, вы правы, если в каждой комнате стоит умный выключатель, то естественно будет Вкл/Выкл последовательно, просто я изначально не написал, что речь идет про один двухзональный выключатель и одну люстру.

Re: Связь выключателей

Добавлено: Чт июл 25, 2019 2:35 pm
xor

Divan писал(а):Нее ), тут речь идет про 1 выключатель и 1 люстру с двумя зонами. У радиовыключателя Broadlink TC2 на две зоны имеется 3 режима:

1) Вкл/Выкл 1 зону
2) Вкл/Выкл 2 зону
3) Вкл/Выкл все зоны

Когда нажимаю на кнопку "Вкл/Выкл все зоны", то все зоны одновременно включается или выключаются.

А так, конечно, вы правы, если в каждой комнате стоит умный выключатель, то естественно будет Вкл/Выкл последовательно, просто я изначально не написал, что речь идет про один двухзональный выключатель и одну люстру.
Ну, тогда для общего выключателя (3 режим) тоже сделать обьект реле со своими турнон/турноф и в методах, конечно, прописать его команды бродлинка, а не две последовательные, единственно, при выполнении его методов принудительно менять статус для первых двух реле по факту

Вообще, интересно получается - у двух реле может быть только два состояния - вкл и выкл, а у третьего - три. Полностью вкл, полностью выкл и включено частично. Как это третье состояние отобразить бистабильным выключателем? Наверное, его надо заменить в интерфейсе на две кнопки - вкл и выкл, с вызовом соотв. методов и установкой статусов первых двух реле, упраалямых в интерфейсе выключателями с положением, зависимым от их статуса

Отправлено с моего Redmi 4X через Tapatalk