Поэтому хочу свои заметки адресовать тем, у кого после знакомства со статьями Андрея остались вопросы по поводу того, как же все это работает. Замечательных статей Андрея это, конечно же, не заменит, однако, надеюсь, снимет элементарные вопросы, которые, как я заметил, часто задают начинающие «строители умных домов» или просто заинтересовавшиеся темой.
Буду стараться писать максимально доступно и объяснять, что называется «на пальцах». Бывалых «строителей УД» прошу не забрасывать меня сразу тяжелыми предметами и простить в некоторых случаях намеренное упрощение и пренебрежение мелкими деталями. Ибо цель – крупными мазками показать «новичкам», как работает MegaD (в просторечии –- Мега).
А подключим-ка мы ГЕРКОН
http://ab-log.ru/forum/viewtopic.php?f= ... 309#p28309
Подключим ДАТЧИК ДВИЖЕНИЯ и настроим автовыключение «забытого света»
http://ab-log.ru/forum/viewtopic.php?f= ... 440#p28440
Нет протечкам! Подключим ДАТЧИК ПРОТЕЧКИ и шаровый кран с электроприводом
http://ab-log.ru/forum/viewtopic.php?f= ... 789#p28789
«Пощелкаем» телевизором через ИК ПЕРЕДАТЧИК
https://www.ab-log.ru/forum/viewtopic.p ... 641#p30641
ВИДЕОНАБЛЮДЕНИЕ: «смотреть могут не только лишь все» (c)
https://ab-log.ru/forum/viewtopic.php?f ... 573#p33573
Диммировали, диммировали и «выдиммировали»
https://www.ab-log.ru/forum/viewtopic.p ... 406#p35406
Давай сделаем это по-быстрому или «мини-УД на коленке»
https://ab-log.ru/forum/viewtopic.php?f ... 887#p38887
MegaD, освещение, MajorDoMo
https://www.ab-log.ru/forum/viewtopic.p ... 104#p40104
Автономные возможности MegaD на примере моноблока (MegaD-2561-24I14O-RTC-POE)
https://ab-log.ru/forum/viewtopic.php?f ... 055#p41055
Перезагружаем зависший роутер / USB-модем
https://www.ab-log.ru/forum/viewtopic.p ... 961#p45961
Оч.умелые ручки или колхоз на марше
https://www.ab-log.ru/forum/viewtopic.p ... 031#p46031
Приручаем расширитель входов MegaD-16I-XT
https://www.ab-log.ru/forum/viewtopic.p ... 252#p46252
Куда вы удалились? Снова про ДАТЧИКИ ДВИЖЕНИЯ
https://www.ab-log.ru/forum/viewtopic.p ... 022#p47022
Опрашиваем ЦИФРОВЫЕ ДАТЧИКИ
https://ab-log.ru/forum/viewtopic.php?f ... 348#p47348
Датчики Холла вместо герконов на окнах
https://www.ab-log.ru/forum/viewtopic.p ... 791#p47791
Подсветка выключателей
https://www.ab-log.ru/forum/viewtopic.p ... 098#p48098
Автоматизация входной группы
https://www.ab-log.ru/forum/viewtopic.p ... 781#p48781
Вычисляем долготу дня, время восхода и заката Солнца
https://www.ab-log.ru/forum/viewtopic.p ... 405#p51405
Заметки на полях
Автопроветривание теплиц (предыстория)
Автополив теплиц (предыстория)
Управление дренажным насосом (предыстория)
Опрос DS18B20, подключенных шиной
Все порты MegaD на одной странице
Совмещаем "Удаленный термостат" и управление с сервера
Как это работает (на примере управления освещением)?
Необходимый комплект оборудования будет состоять из:
1. Интерфейсного модуля MegaD-2561 («мозг», который будет по сети взаимодействовать с сервером, получать информацию от исполнительного модуля и отдавать ему команды).
2. Исполнительного модуля MegaD-7I7O-R (соединен шлейфом с MegaD-2561, «отлавливает» срабатывание выключателей и переключает реле). Данный исполнительный модуль содержит 7 входов типа «кнопка» и 7 выходов на реле.
3. Блока питания на 12 В, например, Mean Well DR-60-12 (для питания MegaD-2561).
Все это монтируется на DIN-рейку и соединяется между собой. На блок питания подается переменное напряжение 220 В от сети. На MegaD-2561 подается постоянное напряжение 12 В от блока питания (главное не перепутать полярность!). Мега и исполнительный модуль «общаются» между собой через шлейф.
Теперь обратимся к организации электропроводки. Для начала вспомним «классическую схему», где фаза «разрывается» на выключателе. Короткая анимация.
В случае с MegaD схема проводки будет иной. Короткая анимация.
То есть роль физического выключателя, разрывающего напряжение, подаваемое к нагрузке (лампочке), будет играть реле исполнительного модуля. Роль же нажимного выключателя сводится лишь к информированию Меги о том, что он сработал.
Чтобы совсем уже было все понятно, размещу еще одну картинку.
На практике удобно, чтобы провода сначала приходили на винтовые клеммы, а потом отдельными "хвостами" подключались "по местам назначения".
Два слова о проводах и выключателях. Видно, что от выключателя должны приходить две жилы провода и подключаться ко входу Меги. Если выключатель имеет несколько клавиш, то от каждой клавиши должна приходить своя пара жил. Поскольку силового напряжения в этих проводах не будет, можно использовать для прокладки любую «лапшу». Но если проложить стандартные провода, используемые для освещения (сечением 0,75 – 1,5 мм2), то вы сохраните гибкость и при необходимости сможете все перекоммутировать на классическую схему электропроводки. С «лапшой» такой фокус не пройдет.
Чисто технически можно использовать и обычные выключатели, у которых есть 2 фиксируемых положения. Но в УД обычно используют выключатели без фиксации, или кнопки (http://ab-log.ru/smart-house/accessories), поскольку положение обычного выключателя ничего не скажет нам о том, включен свет или выключен. Например, мы вошли в комнату, щелкнули выключателем, свет включился, а потом со смартфона/планшета/ноутбука выключили свет (или он сам выключился по команде с сервера как «забытый», когда в помещении продолжительное время отсутствовало движение). Обычный выключатель при этом останется в исходном положении.
На практике то, что на рисунке обведено пунктирной линией, обычно помещают в один большой (БОЛЬШОЙ!) щиток/ящик/электрошкаф (http://ab-log.ru/forum/viewtopic.php?f= ... %B2#p21886). Используют один на здание или один на этаж (чтобы сократить расход проводов). И все провода «сгоняют» туда. А «большой», потому что разместить нужно много всего. Например, блок питания для Меги (как на рисунке) + Мега + Исполнительный модуль = 25,5 см. А еще будут автоматы, УЗО, могут быть промежуточные реле, магнитные пускатели (для больших нагрузок), драйверы управления двигателями, винтовые клеммы (для удобства монтажа), дополнительные блоки питания, свитч-коммутаторы, ИБП, одноплатные ПК в качестве сервера и т.д.
Но вернемся к освещению. Схематично, все будет работать так. Щелкнув выключателем, мы сообщим Меге о нашем намерении включить/выключить свет. Мега по сети сообщит серверу (если его адрес прописан в настройках), какой именно вход сработал и будет ожидать от него команд на переключение выходов (реле) исполнительного модуля. При поступлении ответа от сервера с командами, Мега их выполнит. Если в течение примерно 1,5 секунд ответ от сервера не поступит, то контроллер выполнит действие по умолчанию, самостоятельно переключив выходы, которые прописаны в настройках сработавшего входа в поле «Act». Так что, если вдруг «умрет» сервер или «отвалится» сеть, без света вы не останетесь.
Некоторые используют Мегу и без сервера в режиме только выполнения действий по умолчанию. В этом случае в настройках контроллера адрес сервера не прописывается и Мега сразу выполняет указанные в поле «Act» действия, не ожидая ответа от сервера. В нашем примере достаточно прописать 7:2 в настройках входа P0 (к которому подключен выключатель-кнопка) в поле «Act», тогда при срабатывании входа Мега переключит реле на выходе P7 (к которому подключена лампочка) в противоположное состояние. Т.е. если было «выключено» – включит, а если «включено» – выключит.
А где у него настроечная таблица?
Теперь самое время немного поговорить о настройках Меги.
А зачем там что-то настраивать и почему «аппарат» сразу не работает «из коробки»? – спросит меня недоумевающий читатель. А вот зачем. Дело в том, что программно один и тот же порт Меги может работать в совершенно разных режимах: может быть как входом, так и выходом (или даже попеременно с высокой частотой и тем и другим!), т.е. функционировать как кнопка, источник ШИМ-сигнала, обработчик данных с цифровых и аналоговых датчиков, переключатель реле и т.д. Однако, что именно возможно «повесить» на данный порт, будет определяться схемотехникой подключенного к контроллеру исполнительного модуля. Пока наш контроллер не наделен искусственным интеллектом и телепатическими способностями, нам придется «в явном виде» указать ему, в каком режиме он должен работать с тем или иным портом, в соответствии с типом подключенного к Меге исполнительного модуля и «железом», которое мы подсоединили к конкретному порту. Благо сделать это несложно, т.к. Мега имеет встроенный web-интерфейс.
В нашем примере с управлением освещением мы подключили к Меге исполнительный модуль MegaD-7I7O-R, у которого 7 входов типа «кнопка» и 7 выходов на реле. На рисунке выше выключатель-кнопка подключен к первому порту, обозначенному как «P0», а лампочка подключена к реле на порту «P7». Значит порт P0 нужно сконфигурировать как вход (In), а порт P7 – как выход (Out). Если вместо MegaD-7I7O-R подключить к Меге исполнительный модуль MegaD-14-R (у которого 14 релейный выходов), то порт P0 нужно будет конфигурировать как выход. А если мы подключили исполнительный модуль MegaD-14-IN и подсоединили к порту P0, например, цифровой датчик температуры DS18B20, то порт P0 следует настроить на работу с цифровыми датчиками по протоколу 1-wire. Так что необходимость настройки портов Меги – лишь производная от широкой функциональности устройства.
При «заводских» настройках адрес Меги в сети 192.168.0.14, а пароль – sec. Если в адресной строке браузера мы наберем
http://192.168.0.14/sec
и нажмем на Enter, то увидим стартовую страницу Меги. Видно, что порты находятся в режиме «NC» (не сконфигурированы). Но зайдем ненадолго в пункт «Config». В поле «IP» нужно вписать IP-адрес Меги, по которому к контроллеру нужно обращаться из сети. Чтобы сервер «видел» Мегу ее IP-адрес должен принадлежать к той же подсети, что и адрес сервера. Т.е. если IP-адрес сервера, например, 10.165.1.115, то адрес Меги нужно указать 10.165.1.XXX, где «XXX» – любые цифры, от 1 до 254, не совпадающие с IP-адресами других устройств в этой же подсети.
В поле «SRV» указывается IP-адрес сервера.
В поле «Script» нужно написать имя скрипта, который будет запускать Мега на сервере при срабатывании входов, например megad.php.
По завершении нажмем «Save».
Теперь настроим порт P0, где у нас выключатель-кнопка. Определим его как вход (In). Можем прописать действие по умолчанию 7:2 (переключать реле, на порту P7, к которому у нас подключена лампочка). В поле «Mode» задается режим реагирования Меги на события, происходящие со входом. «P» – Мега будет реагировать на замыкание входа, «R» – на размыкание, «P&R» – на замыкание и на размыкание. Для выключателя-кнопки выберем «P». Однако если мы решили «соригинальничать» и применили обычные выключатели, то нам потребуется режим «P&R». Многие устройства (например, датчики протечки, датчики движения) размыкают «сигнальную» цепь при срабатывании, поэтому для них выбирают режим «R». Осталось настроить порт P7, к которому подключена лампочка. Так как мы используем исполнительный модуль MegaD-7I7O-R на порту P7 находится реле. Поэтому сконфигуриуем порт P7 как выход (Out). В поле «Mode» установим SW (простое переключение). По завершении нажмем «Save».
Теперь можно «пощелкать» реле прямо из web-интерфейса Меги, нажимая ссылки «ON» и «OFF» на странице порта P7. Также можно переключить реле, выполнив из строки браузера команду
http://192.168.0.14/sec/?cmd=7:2
или дать команду на включение (http://192.168.0.14/sec/?cmd=7:1)
или выключить (http://192.168.0.14/sec/?cmd=7:0).
Также, не покидая браузер мы можем узнать, в каком состоянии находится тот или иной порт (например, P7). Для этого спросим Мегу из адресной строки
http://192.168.0.14/sec/?pt=7&cmd=get
В качестве ответа получим надпись на странице браузера «ON» или «OFF».
Аналогичным образом можно узнать и состояние входа (например, P0).
http://192.168.0.14/sec/?pt=0&cmd=get
У нас к нему подключен выключатель-кнопка, так что данное действие вряд ли представляет практический интерес. А вот если бы вместо кнопки был подключен геркон, смонтированный на окне, то опросив порт мы бы узнали, открыто окно или закрыто (и если открыто, сервер не позволил бы поставить помещение на охрану и сообщил бы «голосом», какое именно окно открыто).
На этом разрешите временно прервать повествование. Когда появится время (и вдохновение) продолжу свой рассказ, сосредоточившись на самом интересном: куда нужно тыкать пальцем в смартфон/планшет/ноутбук, чтобы УД совершил что-то полезное.
Это страшное слово «сервер»
Но если сказать, что сервер ¬- это компьютер, выделенный для выполнения определенной задачи, то не такое уж и страшное. Ну кто из нас боится домашнего компьютера (кроме Ассанжа и Сноудена)? К особенностям работы сервера относят то, что он должен трудится 24 часа в сутки 7 дней в неделю. Ведь управлять УД нужно круглосуточно. В качестве сервера можно взять любой компьютер от небольших и маломощных (http://ab-log.ru/smart-house/ethernet/cubieboard-server), до обычных домашних настольных компьютеров или ноутбуков. Как у одного, так и у второго варианта найдутся свои сторонники, аргументировано объясняющие, почему именно этот вариант самый лучший. Не буду втягиваться в эту дискуссию. Лишь отмечу, что организовать сервер на обычном компьютере средней бытовой размерности начинающему будет гораздо проще, чем заставить работать компактные «кубики/малинки/апельсинки...", где нужны соответствующие навыки и сноровка.
Для чего же нам вообще нужен сервер, если у нас уже есть «мозг» в виде Меги? А нужен он нам потому, что у Меги и сервера совершенно разные задачи. Мега неустанно слушает входы, отфильтровывает «дребезг контактов», «общается» с датчиками на понятном им языке и т.д., словом берет на себя всю низкоуровневую работу. Трансляцией же web-интерфеса в сеть, работой с графикой, звуком, правами доступа пользователей, а главное для нас – отработкой всей логики работы систем УД будет заведовать сервер.
Да, Мега может самостоятельно совершать простейшие действия, например, сработал вход --> включить выход(ы) --> сделать паузу --> выключить выход(ы), но это в идеологии, заложенной автором (которую я всецело разделяю), что называется «аварийный» режим, когда по каким-то причинам сервер оказался недоступен. В УД логика часто оказывается более сложной. Там, прежде чем что-то сделать, подчас, надо узнать дату и время, запросить состояние входов и/или выходов, помнить установленный режим работы тех или иных систем УД (ручной/авто, стандартный/экономный и т.д.), выполнить вычисления (например, вычислить среднее из последних нескольких значений с датчиков температуры или освещенности) и пр. Вот всеми этими сложными вещами и занимается «его величество» сервер.
Для такого рода работы требуется соответствующее программное обеспечение. Обычно это
web-сервер (транслирует web-страницы в сеть),
система управления базами данных (или СУБД, занятая хранением и обработкой всевозможных структурированных табличных данных),
и язык программирования.
«Классикой жанра» уже стало использование связки Apache + MySql + PHP. Есть готовые сборки вроде Денвера, которые автоматически устанавливают эти программы и настраивают их совместную работу. Только вот неподготовленному пользователю получить что-нибудь красивое даже от такого настроенного «комбайна» будет очень непросто. Нужны серьезные навыки.
Поэтому давайте остановим свой выбор на ПО из того списка, который указан в начале базовой статьи Андрея про MegaD-2561 (http://ab-log.ru/smart-house/ethernet/megad-2561). Завсегдатай этого форума OlegJktu84 подготовил краткий обзор по использованию MajorDoMo, IoBroker и OpenHUB (viewtopic.php?f=1&t=1207#p22429).
Мы же для наших опытов воспользуемся Мажордомо. И не потому, что эта программа чем-то лучше остальных. А только лишь потому, что я ни с чем другим больше не работал. Программа не всегда работает стабильно. Бывает, что «падают» системные циклы, «крошатся» таблицы в базе данных, после обновлений иногда «слетают» какие-то настройки. Но все это я готов простить Мажордомо за гибкость и возможность большинство задач решить множеством разнообразных способов. И не забывайте, что этот инструмент достался нам абсолютно бесплатно, благодаря энтузиазму очень небольшого числа неравнодушных людей во главе с Сергеем. А что касается возникающих проблем, то они разработчиками решаются, но поскольку программа постоянно развивается, появляются новые «баги» на «отлов» и устранение которых требуется время.
Итак, приступим.
Установка MajorDoMo (под Windows)
Под Windows установка Мажордомо не отличается от установки других программ. Скачиваем дистрибутив (https://mjdm.ru/skachat-majordomo/) и запускаем его. В процессе установки нам потребуется лишь указать наш часовой пояс , язык и тему оформления интерфейса (темную или светлую). По умолчанию программа устанавливается в директорию «_majordomo» на системном диске. Разработчик рекомендует ее не менять.
Про сложность установки под Линукс на форуме слышал разные мнения от «делал по инструкции и все без проблем «взлетело», до «сам программист, бьюсь третий день… (далее следует непереводимая игра слов из длинного набора идиоматических выражений)».
Я устанавливал под Windows. По окончании установки на рабочем столе (или в меню «Пуск») появляется ярлык для запуска программы. После старта страница Мажордомо открывается в браузере по адресу http://127.0.0.1/ (или http://localhost/), а в системном трее (значки рядом с часами в нижнем правом углу), появляется значок программы (даже два значка). Для корректного завершения работы Мажордомо необходимо запустить на исполнение файл C:\_majordomo\shutdown.bat или нажать правой кнопкой мыши на значок Мажордомо в системном трее и выбрать пункт «Close MajorDoMo».
Внешний вид программы после установки.
Теперь можно обращаться к Мажордомо из любого устройства в локальной сети, имеющего браузер, по путям:
http://IP-адрес_сервера/ -- главная страница Мажордомо
http://IP-адрес_сервера/menu.html -- только меню Мажордомо (удобно для смартфонов)
http://IP-адрес_сервера/pages.html -- только страницы Мажордомо
http://IP-адрес_сервера/admin.php -- вход в Панель управления Мажордомо,
где IP-адрес_сервера – это IP-адрес компьютера, где установлен Мажордомо, в локальной сети. Чтобы узнать этот адрес в Windows можно выполнить из командной строки (Клавиша Майкрософт + R) команду cmd, а потом ipconfig. В результате появится примерно вот такое окно
Зеленой рамкой я обвел искомый IP-адрес.
Не буду писать про соблюдение требований безопасности при доступе к системе из сети, об этом вы сможете прочитать на форуме.
Настройка на работу с Мегой
Мажордомо взаимодействует с различным оборудованием с помощью установленных модулей. Под каждый вид оборудования (из поддерживаемых) предусмотрен свой модуль. Для Меги нам потребуется установить и настроить модуль «MegaD devices» (Панель управления --> СИСТЕМА --> Маркет дополнений --> Вкладка «Оборудование»). Ставим «галку» рядом с пунктом «MegaD devices» и жмем кнопку «Добавить».
По окончании установки в Панели управления в разделе УСТРОЙСТВА появится новый пункт «MegaD». Зайдем туда. Правда, предварительно, пропишем адрес сервера в конфигурацию Меги, а также запускаемый скрипт megad.php.
Уж не знаю как, но у меня модуль «подцепил» Мегу даже без нажатия кнопки «Сканировать устройства». (Излишне напоминать, что Мега к моменту сканирования должна быть подключена к серверу (сети) и должна получать питание 12 В.) Если нажать на «карандаш» напротив вновь добавленного устройства, то увидим такую картину
Когда мы вносим какие-либо изменения в настройку портов Меги, например, добавляем действие по умолчанию при срабатывании входа P0
необходимо «перечитать» конфигурацию Меги в модуле на вкладке «Advenced».
Собственно, уже после этого Мажордомо через модуль MegaD будет давать команду нашей Меге на переключение порта P7 при срабатывании порта P0.
Но у нас то уже давно «палец чешется» от желания потыкать им в экран для управления выходами контроллера. Поэтому займемся настройкой интерфейса.
Настраиваем выключатель на сцене и в меню MajorDoMo
Кому не нравится страничка «Добро пожаловать!» могут безболезненно ее удалить.
Напомним, что выключатель-кнопка (или просто 2 жилы провода для теста) подключены к порту P0, а лампочка (а для теста нам хватит и соответствующего светодиодного индикатора Меги) – к порту P7. Возможных вариантов настройки может быть очень много. Мы же воспользуемся одним из них. Если коротко, то сейчас мы создадим для реле Меги на порту P7 виртуальный объект и пропишем команды, а потом создадим выключатели в меню Мажордомо и на тестовой сцене (которая там уже есть по умолчанию). Распишем все по шагам.
1. Для выхода Меги P7 создаем виртуальный объект в классе Relays (Панель управления --> ОБЪЕКТЫ --> Объекты --> Relays --> [вкладка] Объекты --> «Добавить новый объект» ). Назовем его, например, «Relay_014-07». У объекта уже имеются свойство «status» и «штатные» методы «turnOn», «turnOff» и «switch».
Произведем настройку методов путем записи кода:
[Везде перед сохранением введенного пользователем кода в пункте «Вызывать родительский метод» проставим радиоточку в положение «НИКОГДА».]
в «turnOn» запишем
Код: Выделить всё
file_get_contents("http://192.168.0.14/sec/?cmd=7:1");
setGlobal('Relay_014-07.status', 1);
в «turnOff» запишем
Код: Выделить всё
file_get_contents("http://192.168.0.14/sec/?cmd=7:0");
setGlobal('Relay_014-07.status', 0);
в метод «switch» запишем код PHP
Код: Выделить всё
file_get_contents("http://192.168.0.14/sec/?cmd=7:2");
$state =file_get_contents("http://192.168.0.14/sec/?pt=7&cmd=get");
if ($state == "ON") {
setGlobal('Relay_014-07.status', 1);
} else {
setGlobal('Relay_014-07.status', 0);}
2. Создадим виртуальный выключатель в меню Мажордомо (Панель управления --> ОБЪЕКТЫ --> Меню управления --> [редактируем раздел] Управление --> [Дочерние пункты:] «Добавить»). Назовем его, например, «Button_1». Выбираем
Тип: «Выключатель» (из выпадающего списка)
Связанный объект: «Relay_014-07»
Свойство: «status»
Метод: «switch»
3. Создадим выключатель на тестовой сцене (Панель управления --> ОБЪЕКТЫ --> Сцены --> [редактируем] Scene 1 --> [вкладка] Элементы --> «Добавить новый элемент»). Назовем новый элемент сцены, например, «Butt_1».
СОВЕТ: желательно, чтобы имена объектов в Мажордомо были уникальными!
Выбираем
Тип «Выключатель»
Связанный объект «Relay_014-07»
Из интерфейса Мажордомо все уже будет работать. Выглядит это так
Но нам еще нужно обеспечить реакцию объектов интерфейса на нажатие физического выключателя-кнопки (срабатывание контактов на входе Меги P0). Для этого завершим настройку.
4. В модуле MegaD у Меги на вкладке «Данные» у порта «0 Input» в поле «Связанный объект» выставляем «Relay_014-07». В поле «Метод» выставляем «switch».
Также я проставляю галку в поле «Skip default action», потому что не хочу, чтобы сервер запускал выполнение действия по умолчанию. Пусть действие по умолчанию выполняет сама Мега, когда сервер недоступен.
Еще остается один момент, который стоит упомянуть. Наша лампочка может быть включена и без участия Мажордомо (самой Мегой путем выполнения сценария по умолчанию, из web-интерфейса Меги, командой из браузера и пр.). И после того, как мы включили Мажордомо, между состоянием выключателя на сцене и реальным состоянием лампочки может быть рассогласование. Конечно, при первом клике по выключателю («железному» или на сцене) синхронизация состояний восстановится.
Однако, можно принудительно проводить «сверку» состояний путем запуска скрипта в цикле, например, раз в 15 минут). Назовем скрипт «proverka». (Панель управления --> ОБЪЕКТЫ --> Сценарии --> [вкладка] Сценарии --> «Добавить новый сценарий».)
Выберем при создании категорию, к примеру, «Scenarios».
Код: Выделить всё
$state = file_get_contents("http://192.168.0.14/sec/?pt=7&cmd=get");
if ($state == "ON") {
setGlobal('Relay_014-07.status', 1);
} else {
setGlobal('Relay_014-07.status', 0);
}
setTimeOut('myTimer_proverka','runScript("proverka");',60*15);
А чтобы этот скрипт запустился после старта Мажордомо, можно записать в «onNewMinute» (Панель управления --> ОБЪЕКТЫ --> Объекты --> [класс] Timer --> ClockChime --> onNewMinute) такой код (ниже строки «$m=date('i',time());»)
Код: Выделить всё
if ($m%15 == 0) {runScript("proverka");}
Это что же, спросит меня изумленный читатель, я должен быть программистом!? Ну, в случае с Мажордомо, да. Но совсем чуть-чуть. Чем больше ваши знания и лучше навыки, тем более удобную и красивую систему «под себя» вы сможете настроить. Вот, например, какие непохожие интерфейсы народ «рисует» умеючи (http://majordomo.smartliving.ru/forum/v ... f=4&t=3861). И все это один и тот же Мажордомо!
ДОПОЛНЕНИЕ
Все, что написано выше в плане программной настройки освещения будет работать и имеет право на существование. Однако, как я успел заметить, более опытные пользователи Мажордомо настраивают все более «технологично», зачастую, вообще не используя «предустановленные» в Мажордомо классы. Сейчас я попробую коротенько проиллюстрировать пример подобной настройки. Самое замечательное в этом то, что при большом количестве управляемых объектов (в данном случае – цепей освещения) значительно уменьшается трудоемкость настройки в части написания программного кода. Ведь в частном доме или большой квартире количество цепей освещения может измеряться десятками!
Как всегда пойдем по шагам.
1. В объектах создаем новый класс. Назовем его, к примеру, «Lighting».
2. Добавим в созданный класс свойства.
ipAddress– IP-адрес Меги;
Password – Пароль Меги;
Port – номер порта Меги (куда подключена цепь освещения);
Status – «индикатор» состояния для интерфейсных элементов-выключателей (0 – свет выключен, 1 – включен).
3. Добавим в класс методы и пропишем их код. (Обращаю внимание, что код методов мы прописываем именно в методы КЛАССа.)
turnOn – включение света;
turnOff – выключение;
switch – переключение.
Код метода turnOn
Код: Выделить всё
file_get_contents("http://".$this->getProperty('ipAddress')."/".$this->getProperty('Password')."/?cmd=".$this->getProperty('Port').":1");
$this->setProperty('Status', 1);
Код: Выделить всё
file_get_contents("http://".$this->getProperty('ipAddress')."/".$this->getProperty('Password')."/?cmd=".$this->getProperty('Port').":0");
$this->setProperty('Status', 0);
Код: Выделить всё
file_get_contents("http://".$this->getProperty('ipAddress')."/".$this->getProperty('Password')."/?cmd=".$this->getProperty('Port').":2");
$state = file_get_contents("http://".$this->getProperty('ipAddress')."/".$this->getProperty('Password')."/?pt=".$this->getProperty('Port')."&cmd=get");
if ($state == "ON") {
$this->setProperty('Status', 1);
} else {
$this->setProperty('Status', 0); }
Теперь для каждого объекта заполним свойства. Например,
ipAddress – 192.168.0.14 (в соответствии с конфигурацией Меги)
Password – sec (в соответствии с конфигурацией Меги)
Port – 7 (для каждого объекта (цепи освещения) указывается свой номер выхода Меги, куда эта цепь подключена).
5. В объектах интерфейса (выключателях) в меню и на сцене нужно сослаться на метод switch и свойство Status соответствующего объекта. В выключателях на сцене это нужно сделать для каждого состояния (доступно, если в поле «Расширенная настройка» выставить радиоточку в положение «Да»). Условие отображение будет «простое», для состояния on = 1, а для off <> 1, собственно, как выставлено по умолчанию.
Кстати, для ускоренного копирования элементов удобно пользоваться кнопкой «Создать копию (клонировать)».
6. Чтобы подключить «железные» выключатели-кнопки в модуле «MegaD» в строчках соответствующих входов на вкладке «Данные» в поле «Связанный объект» указываем нужный из числа созданных в классе «Lighting» и в поле «Метод» выбираем метод switch. Не забываем проставить галочку в поле «Skip default action».
Собственно, на этом настройка завершена. На мой взгляд, этот вариант намного проще и красивее описанного ранее.
А вот такой код позволит выключить сразу весь свет.
Код: Выделить всё
$objects=getObjectsByClass("Lighting");
foreach($objects as $obj) {
callMethod($obj['TITLE'].".turnOff");
}
А подключим-ка мы ГЕРКОН
http://ab-log.ru/forum/viewtopic.php?f= ... 309#p28309
Подключим ДАТЧИК ДВИЖЕНИЯ и настроим автовыключение «забытого света»
http://ab-log.ru/forum/viewtopic.php?f= ... 440#p28440
Нет протечкам! Подключим ДАТЧИК ПРОТЕЧКИ и шаровый кран с электроприводом
http://ab-log.ru/forum/viewtopic.php?f= ... 789#p28789
«Пощелкаем» телевизором через ИК ПЕРЕДАТЧИК
https://www.ab-log.ru/forum/viewtopic.p ... 641#p30641
ВИДЕОНАБЛЮДЕНИЕ: «смотреть могут не только лишь все» (c)
https://ab-log.ru/forum/viewtopic.php?f ... 573#p33573
Диммировали, диммировали и «выдиммировали»
https://www.ab-log.ru/forum/viewtopic.p ... 406#p35406
Давай сделаем это по-быстрому или «мини-УД на коленке»
https://ab-log.ru/forum/viewtopic.php?f ... 887#p38887
MegaD, освещение, MajorDoMo
https://www.ab-log.ru/forum/viewtopic.p ... 104#p40104
Автономные возможности MegaD на примере моноблока (MegaD-2561-24I14O-RTC-POE)
https://ab-log.ru/forum/viewtopic.php?f ... 055#p41055
Перезагружаем зависший роутер / USB-модем
https://www.ab-log.ru/forum/viewtopic.p ... 961#p45961
Оч.умелые ручки или колхоз на марше
https://www.ab-log.ru/forum/viewtopic.p ... 031#p46031
Приручаем расширитель входов MegaD-16I-XT
https://www.ab-log.ru/forum/viewtopic.p ... 252#p46252
Куда вы удалились? Снова про ДАТЧИКИ ДВИЖЕНИЯ
https://www.ab-log.ru/forum/viewtopic.p ... 022#p47022
Опрашиваем ЦИФРОВЫЕ ДАТЧИКИ
https://ab-log.ru/forum/viewtopic.php?f ... 348#p47348
Датчики Холла вместо герконов на окнах
https://www.ab-log.ru/forum/viewtopic.p ... 791#p47791
Подсветка выключателей
https://www.ab-log.ru/forum/viewtopic.p ... 098#p48098
Автоматизация входной группы
https://www.ab-log.ru/forum/viewtopic.p ... 781#p48781
Вычисляем долготу дня, время восхода и заката Солнца
https://www.ab-log.ru/forum/viewtopic.p ... 405#p51405
Заметки на полях
Автопроветривание теплиц (предыстория)
Автополив теплиц (предыстория)
Управление дренажным насосом (предыстория)
Опрос DS18B20, подключенных шиной
Все порты MegaD на одной странице
Совмещаем "Удаленный термостат" и управление с сервера