Не могу освоить перебор объектов по классу

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

Модератор: immortal

Аватара пользователя
xor
Сообщения: 2044
Зарегистрирован: Сб ноя 22, 2014 8:45 pm

Re: Не могу освоить перебор объектов по классу

Сообщение xor »

Logrus писал(а):
IrisKo писал(а): Вт мар 03, 2020 3:05 pm Еще один вопрос возник. Можно ли как то таким же образом быстро и элегантно :) поменять свойство (например статус) у всех девайсов определенного класса (например реле), которые привязаны к данной конкретной комнате?
конечно, в вашем варианте в цикле добавить условие на проверку линкедрум
в варианте групп ксора сложнее
Чегой-то сложнее? Если эта задачка постоянная, а не разовая- делаешь группу девайсов в комнате и всё)

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

Logrus
Сообщения: 2113
Зарегистрирован: Пт апр 07, 2017 12:20 pm

Re: Не могу освоить перебор объектов по классу

Сообщение Logrus »

ну тс со своим разобралась, а с твоим сложнее
о чем и написал
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Аватара пользователя
xor
Сообщения: 2044
Зарегистрирован: Сб ноя 22, 2014 8:45 pm

Re: Не могу освоить перебор объектов по классу

Сообщение xor »

Logrus писал(а): Вт мар 03, 2020 9:19 pm ну тс со своим разобралась, а с твоим сложнее
о чем и написал
второй случай - уже надо два свойства проверять и тоже цикл писать. а если группы уже присутствуют в системе, всё так же делается одним махом по группе. не пойму, почему сложнее?
Logrus
Сообщения: 2113
Зарегистрирован: Пт апр 07, 2017 12:20 pm

Re: Не могу освоить перебор объектов по классу

Сообщение Logrus »

у тс по условиям проверка состояния и принадлежности, в ее варианте добавить в условие последнее
в твоем, я не говорю что это плохо, но первое условие или отдельно или сложнее, о чем собственно и сказал ;)
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Аватара пользователя
xor
Сообщения: 2044
Зарегистрирован: Сб ноя 22, 2014 8:45 pm

Re: Не могу освоить перебор объектов по классу

Сообщение xor »

Logrus писал(а): Вт мар 03, 2020 9:35 pm у тс по условиям проверка состояния и принадлежности, в ее варианте добавить в условие последнее
в твоем, я не говорю что это плохо, но первое условие или отдельно или сложнее, о чем собственно и сказал ;)
тс:
Можно ли как то таким же образом быстро и элегантно :) поменять свойство (например статус) у всех девайсов определенного класса (например реле), которые привязаны к данной конкретной комнате?
вот у меня как раз по условию тс - управляю одним махом и без цикла всеми реле в комнате Улица
2020-03-03_21-55-49.png
2020-03-03_21-55-49.png (14.64 КБ) 3870 просмотров
но да, лучше, конечно, сначала циклы вручную пописать - для практики. что касается групп - это реклама для ленивых)
Logrus
Сообщения: 2113
Зарегистрирован: Пт апр 07, 2017 12:20 pm

Re: Не могу освоить перебор объектов по классу

Сообщение Logrus »

у тс в первом посту последний пример
ксор пошли в курилку, а?
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
IrisKo
Сообщения: 60
Зарегистрирован: Пт фев 15, 2019 12:19 pm

Re: Не могу освоить перебор объектов по классу

Сообщение IrisKo »

Logrus писал(а): Вт мар 03, 2020 4:15 pm конечно, в вашем варианте в цикле добавить условие на проверку линкедрум
в варианте групп ксора сложнее
А как собственно выглядит эта самая проверка принадлежности к комнате?
Logrus
Сообщения: 2113
Зарегистрирован: Пт апр 07, 2017 12:20 pm

Re: Не могу освоить перебор объектов по классу

Сообщение Logrus »

аналогично gg($obj['TITLE'].'.autoOff')==0
только линкедрумс равно кухня
вы же про реле в пу класс контроллеры или вообщемв нем только реле
в ксловии проверка состояния && прилинкованная комната, если совпало то действие
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
IrisKo
Сообщения: 60
Зарегистрирован: Пт фев 15, 2019 12:19 pm

Re: Не могу освоить перебор объектов по классу

Сообщение IrisKo »

Не совсем то. У меня сейчас в комнатах когда надо выключить весь свет запускается метод этой комнаты где я все лампочки перечисляю по имени и каждую выключаю, типо:

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

if(gg('lamp1.status')==1){
 CallMethod('lamp1.turnOff');
}
if(gg('lamp2.status')==1){
 CallMethod('lamp2.turnOff');
 ....
и так далее.
И когда появляется новая лампочка которую тоже надо выключать я лезу и редактирую этот метод - добавляю туда эту новую лампочку. А хотелось бы как то изящнее и автоматичнее чтоб все что есть в комнате выключилось если оно включено - какую то универсальную конструкцию что ли :)
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am

Re: Не могу освоить перебор объектов по классу

Сообщение Chainik »

IrisKo писал(а): Чт мар 05, 2020 11:11 am Не совсем то. У меня сейчас в комнатах когда надо выключить весь свет запускается метод этой комнаты где я все лампочки перечисляю по имени и каждую выключаю, типо:

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

if(gg('lamp1.status')==1){
 CallMethod('lamp1.turnOff');
}
if(gg('lamp2.status')==1){
 CallMethod('lamp2.turnOff');
 ....
и так далее.
И когда появляется новая лампочка которую тоже надо выключать я лезу и редактирую этот метод - добавляю туда эту новую лампочку. А хотелось бы как то изящнее и автоматичнее чтоб все что есть в комнате выключилось если оно включено - какую то универсальную конструкцию что ли :)
Добавьте к лампочке свойство "Room", или вроде того (если еще не добавляли). А потом при переборе объектов по классу проверяйте это свойство.
Естественно, когда будете запускать метод по перебору, надо будет туда передать нужный параметр ("Room"):
viewtopic.php?f=19&t=4291&start=11
viewtopic.php?f=19&t=4291&start=16

Еще, на мой взгляд, не надо проверять текущее состояние лампочек. Надо просто давать команду на выключение всем лампочкам, расположенным в одном помещении.
Последний раз редактировалось Chainik Чт мар 05, 2020 12:52 pm, всего редактировалось 1 раз.
Ответить