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

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

Модератор: immortal

Ответить
Divan
Сообщения: 17
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 0
Поблагодарили: 0

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

Сообщение Divan » Пн июл 08, 2019 7:27 pm

Добрый вечер. Нужна ваша помощь.

Имеется радиовыключатель 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
Простые устройства
1.JPG (33.66 КБ) 167 просмотров
2.JPG
Объекты SRelays
2.JPG (51.51 КБ) 168 просмотров
3.JPG
Метод
3.JPG (56.71 КБ) 168 просмотров
Divan
Сообщения: 17
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 0
Поблагодарили: 0

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

Сообщение Divan » Пт июл 12, 2019 10:02 am

Сделал как мне нужно. Теперь когда нажимаю включить все зоны света, все лампы включаются одновременно, не поэтапно, как было до этого. Было так, нажимаешь на кнопку "Выключатель Все зоны", сначала включались лампы "Зона-1", потом лампы "Зона-2", а статусы 1 и 2 зоны света менялись с 0 на 1 одновременно, теперь нажав на кнопку "Выключатель Все зоны", лампы 2-х зон включаются одновременно и сразу. Я добавил в методы turnOn и turnOff код статуса, но по мне кажется что это не правильно, может кто-то из знающих подскажет как правильно нужно написать код, чтобы при включении света?
Вложения
Вкл-Выкл статус света.jpg
Выключение и включение света
Вкл-Выкл статус света.jpg (25.91 КБ) 95 просмотров
Методы - SRelays03.jpg
Методы
Методы - SRelays03.jpg (68.81 КБ) 95 просмотров
Методы-SRelays03-методы.jpg
Коды в медодах
Методы-SRelays03-методы.jpg (88.69 КБ) 95 просмотров
Аватара пользователя
xor
Сообщения: 1177
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 92 раза
Поблагодарили: 300 раз

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

Сообщение 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

Divan
Сообщения: 17
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 0
Поблагодарили: 0

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

Сообщение Divan » Пт июл 12, 2019 11:58 am

Спасибо за ответ, а ваш метод намного проще, попробую. :)
Ответить