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

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

Модератор: immortal

Ответить
Patriarch
Сообщения: 11
Зарегистрирован: Пт апр 12, 2019 12:31 am
Откуда: Витебск
Благодарил (а): 4 раза
Поблагодарили: 0

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

Сообщение Patriarch » Пн апр 22, 2019 11:00 pm

Ситуация: ложусь спать. Хочу голосом отключить например 3-4 устройства. По очереди проговаривать "выключи то", "выключи другое" - замучаешься.
В настройках простого устройства есть "синонимы". Проверил, если назвать устройство "розетка", в синонимы написать "все", то включается и выключается по любому из этих слов. Но если у второго устройства в синонимах тоже прописать "все" (логично, не правда?), дабы по слову "все" включались-отключались уже 2 устройства, то не работает. Срабатывает только первое, которое добавил.
Я думаю, разработчикам нет проблем добавить такую "фичу". Может, такое уже есть, но "на поверхности" я не нашел)) Может, с задней двери заходить надо)
Если кто знает, ткните носом пожалуйста. Спасибо)
Аватара пользователя
xor
Сообщения: 2039
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 286 раз
Поблагодарили: 629 раз

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

Сообщение xor » Вт апр 23, 2019 12:04 am

Вот скрипт моего шаблона Выключи свет везде

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

say('Выключаю весь свет',2);
  $objects = getObjectsByClass("NooLite"); 
  foreach($objects as $obj) { 
       cm($obj['TITLE'].'.turnoff');
   }
но ничто не помешает вам сделать свой шаблон с квазигруппами
типа Выключи всё на кухне и в скрипте просто перечислить нужные приборы

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

say('Выключаю всё на кухне',2);
cm('r1.turnoff');
cm('r2.turnoff');
cm('r33.turnoff');
cm('r44.turnoff');
За это сообщение автора xor поблагодарил:
ferrumlogic (Вт апр 23, 2019 1:54 pm)
Рейтинг: 1.16%
ZyaK
Сообщения: 407
Зарегистрирован: Вт окт 24, 2017 2:01 pm
Откуда: Ижевск
Благодарил (а): 45 раз
Поблагодарили: 69 раз

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

Сообщение ZyaK » Вт апр 23, 2019 6:59 am

у меня вот такой сценарий, запуск по шаблону. на комп, усилок и проектор свой шаблон, или сразу выключаю или таймер ставлю

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

// выключить весь свет перебором в классе
global $session; //Обращаемся к глобальной переменной
$objects=getObjectsByClass("Light");
foreach($objects as $obj) {
callMethod($obj['TITLE'].".turnOff");
}
$objects=array('IR','Led','Led_Lest');
foreach($objects as $o) {
callMethod($o.'.led_turnOff');
}
За это сообщение автора ZyaK поблагодарил:
ferrumlogic (Вт апр 23, 2019 1:54 pm)
Рейтинг: 1.16%
PI2 + MQTT + 5 ESP8266 + Atmega16
accord1755
Сообщения: 13
Зарегистрирован: Сб апр 06, 2019 1:41 am
Благодарил (а): 4 раза
Поблагодарили: 0

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

Сообщение accord1755 » Вт апр 23, 2019 1:49 pm

В таком случае, подскажите каким запросом я могу отобрать все объекты на "кухне"?
А также отобразить их название.
Конечно, местоположение в объектах указано.
Аватара пользователя
xor
Сообщения: 2039
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 286 раз
Поблагодарили: 629 раз

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

Сообщение xor » Вт апр 23, 2019 10:30 pm

accord1755 писал(а):
Вт апр 23, 2019 1:49 pm
В таком случае, подскажите каким запросом я могу отобрать все объекты на "кухне"?
А также отобразить их название.
Конечно, местоположение в объектах указано.

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

//вернем имена всех объектов на кухне c описанием
$sql ="SELECT o.`TITLE`, o.`DESCRIPTION` FROM `objects` o 
join `locations` loc on o.`LOCATION_ID`=loc.ID 
where loc.title='Kitchen'";
$rec = SQLSelect($sql); 
$total = count($rec);
    for ($i = 0; $i < $total; $i++) {
       echo 'obj '.$rec[$i]['TITLE'] .' descr '.$rec[$i]['DESCRIPTION'] .'<br>';
    }
Аватара пользователя
Nail
Сообщения: 374
Зарегистрирован: Пн мар 05, 2018 7:09 am
Откуда: Самара
Благодарил (а): 174 раза
Поблагодарили: 28 раз

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

Сообщение Nail » Ср апр 24, 2019 10:17 am

Ситуация: ложусь спать. Хочу голосом отключить например 3-4 устройства. По очереди проговаривать "выключи то", "выключи другое" - замучаешься.
В настройках простого устройства есть "синонимы". Проверил, если назвать устройство "розетка", в синонимы написать "все", то включается и выключается по любому из этих слов. Но если у второго устройства в синонимах тоже прописать "все" (логично, не правда?), дабы по слову "все" включались-отключались уже 2 устройства, то не работает. Срабатывает только первое, которое добавил.
Я думаю, разработчикам нет проблем добавить такую "фичу". Может, такое уже есть, но "на поверхности" я не нашел)) Может, с задней двери заходить надо)
Если кто знает, ткните носом пожалуйста. Спасибо)
А можно через сценарий "Disable all"

$objects=array('Relay07','Relay08','Relay09');
foreach($objects as $o) {
callMethod($o.'.turnoff');
}
sleep(1);
sg('TV.On', 1);
sleep(1);
sg('TV.sp', 1);
sleep(1);
sg('TV.Matrix',1);
say ("Выключила все",1);

и в шаблоне поведения Поставить "Выключить все"
Вложения
Screenshot_1.jpg
Screenshot_1.jpg (56.33 КБ) 2494 просмотра
Mini AMD A6 1450 Quad-core.Ubuntu Server 18.04 (64-bit). MegaD. Zigbee2mqtt+SLS ZigBee Gateway. Broadlink.
Ответить