Связь выключателей
Модератор: immortal
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Связь выключателей
Добрый вечер. Нужна ваша помощь.
Имеется радиовыключатель 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');
}
Имеется радиовыключатель 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');
}
- Вложения
-
- Простые устройства
- 1.JPG (33.66 КБ) 3469 просмотров
-
- Объекты SRelays
- 2.JPG (51.51 КБ) 3470 просмотров
-
- Метод
- 3.JPG (56.71 КБ) 3470 просмотров
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Связь выключателей
Сделал как мне нужно. Теперь когда нажимаю включить все зоны света, все лампы включаются одновременно, не поэтапно, как было до этого. Было так, нажимаешь на кнопку "Выключатель Все зоны", сначала включались лампы "Зона-1", потом лампы "Зона-2", а статусы 1 и 2 зоны света менялись с 0 на 1 одновременно, теперь нажав на кнопку "Выключатель Все зоны", лампы 2-х зон включаются одновременно и сразу. Я добавил в методы turnOn и turnOff код статуса, но по мне кажется что это не правильно, может кто-то из знающих подскажет как правильно нужно написать код, чтобы при включении света?
- Вложения
-
- Выключение и включение света
- Вкл-Выкл статус света.jpg (25.91 КБ) 3397 просмотров
-
- Методы
- Методы - SRelays03.jpg (68.81 КБ) 3397 просмотров
-
- Коды в медодах
- Методы-SRelays03-методы.jpg (88.69 КБ) 3397 просмотров
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
- xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: Связь выключателей
Да всё правильно вы сделали при вашем способе управления реле. Он у вас через статус реализуется или через метод вкл реле/выкл реле. Понятно, что это предложено в статье, но давайте проверим, так сказать, логистику.Divan писал(а):Сделал как мне нужно. Теперь когда нажимаю включить все зоны света, все лампы включаются одновременно, не поэтапно, как было до этого. Было так, нажимаешь на кнопку "Выключатель Все зоны", сначала включались лампы "Зона-1", потом лампы "Зона-2", а статусы 1 и 2 зоны света менялись с 0 на 1 одновременно, теперь нажав на кнопку "Выключатель Все зоны", лампы 2-х зон включаются одновременно и сразу. Я добавил в методы turnOn и turnOff код статуса, но по мне кажется что это не правильно, может кто-то из знающих подскажет как правильно нужно написать код, чтобы при включении света?
Чтобы включить реле, вызывается метод турнон, который меняет статус, при смене статуса вызывается метод, привязанный к изменению свойства, который, в свою очередь устанавливает значение дополнительного свойства коммандОн, которое привязано к команде бродлинка, которая и передаёт команду на реле. При использовании для управления не метода, а свойства всё это сокращается на один шаг.
Не кажется, что это как-то заморочно?
Я у себя делал так - вообще не использовал привязку в модуле бродлинка к объектам.свойствам, использовал оттуда только конечные команды.
В методе турнон реле, например, srelay01 нажимаем кнопку настроить и прописываем там команду бродлинка на вкл этого реле, типа BrLinkCommang('srelay01_on');
Аналогично делаем это и для метода турнофф
А статус устанавливается уж классовыми методами реле.
Управление реле только через методы.
И при вызове метода уже вторым шагом идёт отправка команды от бродлинка и не надо доп. свойств никаких.
Т е., в вашем случае для вкл всего света виртуальным общим выключателем надо в его методе турнон написать
cm('srelay01.turnon');
cm('srelay02.turnon');
Ну, вам решать)
Отправлено с моего Redmi 4X через Tapatalk
win10 connect https://connect.smartliving.ru/profile/303
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Связь выключателей
Спасибо за ответ, а ваш метод намного проще, попробую.
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Связь выключателей
Попробовал, но в таком случает идет поэтапное включение света, сначала включается 1 зона, потом 2 зона и также выключается, меня это не устроило, поэтому я просто в "Вкл/Выкл Все зоны" вставил статусы и получилось то, что мне было нужно, когда все зоны сразу одновременно включаются и выключаются, то меняется статус на 1 и 2 зонах.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
- xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: Связь выключателей
Тут подряд две команды бродлинку идут, не знаю, откуда у вас получается задержка между переключениями. Выполнение неск. команд на выключение всегда последовательное, кроме случая существования общей команды, поддерживаемой аппаратноDivan писал(а):Попробовал, но в таком случает идет поэтапное включение света, сначала включается 1 зона, потом 2 зона и также выключается, меня это не устроило, поэтому я просто в "Вкл/Выкл Все зоны" вставил статусы и получилось то, что мне было нужно, когда все зоны сразу одновременно включаются и выключаются, то меняется статус на 1 и 2 зонах.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
Отправлено с моего Redmi 4X через Tapatalk
win10 connect https://connect.smartliving.ru/profile/303
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Связь выключателей
у вас все сразу включается, без последовательности? Я вот так добавил (см. скриншот), включается последовательно и также выключается последовательно.
- Вложения
-
- Включитть весь свет.JPG (39.87 КБ) 3271 просмотр
- xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: Связь выключателей
Если у вас два выключателя и одна рука, то вы сможете выключить их только по очереди. Если вы будете делать это очень быстро, то будет казаться, что свет переключается одновременно.Divan писал(а):у вас все сразу включается, без последовательности? Я вот так добавил (см. скриншот), включается последовательно и также выключается последовательно.
По настоящему одновременно вы можете включить свет в двух местах либо общим выключателем одной рукой, либо теми же выключателями, но двумя руками.
Или вы знаете ещё способ?
Отправлено с моего Redmi 4X через Tapatalk
win10 connect https://connect.smartliving.ru/profile/303
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Связь выключателей
Нее ), тут речь идет про 1 выключатель и 1 люстру с двумя зонами. У радиовыключателя Broadlink TC2 на две зоны имеется 3 режима:
1) Вкл/Выкл 1 зону
2) Вкл/Выкл 2 зону
3) Вкл/Выкл все зоны
Когда нажимаю на кнопку "Вкл/Выкл все зоны", то все зоны одновременно включается или выключаются.
А так, конечно, вы правы, если в каждой комнате стоит умный выключатель, то естественно будет Вкл/Выкл последовательно, просто я изначально не написал, что речь идет про один двухзональный выключатель и одну люстру.
1) Вкл/Выкл 1 зону
2) Вкл/Выкл 2 зону
3) Вкл/Выкл все зоны
Когда нажимаю на кнопку "Вкл/Выкл все зоны", то все зоны одновременно включается или выключаются.
А так, конечно, вы правы, если в каждой комнате стоит умный выключатель, то естественно будет Вкл/Выкл последовательно, просто я изначально не написал, что речь идет про один двухзональный выключатель и одну люстру.
- xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: Связь выключателей
Ну, тогда для общего выключателя (3 режим) тоже сделать обьект реле со своими турнон/турноф и в методах, конечно, прописать его команды бродлинка, а не две последовательные, единственно, при выполнении его методов принудительно менять статус для первых двух реле по фактуDivan писал(а):Нее ), тут речь идет про 1 выключатель и 1 люстру с двумя зонами. У радиовыключателя Broadlink TC2 на две зоны имеется 3 режима:
1) Вкл/Выкл 1 зону
2) Вкл/Выкл 2 зону
3) Вкл/Выкл все зоны
Когда нажимаю на кнопку "Вкл/Выкл все зоны", то все зоны одновременно включается или выключаются.
А так, конечно, вы правы, если в каждой комнате стоит умный выключатель, то естественно будет Вкл/Выкл последовательно, просто я изначально не написал, что речь идет про один двухзональный выключатель и одну люстру.
Вообще, интересно получается - у двух реле может быть только два состояния - вкл и выкл, а у третьего - три. Полностью вкл, полностью выкл и включено частично. Как это третье состояние отобразить бистабильным выключателем? Наверное, его надо заменить в интерфейсе на две кнопки - вкл и выкл, с вызовом соотв. методов и установкой статусов первых двух реле, упраалямых в интерфейсе выключателями с положением, зависимым от их статуса
Отправлено с моего Redmi 4X через Tapatalk
win10 connect https://connect.smartliving.ru/profile/303