Софт MajorDoMo для организации Умного дома

Оглавление статьи: Софт MajorDoMo для организации Умного дома
Содержание

Если еще несколько лет назад фраза «умный дом» звучала как что-то фантастическое, дорогое и недоступное, то сегодня все больше людей оснащают свои жилища смарт-устройствами и комплексами. Существуют различные подходы к организации интеллектуального домашнего хозяйства, отличающиеся протоколами, программными оболочками и нюансами настройки. Обычно сборка и конфигурирование такой системы требует определенных специальных познаний в IT, но некоторые разработчики предлагают готовые решения для построения «умного дома». Одно из таких решений — open-source проект MajorDoMo.

Логотип

Что это такое

Majordomo — свободно распространяемая кроссплатформенная программа, предоставляющая все необходимы инструменты для организации смарт-жилища:

  • серверную часть;
  • плагины для различного оборудования;
  • поддержку сценариев;
  • работу с разнообразными существующими протоколами обмена данными.

«Мажордомо» умеет взаимодействовать с умными выключателями, розетками, датчиками и реле. Все элементы настройки и управления сведены в едином простом веб-интерфейсе, устанавливающемся на центральный хаб системы.

Таким образом, MajorDoMo — сервер «умного дома» обеспечивающий согласованную работу прочих его компонентов. Он может быть установлен как на обычный ПК, так и ноутбук или поддерживаемый микрокомпьютер (например, Raspberry Pi, Arduino и прочие). Программа получает данные от сопряженных с ней датчиков и отдает заданные владельцем команды, исполняемые конечными устройствами и контроллерами.

MajorDoMo

Для понимания работы программы необходимо выяснить ее логическое устройство.

Логические компоненты

С точки зрения MajorDoMo умный дом состоит из логических элементов. Платформа оперирует четырьмя основными понятиями — объекты, классы, свойства и методы.

Объекты

В терминологии ПО объект представляет собой физический контроллер с обратной связью, обеспечивающий взаимодействие между сервером и управляемым контроллером датчиком. Таким устройством может являться и самостоятельно собранный прибор, и заводской. Умный дом «Мажордомо» поддерживает множество основных протоколов smart home:

  • Z-Wave;
  • Zigbee.
  • MQTT;
  • Broadlink, и прочие.

контроллер

Классы

Следующая сущность в экосистеме рассматриваемого ПО — класс. В нем объединены однотипные объекты. Например, это может быть класс устройств «выключатели» с двумя состояниями (вкл/выкл) и методами «включить» и «выключить». Или «датчики движения», чье состояние изменяется по детекции перемещения в зоне действия.

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

Свойства

Каждый элемент «умного дома» обладает собственным состоянием, которое он возвращает контроллеру и в MajorDoMo. Это состояние и называется свойством объекта. Его можно не только получать, но и отправлять на устройство, которое обработает команду и вернет некий заданный результат (например, пользователь задаст кондиционеру уровень поддерживаемой температуры, а прибор перейдет в соответствующий режим работы).

Управление со смартфона

Методы

В логике «Мажордомо» метод — некоторое управляющее действие, команда, принятая и обработанная устройством/датчиком.

Функции и возможности

Платформа MajorDoMo — полноценное и весьма мощное решение для хаба «умного дома». Мощь заключена в модульности системы: все используемые объекты заводятся в виде плагинов. Пользователю не придется разбираться в коде, тонкостях протоколов взаимодействия и сопряжения контроллеров и датчиков, если для них написан модуль, все будет работать, конфигурироваться, мониториться и управляться из единого интерфейса. Сложность возникнет лишь в случае, если готового решения нет: тогда понадобится или учиться языку PHP, или привлекать специалистов.

Умный дом

Сами по себе модули содержат обширные настройки: в соответствующем разделе интерфейса можно, например, указать цвет пользователя, разрешенные ему компьютеры для входа, и так далее.

Электронный «мажордом» способен управлять многочисленными умными устройствами:

  • розетками;
  • лампами;
  • бытовой техникой;
  • домашним мультимедиа;
  • кондиционерами;
  • отопительными системами;
  • охранными комплексами;
  • инженерным и сантехническим оборудованием, и так далее.

Умеет он взаимодействовать и с интернет-сервисами (например, для поиска новостей). Кроме того, через глобальную сеть обеспечивается удаленный доступ и своевременное обновление.

Электронный мажордом

Интересна добавленная разработчиками функция интеграции с помощником «Алиса» от Яндекса. С ее помощью можно осуществлять голосовое управление компонентами смарт-дома и выполнять другие действия.

Для продвинутых пользователей существует возможность дописывать модули и сценарии на языке программирования PHP. В системе также присутствует встроенный визуальный конструктор Blockly, обеспечивающий простое создание алгоритмов:

алгоритм

Комплекс наверняка станет интересен начинающим и продвинутым программистам. Разработка ПО под MajorDoMo не отличается высоким порогом входа, необходимо лишь обладать пониманием языка PHP и некоторых смежных дисциплин (таких, как JS, CSS). С них и следует начинать осваивающим разработку под эту платформу джуниор-кодерам.

Установка

Аппаратная часть

Прежде, чем начать развертывание, следует подобрать оборудование для системы. Под «Мажордомо» допустимо использовать практически любой не очень старый компьютер или ноутбук. Но, как правило, при реализации смарт-дома используют одноплатные миникомпьютеры: они бесшумны, надежны, дешевы и достаточно производительны

Для этой задачи хорошо подходят платы Raspberry Pi 2/3, на примере которых мы далее рассмотрим основные моменты установки и конфигурирования.

плата Raspberry Pi

Развертывание программы

Версии ПО существуют и под Windows, и для Linux. Неискушенному пользователю стоит выбрать Windows-вариант, поскольку он проще в настройке и конфигурации. В рамках данной статьи мы приведем базовые шаги в случае с Linux и RPI.

Развертывание программы

Win-версия устанавливается как обычное приложение. Для RPI разработчики создали и поддерживают специально собранный образ, доступный на странице https://mjdm.ru/skachat-majordomo/:

образ

Существует возможность развертывания и с нуля на «чистый» Raspbian (или другую версию Linux). Для этого необходимо присутствие в ОС:

  • сервера базы данных MySQL (MariaDB);
  • веб-сервера, например, Apache;
  • интерпретатора php с некоторыми модулями и оболочки PhpMyAdmin.

Установка MajorDoMo и его тонкая настройка подробно описаны в официальной документации к Windows- и Linux-вариантам. Энтузиасты также создали скрипт автоматизации, который развертывает весь программный комплекс самостоятельно. Получить его и запустить инсталляцию можно следующими командами:

wget https://raw.githubusercontent.com/immortalserg/installmd/master/installmd
chmod +x installmd
./installmd -t

Результаты появятся в командной строке. Красный цвет выводимого текста отмечает критические предупреждения.

в командной строке

Скрипт запросит пароль пользователя root создаваемой БД MySQL и учетной записи Pi. Данные аккаунта Pi вводить необходимо в любом случае, даже если такого пользователя в системе нет.

Иных действий не понадобится. После завершения работы скрипта будет выдано сообщение «Готово».

Готово

На этом этапе следует перезагрузить компьютер, после чего интерфейс умного дома MajorDoMo станет доступен для настройки через браузер по IP-адресу или имени узла md.lan. Имеется также доступ по протоколу SSH и проброс vlc over http.

Пример главной страницы:

Пример главной страницы

Дополнительно потребуется установить PhpMyAdmin:

./installmd -p

А также Java и сервер Blynk (нужен для разработки и функционирования приложений на iOS/Android).

./installmd -j
./installmd -b

Для добавления расширенной конфигурации выполняется команда:

./installmd -c.

Она дополняет базовую поставку некоторыми скриптами, сценами и элементами, а также оптимизирует работу с базой.

После этого можно приступать к тонкой настройке и сопряжению с периферией.

Заключение

MajorDoMo — интересный, активно развивающийся, мощный и многофункциональный сервер «умного дома» с поддержкой большинства основных протоколов и технологий. Его ключевые преимущества:

  • бесплатность;
  • модульность;
  • широкий набор возможностей;
  • нетребовательность к аппаратным ресурсам;
  • простая кастомизация и доработка благодаря языку PHP.

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

Видео по теме

Хорошая реклама

Добавить комментарий Ваш e-mail не будет опубликован. Обязательные поля помечены *