Индикация света в доме

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
John
Сообщения: 38
Зарегистрирован: Пн ноя 10, 2014 1:52 pm
Благодарил (а): 12 раз
Поблагодарили: 0

Индикация света в доме

Сообщение John » Сб дек 15, 2018 12:31 pm

Всем доброго времени суток, не бейте ногами за такие простые вопросы....
Первые шаги в majordomo, и с PHP первые знакомства ))))
Кто-нибудь наверняка делал индикацию света в доме (горит ли в доме хоть где-нибудь свет)
Поделитесь пожалуйста исполнением
VladPTZ
Сообщения: 395
Зарегистрирован: Вт май 31, 2016 6:56 pm
Откуда: Россия Карелия Петрозаводск
Благодарил (а): 95 раз
Поблагодарили: 57 раз

Re: Индикация света в доме

Сообщение VladPTZ » Сб дек 15, 2018 1:56 pm

У меня отображается через состояние выключателя в меню управления.
В меню управления элемент выключатель в нем привязываем объект выключателя и свойство например status (которое зависит от состояния выключателя)
Сервер МД на x86 micro pc ssd + HDD, OC Debian, терминал Xiaomi Redmi note 7
Мои исходники для мд управляемых устройств https://github.com/vgamaev/ESPMDDEVICE
John
Сообщения: 38
Зарегистрирован: Пн ноя 10, 2014 1:52 pm
Благодарил (а): 12 раз
Поблагодарили: 0

Re: Индикация света в доме

Сообщение John » Сб дек 15, 2018 2:11 pm

В доме будет около 30 источников света и выключателей соответственно, как я понимаю, нужен сценарий который будет регулярно опрашивать все указанные объекты и суммировать их статусы, если сумма больше 0, то где-то в доме свет горит и у созданного объекта (например HomeLightOn появляется статус 1), но вот как это реализовать программно....
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Индикация света в доме

Сообщение Chainik » Сб дек 15, 2018 5:26 pm

Если все источники света/выключатели не разбросаны хаотично по Мажордомо, а собраны в один класс (например, "Lighting"), то можно сделать так
(Их статусы, естественно, должны быть или "0" или "1".)

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

$objects=getObjectsByClass("Lighting");
foreach($objects as $obj) {
   $value = gg($obj['TITLE'].".Status");
   $Light = $Light + $value;
}
if($Light <> 0) {
//ЧТО-ТО ТАМ ДЕЛАЕМ, например, установим статус
sg('HomeLightOn.Status', 1);}
За это сообщение автора Chainik поблагодарили (всего 2):
John (Вс дек 16, 2018 2:26 am) • Step40 (Вс дек 16, 2018 4:58 am)
Рейтинг: 2.33%
John
Сообщения: 38
Зарегистрирован: Пн ноя 10, 2014 1:52 pm
Благодарил (а): 12 раз
Поблагодарили: 0

Re: Индикация света в доме

Сообщение John » Вс дек 16, 2018 2:27 am

Огромное спасибо, буду пробовать!
Logrus
Сообщения: 2079
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: Индикация света в доме

Сообщение Logrus » Вс дек 16, 2018 7:05 am

Chainik писал(а):
Сб дек 15, 2018 5:26 pm
Если все источники света/выключатели не разбросаны хаотично по Мажордомо
а они разбросаны, можно массив классов конечно задавать, но ...
вчера решал эту задачу через getObjectsByProperty пару часов убил, много нового узнал
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Ответить