Андрей Смирнов
Время чтения: ~15 мин.
Просмотров: 16

Majordomo, с чего начать?

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

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

Одной из них является Умный дом MajorDoMo, а знакомство и настройка многофункциональной системы поможет оптимизировать жизнь человека и улучшить ее качество.

Общее описание и принцип работы

Умный дом MajorDoMo – это приложение, позволяющее адаптировать свое жилище под современные требования и автоматизировать процессы, которые человеку приходится выполнять ежедневно. В качестве ее автора и разработчика выступила белорусская компания МДМ-Интегратор.

Система MajorDoMo распространяется бесплатно, под открытой лицензией MIT. Пользователи должны учитывать, что проект до сих пор находится в стадии разработки.

Поэтому его не рекомендуется использовать для решения задач, которые тем или иным образом могут оказать влияние на жизнь и здоровье людей.

majordomo-integratsiya-termostata.pngИнтеграция термостата в систему Умный Дом MajorDoMo

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

Данное программное обеспечение предназначено для управления контроллерами и датчиками, которые могут срабатывать на движение, тепловую энергию и пр.

К примеру, приложение способно в определенное время включать и выключать бытовую технику, нагревательные приборы, котлы и пр.

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

Установка MajorDoMo не требует специальных навыков. Программа вполне адаптирована для начинающих пользователей.

Определенные навыки по сборке и настройке программного обеспечения требуются при подключении Majordomo Arduino.

Как создать умный дом на базе MajorDoMo

Использование приложения имеет следующие преимущества:

  1. может работать с ОС Windows, Linux и Android;
  2. установка программы под силу пользователям, не имеющим навыков программирования;
  3. система может использоваться для оптимизации процессов в жилых помещениях и на производствах;
  4. вне зависимости от масштаба организации, система бесплатна;
  5. пользователь имеет возможность вступить в сообщество, где идет активное обсуждение проекта и вносятся в него полезные изменения;
  6. к системе MajorDoMo могут подключаться всевозможные виды оборудования;
  7. данное ПО поддерживает несколько языков, в том числе русский и английский;
  8. на базе компании работает интернет-магазин, где можно приобрести дополнения к стандартному ПО.

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

majordomo-server-majordomo.pngСервер для умного дома MajorDoMo

Поэтому рекомендуется в качестве сервера использовать персональный компьютер или нетбук. А так как MajorDoMo нетребователен к «железу», использовать можно старый маломощный компьютер.

Как установить систему

Как уже говорилось выше, установка MajorDoMo возможна на две операционные системы – Windows и Linux. Но так как последняя система менее распространена и более сложна в настройке, целесообразно остановиться именно на Windows.

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

  • запустить exe-файл;
  • в процессе установки желательно не изменять место установки;
  • запустить приложение.

Когда приложение запускается, выполняется определенная последовательность команд. Все они описаны в файле c:_majordomostart.bat. Этот файл можно редактировать, что позволит запускать свои собственные сервисы.

majordomo-ustanovka.pngПроцесс установки системы MajorDoMo

Чтобы проверить корректность загрузки программы, нужно в адресной строке браузера ввести 127.0.0.1. В результате должна отобразиться главная сцена, установленная по умолчанию. Имя пользователя и пароль по умолчанию admin.

Корректный запуск системы возможен только при одновременном запуске системных циклов. В процессе работы часть циклов MajorDoMo может автоматически закрываться за ненадобностью.

Как настраиваются сцены

Создавать и редактировать в MajorDoMo сцены совсем несложно. Но для начала необходимо настроить размер изображения.

Вне зависимости от используемого устройства, разработчик рекомендует использовать значение 606х1024.

Чтобы увидеть главную сцену, нужно зайти в Панель управления, выбрав в ней пункт «Сцены». На экране монитора появляется схематичное изображение сцены.

Перейдя к редактированию сцены, можно изменить ее название, приоритет вывода и фоновое изображение. А перейдя в закладку «Элементы», можно изменять приоритет элементов.

Сцена умного дома MajorDoMo

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

Во вкладке «Редактирование элементов сцены» можно добавлять новые элементы, например, выключатель телевизора, светильника, стиральной машины и пр.

Как подключить и настроить модули

Базовая поставка системы MajorDoMo включает модуль, с помощью которого осуществляется управление другими модулями, даже при отсутствии подключения к интернету. Установить другие модули можно через Маркет дополнений.

Для установки нового модуля нужно проделать следующий путь:

  1. зайти в Панель управления;
  2. посетить раздел «Система», выбрав подраздел «Маркет дополнений»;
  3. выбрать нужный модуль;
  4. нажать на кнопку «Добавить».

Умный дом MajorDoMo предусматривает возможность использования модулей других разработчиков. Чтобы их установить, нужно скачать нужный модуль, распаковав его в корень системы. Затем необходимо перейти в установленный модуль, нажать на его системное имя, совпадающее с названием папки, и кликнуть по появившейся ссылке.

Маркет дополнений в системе MajorDoMo

Теперь остается только подключить плату, а к ней — датчики MajorDoMo и реле, либо оборудование других брендов, и создать сценарий – цепочку событий, происходящих в доме.

Дальнейшая настройка MajorDoMo осуществляется через модуль Простые устройства. С его помощью удается значительно упростить их взаимодействие.

В Панели управления присутствует еще один модуль «Устройства онлайн», позволяющий определять устройства MajorDoMo на предмет их наличия онлайн. Здесь же устанавливается время их включения и отключения.

Заключение

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

Функция перевода систем в экономичный режим работы позволит значительно экономить на энергопотреблении. А возможность индивидуальной настройки сценариев поможет создать комфортные условия проживания.

Видео: Демонстрация системы Умного Дома MajorDoMo в квартире

Пожалуй каждый, кто решил свой дом сделать умным, останавливается на мажордомо, так как он удобен по многим параметрам. Но если же вы никогда прежде с ним не работали, то начать будет достаточно трудно, даже если у вас есть опыт в программировании.

Установка

Первый мой совет:

Если вы никогда раньше не использовали linux. То лучше выбирайте сервер где будет Majordomo на windows.

Изначально я планировал использовать Raspberry PI, как сервер. Но из-за не достаточного опыта в linux, я так и не смог решить ряд проблем по настройке Majordomo. По этому установил majordomo на старый ноутбук, где уже долгое время, безотказно работает и меня по всем параметрам устраивает.

Это просто мой личный опыт, возможно у вас будет все по другому.

Для установки, вам нужно перейти по ссылке и выбрать инсталлятор для вашей OS. И дальше следовать инструкциям. Тут обычно проблем не возникает.

Первые шаги

После установки, вы можете запустить любой браузер и ввести в поле для ссылок слово localhost. Если вы установили все правильно и majordomo у вас запущен, вы зайдете на главную страницу умного дома.

Выглядеть она будет примерно следующем образом:

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

В целом, перед вами панель, где вы сможете управлять вашим домом. А как вы его оформите, зависит от вас самих.

Рабочий стол

Сверху справа есть кнопка “Панель управления

Она так же видна и на предыдущем скриншоте. Эта ссылка введет на рабочий стол, где и будет происходить вся “магия” с вашим домом. Тут вы сможете обрабатывать всю логику, процессы, смотреть за состоянием дома и многое другое.

С левой стороны есть вкладки, рассмотрим несколько из них:

  • Устройства: В этой вкладке вы сможете добавлять ваши устройства, к примеру выключатель, датчик температуры, датчик дыма и другие.
  • Приложения: Дополнительные приложения, которые облегчат вам жизнь. К примеру приложение telegram, вы сможете отправлять сообщение к себе на telegram при каком либо событии, предположим сработал датчик дыма, и вам тут же пришло на телеграм оповещение, о том что много дыма.
  • Система: Тут вы можете отслеживать ошибки системы, обновлять систему, а так же скачивать дополнения (модули), к примеру тот же telegram.

Есть и другие вкладки, мы их рассмотрим чуть позже.

Добавляем первое устройство

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

Первый вопрос, который у вас должен возникнуть: Как сервер будет принимать состояние выключателя. Предположим у вас самодельный выключатель и скорее всего вы будете передавать по протоколу MQTT. Если же вы далеки от паяльника и самодельных устройств, то рекомендую смотреть в сторону Xiaomi, у них есть свои устройства для умного дома, которые достаточно просто внедрить в ваш умный дом.

Для обоих вариантов вам потребуется скачать дополнительный модуль. Предположим у вас выключатель от Xiaomi. Тогда перед тем как продолжить обязательно к прочтению статьи: Как подключить xiaomi к majordomo.

После того как вы справились и подключили xiaomi, вам нужно перейти в Устройства->Простые устройства и добавить новое.

Называем устройство так, как вам удобнее, предположим “Свет в гостиной“, дальше указываем тип устройства, связанный объект создаем автоматически, выбираем местоположение (Для того, чтобы создать свои местоположения, нужно перейти Настройки->Расположение). И нажимаем добавить.

Мы добавили устройство, а это означает, что мы создали объект. Объекты, в данном случае, это и есть ваши устройства, у которых есть свои свойства, к примеру состояние Вклвыкл, а также методы.

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

Для наглядности, давайте найдем наш объект. Объекты->Объекты и находим наш объект отталкиваясь от скриншота:

Скорее всего, он будет называться так же Relay01. Если вы перейдете в объект, то перед вами появятся 3 вкладки Детали, Свойства, Методы. О них я и говорил ранее. Если перейти во свойства, то вы можете найти свойство Relay01.status. Это и есть главное свойство выключателя вклвыкл.

Теперь когда мы убедились, что наше устройство создалось и объект существует, нам нужно привязать свойство status, к реальному устройству.

Реальное устройство

Для этого переходим в Устройства->Xiaomi Home и выбираем то устройство, которое хотим привязать.

Нажимаем на карандашик, дальше переходим на вкладку “данные“.

Находим колонку Channel, к нему мы привязываем наш соданный объект и свойство status, как на скриншоте.

Теперь, когда вы будете вклвыкл свет, в объекте в реальном времени будет изменяться значение status. Осталось вывести выключатель на главную страницу.

Меню управления

Объекты->Меню управления

Добавляем новый раздел и заполняем как на примере:

После того, как вы нажмете добавить, у вас появятся на этой же странице новые поля, вам понадобятся только 2:

  • Связанный объект
  • Свойство

Выбираем наш объект, свойство status и сохраняем изменения.

Теперь, если перейти на главную страницу умного дома, то с левой стороны вы увидите вами добавленный выключатель и если его по нажимать, то вы увидите как реальный выключатель включает и выключает свет в гостиной.

Вот и все что нужно знать

Это все что вам нужно знать на данном этапе, чтобы понять как работает система majordomo. Все остальное будет приходить с опытом. Так же будут появляться новые вопросы, которые я постараюсь ответить в этой рубрике.

Вы уже можете узнать как сделать собственный выключатель. Если остались вопросы, пишите в комментариях.

В прошлой части мы остановились на том, что написали скрипты LUA для работы с преобразователем движения HC-SR501. Устройство получилось автономным, при срабатывании отправляло данные по UART, а также отслеживать состояние устройства можно было на поднятом веб-сервере. В этой статье привяжем устройство к MajorDoMo.

Открываем в браузере адрес сервера МДМ, заходим в панель управления.

Слева в меню выбираем пункт ОБЪЕКТЫ

MajorDoMo представляет собой систему объектно-ориентированного программирования, со всеми вытекающими, что очень удобно. У меня в планах привязать все датчики движения, температуры, влажности, давления и т.д. к беспроводной связи, т.е. к ESP8266. Поэтому для начала создадим класс с названием «ESP8266», общий для всех чипов ESP без привязки к конкретным данным датчиков.

После добавления класса добавим несколько общих свойств для каждого из всех ESP8266. Я пока что решил, что необходимый минимум — это 4 свойства: IP-адрес, уровень сигнала, количество свободной памяти, и команда-ping. Последняя под сомнением, надо ли будет. Точнее надо будет 100%, но с реализацией еще не определился, поэтому пока просто оставил свойство. Все эти свойства выходят за пределы данной статьи, так что все они останутся нереализованными, просто висеть в воздухе. В дальнейших статьях они будут добавлены.

Переходим в пункт «Свойства» созданного класса, нажимаем кнопку «Добавить новое свойство».

И поочередно добавляем вышеперечисленные 4 свойства, как на картинках ниже.

В конечном итоге все будет выглядеть так:

Общий класс для всех ESP8266 создан. Теперь создадим обобщенный класс для преобразователей движения HC-SR501. Опять заходим в «Объекты -> Добавить новый класс», создаем класс с названием «MotionSensor». В качестве родительского класса выбираем ранее созданный класс «ESP8266».

В классе «MotionSensor» создадим одно-единственное свойство «alarm», в которое мы будем записывать состояние преобразователя движения.

Теперь создадим метод, который будет вызываться при изменении свойства «alarm», т.е. при сработке преобразователя движения (тут будет один момент, я расскажу о нем ниже). Переходим на вкладку «Методы», нажимаем кнопку «Добавить новый метод». Вводим название метода, описание. После добавления метода откроются расширенные настройки, как на рисунке ниже.

При срабатывании преобразователя движения чип ESP8266 установит значение свойства «alarm» в «1». После обработки этого события нам нужно вернуть его в «0», что мы и делаем методом выше.

В конечном итоге вид класса «MotionSensor» будет выглядеть так:

Все, два общих класса созданы, теперь можно создать непосредственно объект. В классе «MotionSensor» создадим объект «KitchenHCSR501» (преобразователь движения HCSR501, расположенный на кухне). В качестве месторасположения соответственно выберем кухню)

Объект «KitchenHCSR501» обладает всеми свойствами и методами классов «ESP8266» и «MotionSensor», т.к. унаследован от них. Соответственно у него будет свойство «alarm» и метод «MethodAlarm». Метод, созданный ранее может только устанавливать свойство «alarm» в «0», а нам нужно что-то более динамичное. Сделаем так, чтобы при сработке датчика движения (т.е. при установке свойства «alarm» в «1») Алиса произносила голосом, что датчик сработал. Для этого выбираем пункт «Методы» в объекте «KitchenHCSR501», и нажимаем кнопку «Настроить».

Теперь после выполнения родительского метода (установки свойства «alarm» в «0») Алиса произнесет голосом о проникновении в святая святых. Точнее сделает это после назначения этого метода изменению свойства «alarm». Переходим в свойства класса «MotionSensor», выбираем свойство «alarm», и в пункте «Запускать метод при изменении (не обязательно)» выбираем наш метод «MethodAlarm», сохраняемся.

В принципе и все. Пока включать наш ранее настроенный модуль ESP8266 не будем, а разберемся, что мы тут сделали, для чего мы это сделали, и как это все будет работать.

Во главе всего у нас стоит класс «ESP8266» с 4 свойствами, которые не отвечают за показания датчиков, а служат только для проверки работоспособности самих чипов (в данной статье не реализованы). От этого класса наследуется класс «MotionSensor», который имеет еще одно дополнительное свойство, отвечающее за статус преобразователя движения. Классов, подобному этому, может быть несколько. Например TemperatureSensor (отвечающий за вывод/регулирование температуры), HumiditySensor (отвечающий за вывод/регулирование влажности), и т.д. Каждый новый класс будет иметь свои свойства, которые присущи только ему (температурный класс — имеет свойство температуры, влажностный — влажности).

Самым последним идет объект — так сказать физическая реализация всех этих классов. У нас это «KitchenHCSR501» — преобразователь движения HCSR501, установленный на кухне. Объектов тоже может быть несколько, например «HallHCSR501» — преобразователь движения, установленный в прихожей. Но у всех будет свойство «alarm» — сработка датчика, т.к. все они будут унаследованы от класса «MotionSensor».

Как же это работает?

MajorDoMo — прекрасный фреймворк для создания умного дома. Получение/установку свойств, вызов методов и прочее можно производить как из командной строки, так и HTTP-запросами. На последних мы и реализуем весь функционал. На странице «Интеграция сторонних программ и сервисов» написано, как именно через http можно брать значение свойства объекта или устанавливать новое.

Вернемся к нашим баранам. У нас есть объект «KitchenHCSR501» со свойством «alarm». При установке данного свойства в «1» вызывается метод «MethodAlarm», который заставит Алису сообщить о проникновении на территорию. На самом деле метод «MethodAlarm» будет вызываться при любом изменении значения, но чип ESP8266 из прошлой части будет его устанавливать только в «1», а сбрасывать в «0» мы будем в самом методе.

Проверить работоспособность можно, выполним следующий запрос из браузера:

http://192.168.1.15/objects/?object=KitchenHCSR501&op=set&p=alarm&v=1

Тут мы как раз и устанавливаем свойство «alarm» объекта «KitchenHCSR501» в «1». При этом MajorDoMo у нас находится по адресу 192.168.1.15. Нажав ENTER мы увидим в текущем окне ответ «ОК», что говорит о удачном выполнении запроса.

Алиса в свою очередь голосом уведомит нас, что датчик сработал, и запишет это в истории сообщений

Данный запрос выполняет чип ESP8266 из прошлой части, при срабатывании датчика движения.

За это отвечает функция «alarmMotion()» в файле «main.lua»:

В 7-й строке можно увидеть наш запрос на установку свойства в «1».

Продолжение следует…

Используемые источники:

  • https://bezopasnostin.ru/umnyj-dom/majordomo.html
  • https://smartideal.net/majordomo-s-chego-nachat/
  • http://my-diy.iam.by/2017/01/05/настройка-majordomo/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации