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

Проверка состояния окон и дверей

Добавлено: Вс ноя 03, 2019 11:38 pm
John
И снова простите за простые вопросы, чайник есть чайник )))
Возникла следующая проблема, при выходе из дома есть кнопка выключения всего света, хочется, чтобы при её нажатии еще и срабатывал сценарий проверки всех окон на открытость и если что-то открыто, то система перечислила голосом все открытые окна.
Перебрать все объекты класса OpenClose и вычленить открытые.
Как это можно реализовать кодом?
Может у кого-то уже реализовано?

Заранее спасибо за ответ.

Re: Проверка состояния окон и дверей

Добавлено: Пн ноя 04, 2019 3:03 pm
xor
John писал(а):И снова простите за простые вопросы, чайник есть чайник )))
Возникла следующая проблема, при выходе из дома есть кнопка выключения всего света, хочется, чтобы при её нажатии еще и срабатывал сценарий проверки всех окон на открытость и если что-то открыто, то система перечислила голосом все открытые окна.
Перебрать все объекты класса OpenClose и вычленить открытые.
Как это можно реализовать кодом?
Может у кого-то уже реализовано?

Заранее спасибо за ответ.
Посмотрите функцию getObjectsByProperty()

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


Re: Проверка состояния окон и дверей

Добавлено: Пн ноя 04, 2019 3:42 pm
fandaymon
xor писал(а):
Пн ноя 04, 2019 3:03 pm
John писал(а):И снова простите за простые вопросы, чайник есть чайник )))
Возникла следующая проблема, при выходе из дома есть кнопка выключения всего света, хочется, чтобы при её нажатии еще и срабатывал сценарий проверки всех окон на открытость и если что-то открыто, то система перечислила голосом все открытые окна.
Перебрать все объекты класса OpenClose и вычленить открытые.
Как это можно реализовать кодом?
Может у кого-то уже реализовано?

Заранее спасибо за ответ.
Посмотрите функцию getObjectsByProperty()

Отправлено с моего Redmi 4X через Tapatalk
getObjectsByClass для этой цели лучше подойдёт

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

$objects=getObjectsByClass("SOpenClose");
foreach($objects as $obj) {
 if (getGlobal($obj['TITLE'].".status")==1) {
   say($obj['TITLE'] . ' открыто');
 }
}

Re: Проверка состояния окон и дверей

Добавлено: Пн ноя 04, 2019 4:28 pm
Logrus
fandaymon писал(а):
Пн ноя 04, 2019 3:42 pm
xor писал(а):
Пн ноя 04, 2019 3:03 pm
John писал(а):И снова простите за простые вопросы, чайник есть чайник )))
Возникла следующая проблема, при выходе из дома есть кнопка выключения всего света, хочется, чтобы при её нажатии еще и срабатывал сценарий проверки всех окон на открытость и если что-то открыто, то система перечислила голосом все открытые окна.
Перебрать все объекты класса OpenClose и вычленить открытые.
Как это можно реализовать кодом?
Может у кого-то уже реализовано?

Заранее спасибо за ответ.
Посмотрите функцию getObjectsByProperty()

Отправлено с моего Redmi 4X через Tapatalk
getObjectsByClass для этой цели лучше подойдёт

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

$objects=getObjectsByClass("SOpenClose");
foreach($objects as $obj) {
 if (getGlobal($obj['TITLE'].".status")==1) {
   say($obj['TITLE'] . ' открыто');
 }
}
или вообще перечислить об!екты в массиве, вместо получения их по классу

Re: Проверка состояния окон и дверей

Добавлено: Пн ноя 04, 2019 9:43 pm
John
Огромное спасибо, все получилось!!!
Единственно, я добавил в объект новое свойство с нужным текстом для озвучивания и вставляю его

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

$objects=getObjectsByClass("SOpenClose");
foreach($objects as $obj) {
 if (getGlobal($obj['TITLE'].".status")==0) {
$desc=getGlobal ($obj['TITLE'].".desc");
   say("$desc открыто",2);
 }
}

Re: Проверка состояния окон и дверей

Добавлено: Вт ноя 05, 2019 12:19 am
xor
Да, так лучше. getObjectsByProperty() хороша там, где название свойства не такое популярное.