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

Выключить всё

Добавлено: Пн сен 04, 2017 11:52 am
olegvolk75
Всем привет!
Подскажите, т.к. поиск не помог. Как пользоваться кнопкой "выключить всё" на сцене из образа Сергея? Точнее, где и что надо указать для конкретного устройства из класса реле, что бы при нажатии этой кнопки реле отключалось.
Спасибо!

Re: Выключить всё

Добавлено: Пн сен 04, 2017 11:57 am
skysilver
Вероятно, к этой кнопке привязан сценарий turnOffEverything. Вот его код:

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

$objects=array('Switch1','Switch2','Switch3');
foreach($objects as $o) {
 callMethod($o.'.turnoff');
} 
Перебирает три объекта Switch и последовательно вызывает метод turnoff у каждого.

Re: Выключить всё

Добавлено: Пн сен 04, 2017 12:17 pm
nick7zmail
skysilver всё верно говорит)). Нужно в массив $objects только вписать свои объекты, которые хотите выключать по кнопке (у которых, естественно должен быть метод turnoff).

Re: Выключить всё

Добавлено: Пн сен 04, 2017 12:53 pm
olegvolk75
Вот, теперь понятно.
А у класса Reley есть свойство "allOffGroup", оно отношение к "выключить всё" не имеет? Ставил там единичку, не работало.

Re: Выключить всё

Добавлено: Пн сен 04, 2017 1:03 pm
nick7zmail
Класс relays на самом деле уже устарел немного. Пользуйтесь дополнением "Простые устройства", и классом sdevices

Отправлено с моего Xperia Z через Tapatalk

Re: Выключить всё

Добавлено: Пн сен 04, 2017 1:05 pm
skysilver
olegvolk75 писал(а):А у класса Reley есть свойство "allOffGroup", оно отношение к "выключить всё" не имеет? Ставил там единичку, не работало.
Имеет, но работает не так. Это свойство позволяет сгруппировать объекты по какому-то признаку, чтобы затем выключать/включать группы целиком. В частности allOffGroup объединяет те объекты, которые нужно выключить при активации режима экономии EconomMode.activate

Разделив таким образом на группы, можно выключать все объекты группы таким кодом:

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

$objects=getObjectsByProperty('allOffGroup','=','1');
if (is_array($objects)) {
 foreach($objects as $obj) {
  callMethod($obj.'.turnOff');
 }
} 
Т.е. найти все объекты, у которых группа равна "1" и выполнить у них метод turnOff.

Re: Выключить всё

Добавлено: Пн сен 04, 2017 3:52 pm
olegvolk75
А в чем отличие, в двух словах, класса Relays от простых объектов и sdevices?
Спасибо за лекбез!

Re: Выключить всё

Добавлено: Пн сен 04, 2017 4:10 pm
nick7zmail
Relays старый класс в объектах, с базовыми зависимостями...не более...
Sdevices отлично настроенное дерево классов (помимо реле там есть всевозможные датчики, и т.п.), связанных между собой зависимостями, действиями, и т.п., к тому же с удобным интрефейсом настройки в виде модуля "Простые устройства" в панели управления (а так же с базовой интеграцией в дашборд, Apple Homekit, и возможной перспективной интеграцией в другие системы).

Re: Выключить всё

Добавлено: Пн окт 12, 2020 7:25 pm
zarro
ИМХО Нужен универсальный алгоритм или комманда выключения вообще всех устройств в системе! Как аварийный стоп-кран. Причем, с контролем выполнением и обработчиком ошибок. Типо нажал "оключить все" и при вызове этой функции, система сама найдет и отключит все что можно отключить, затем проверит выполнение и при не срабатывании или вообще отсутствии обратной связи выдаст предупредлдение что не удалось отключить....

Re: Выключить всё

Добавлено: Пн окт 12, 2020 7:27 pm
nick7zmail
zarro писал(а): Пн окт 12, 2020 7:25 pm ИМХО Нужен универсальный алгоритм или комманда выключения вообще всех устройств в системе! Как аварийный стоп-кран. Причем, с контролем выполнением и обработчиком ошибок. Типо нажал "оключить все" и при вызове этой функции, система сама найдет и отключит все что можно отключить, затем проверит выполнение и при не срабатывании или вообще отсутствии обратной связи выдаст предупредлдение что не удалось отключить....
А как система определит что "можно отключить" а что нельзя?