Majordomo умный дом своими руками
Majordomo, с чего начать?
Пожалуй каждый, кто решил свой дом сделать умным, останавливается на мажордомо, так как он удобен по многим параметрам. Но если же вы никогда прежде с ним не работали, то начать будет достаточно трудно, даже если у вас есть опыт в программировании.
Установка
Первый мой совет:
Если вы никогда раньше не использовали linux. То лучше выбирайте сервер где будет Majordomo на windows.
Изначально я планировал использовать Raspberry PI, как сервер. Но из-за не достаточного опыта в linux, я так и не смог решить ряд проблем по настройке Majordomo. По этому установил majordomo на старый ноутбук, где уже долгое время, безотказно работает и меня по всем параметрам устраивает.
Это просто мой личный опыт, возможно у вас будет все по другому.
Для установки, вам нужно перейти по ссылке и выбрать инсталлятор для вашей OS. И дальше следовать инструкциям. Тут обычно проблем не возникает.
Первые шаги
После установки, вы можете запустить любой браузер и ввести в поле для ссылок слово localhost. Если вы установили все правильно и majordomo у вас запущен, вы зайдете на главную страницу умного дома.
Выглядеть она будет примерно следующем образом:
На левой стороне: меню, где вы можете размещать свои кнопки, блоки с текстом, регуляторы и прочие крутилки, которые будут отвечать за то или иное действие. С правой стороны, это сцены. На сценах можно размещать графики, ссылки, картинки (к примеру план дома), те же кнопки. Да в принципе, все что пожелаете.
В целом, перед вами панель, где вы сможете управлять вашим домом. А как вы его оформите, зависит от вас самих.
Рабочий стол
С левой стороны есть вкладки, рассмотрим несколько из них:
Есть и другие вкладки, мы их рассмотрим чуть позже.
Добавляем первое устройство
Перед тем как добавлять новое устройство, вы должны понимать как оно будет работать. Предположим у вас есть умный выключатель (умный означает, что у него есть свой API и он может передавать свое состояние другим устройствам, к примеру серверу majordomo).
Первый вопрос, который у вас должен возникнуть: Как сервер будет принимать состояние выключателя. Предположим у вас самодельный выключатель и скорее всего вы будете передавать по протоколу MQTT. Если же вы далеки от паяльника и самодельных устройств, то рекомендую смотреть в сторону Xiaomi, у них есть свои устройства для умного дома, которые достаточно просто внедрить в ваш умный дом.
Для обоих вариантов вам потребуется скачать дополнительный модуль. Предположим у вас выключатель от Xiaomi. Тогда перед тем как продолжить обязательно к прочтению статьи: Как подключить xiaomi к majordomo.
После того как вы справились и подключили xiaomi, вам нужно перейти в Устройства->Простые устройства и добавить новое.
Мы добавили устройство, а это означает, что мы создали объект. Объекты, в данном случае, это и есть ваши устройства, у которых есть свои свойства, к примеру состояние Вкл\выкл, а также методы.
Для наглядности, давайте найдем наш объект. Объекты->Объекты и находим наш объект отталкиваясь от скриншота:
Скорее всего, он будет называться так же Relay01. Если вы перейдете в объект, то перед вами появятся 3 вкладки Детали, Свойства, Методы. О них я и говорил ранее. Если перейти во свойства, то вы можете найти свойство Relay01.status. Это и есть главное свойство выключателя вкл\выкл.
Теперь когда мы убедились, что наше устройство создалось и объект существует, нам нужно привязать свойство status, к реальному устройству.
Реальное устройство
Для этого переходим в Устройства->Xiaomi Home и выбираем то устройство, которое хотим привязать.
Находим колонку Channel, к нему мы привязываем наш соданный объект и свойство status, как на скриншоте.
Теперь, когда вы будете вкл\выкл свет, в объекте в реальном времени будет изменяться значение status. Осталось вывести выключатель на главную страницу.
Меню управления
Объекты->Меню управления
Добавляем новый раздел и заполняем как на примере:
После того, как вы нажмете добавить, у вас появятся на этой же странице новые поля, вам понадобятся только 2:
- Связанный объект
- Свойство
Выбираем наш объект, свойство status и сохраняем изменения.
Теперь, если перейти на главную страницу умного дома, то с левой стороны вы увидите вами добавленный выключатель и если его по нажимать, то вы увидите как реальный выключатель включает и выключает свет в гостиной.
Вот и все что нужно знать
Это все что вам нужно знать на данном этапе, чтобы понять как работает система majordomo. Все остальное будет приходить с опытом. Так же будут появляться новые вопросы, которые я постараюсь ответить в этой рубрике.
Вы уже можете узнать как сделать собственный выключатель. Если остались вопросы, пишите в комментариях.
One thought on “ Majordomo, с чего начать? ”
Efrony :Спасибо за статью, очень полезная.
У меня обнаружилась проблема при подключение getaway 2. Он добавляется в majordomo с тремя свойствами, я ввожу ключ, сохраняю, но потом при активации других свойств (яркость, цвет) в списке не появляются новые..
Не знаете, в чем может быть проблема?
Умный дом, опыт построения, бег по граблям (MajorDomo, Tasmota и Алиса)
Решил обобщить и систематизировать накопленный опыт в создании умного дома. Началось все с управления розетками (светом) на даче – если уехал и забыл выключить свет, можно через интернет выключить и спать спокойно. Потом появилось ограничение по мощности и желание автоматически реагировать на превышение мощности отключением маловажных потребителей типа чайника. Ну а дальше уже сложно остановиться. Климат, автономное снабжение, комфортный свет и все это - не вкладывая много денег, хотя если все посчитать..
Если теорию знаете, можно перейти к моей истории поисков идеального решения.
NB! Так же для удобства, жирным курсивом подсветил названия технологий и платформ. А просто жирным - важные наблюдения или выявленные глобальные засады.
Ну, а теперь по порядку, немного теории
Умным домом принято называть что угодно, от 2 лампочек, управляемых по таймеру до сложной системы, реагирующей на множество факторов и делающей жизнь владельца комфортной.
В любом случае речь про управление устройствами, кратко их можно собрать в группы:
Бытовая техника (пылесосы, телевизоры, чайники, кондиционеры)
Лампочки/ленты (меняют цвет и яркость)
Датчики (мощность, напряжение, температура, влажность, концентрация газов)
Диммеры (пропорциональный выходной сигнал)
Исполнительные устройства (регуляторы температуры, привод штор)
Шлюзы (пульты, универсальные передатчики команд)
Построение умного дома начинается с выбора платформы. Разные платформы имеют разную функциональность, стоимость, сложность настройки. Например:
Умный дом Яндекс - нет логики, только команды, много совместимых устройств
Xiaomi (Aqara) – простые скрипты
Google Home – простые скрипты, много совместимых устройств
Domoticz – ограничен набор устройств, развитая логика
IFTTT - ограничен набор устройств, развитая логика
HomeAssistant - ограничен набор устройств, развитая логика, настройка интерфейса плагинами
Majordomo (php) - развитая логика, открытый проект, активно развивается, требует умения программировать.
Нужно заметить, что платформы от именитых производителей умеют работать друг с другом. То есть их экосистемы можно объединять, что существенно расширяет перечень подключаемых устройств. Кстати, о подключениях тут есть 2 аспекта: как подключаться физически и как общаться с концентратором умного дома.
Физически можно связываться через локальную компьютерную сеть (проводную или беспроводную), сеть малого радиуса (Bluetooth, ZigBee) или просто по радио или инфракрасному каналу (последнее обычно только в одну сторону работает).
Устройства – это хорошо, но что же ими управляет? Центральное устройство/ центр управления. Кстати, хабы типа Aqara это нифига не центральный модуль, а всего лишь концентратор сети ZigBee или какой иной, понравившейся производителю – логика остается в самих устройствах или на телефоне пользователя или в облаке.
Насколько я понял, большинство облачных сервисов не поддерживают логику. То есть в «Яндекс доме» можно узнать температуру и включить обогреватель. Но заставить Яндекс следить за температурой и держать в комфортном диапазоне – нет!
Для реализации логики нужен центральный блок, причем желательно локальный. Вот тут вариантов масса – поставить на свой домашний комп программу управления, собрать отдельный сервер, разместить сервер в облаке.
Из программных серверов умного дома можно выделить популярные: Blynk (есть вариант облака и локальный), IFTTT (чисто облако, но с мобильным приложением), Home Assistant, Domotics, Majordomo.
История рождения моего умного дома
На момент начала моей автоматизации, у меня были штук 6 устройств SonOff (у них родное приложение и облако – eWeLink), управлял розетками на даче. И поставил камеры Xiaomi Dafang (камеры не понимали русский, но это PTZ, FullHD, да еще и стоили всего 2 тысячи рублей каждая). Камеры принесли на дачу постоянный интернет (мобильный), роутер. А также облако Xiaomi. Итого, 2 облака – Xiaomi + eWeLink. Надо было собирать в единую панель управления. Первым был установлен HomeAssistant, даже игрался с камерами (хотел на датчик движения у камер прикрутить и сохранять в системе). Но дальше скриншотов, и то не всегда, дело не пошло. С SonOff вообще не смог подружить. Решив, что логика для розеток все-таки важнее, начал играться с MajorDomo, который имел для этих устройств коннектор, а также более-менее понятный интерфейс настроек (субъективно, да, php+html, объектно-ориентированная модель).
Первый тревожный звоночек пришел от Роскомнадзора – в попытке убить телеграмм (безуспешной) они прибили доступ ко многим облакам, в том числи и Xiaomi. В середине зимы было очень неприятно оказаться без видеонаблюдения за дачей, расположенной в 100 км от дома..
Итог – камеры перепрошиты на Dafang Hack (прошивка делающая локальный RTSP сервер потокового видео) и первая моя Raspberry c MotionEyeOS (локальный видео сервер), а также белый IP дома и VPN между домом и дачей (на роутерах Mikrotik). Локальный сервер держит архив на 500Гб (пара месяцев с двух камер), питается от аккумулятора (до 3 дней без света).
Для логики нужно не только управлять, но и контролировать, для этого купил SonOff POW R2 – это фактически, счетчик электроэнергии с выключателем на 16А (стоимость по 750 рублей). Это позволило при включении посудомоечной машины, бойлера для воды (суммарно 4 кВт) блокировать розетку с чайником. Сейчас это модно называется DemandResponse. А так же стало возможно контролировать работоспособность насосов водоснабжения и канализации (по графику дренаж включается и на графике мощности есть пики, по которым можно понять, много ли воды и вообще, не завис ли поплавок!) - дистанционная диагностика оборудования. Так же для управления низковольтными устройствами (включение дизельного отопителя, насоса аэрации воды для очистки, отключения зарядника от аккумулятора, когда нет напряжения в сети СНТ) был куплен клон SonOff G4 – четырехканального реле с радиопультом (еще 1100 рублей).
Второй «звоночек» пришел от eWeLink – с выходом в массы устройства контроля напряжения SonOff POW R2 поток через их сервер, видимо, стал превышать их возможности (ток, напряжение, мощность активная, мощность реактивная, мощность полная, коэффициент мощности и все это 5 раз в секунду с каждого такого устройства) и они решили, что датчики будут телеметрию слать один раз в минуту. То есть у вас уже минуту мощность за разумными рамками или напряжение просело до Америки (113 вольт реально было летом), а умный дом живет в розовых мечтах, что все хорошо.
Итог – модуль MojorDomo для локального режима SonOff и окончательный переход на MajorDomo на Orange Pi (стоила около 1000 рублей всего, пришлось осваивать Linux, а точнее – Armbian и по инструкциям ставить MajorDomo). Но недолго музыка играла… SonOff почувствовали что-то неладное и очередная прошивка на их сервере отрубила локальный режим, то есть только через облако, только раз в минуту..
Полная локализация
Так как умный дом к этому моменту управлял в том числе зарядкой аккумулятора и переключением на инвертор в случае аварии, зависеть от облака на «вражеских» серверах, а так же наличия связи с интернет показалось не очень разумной идеей.
Очередной шаг – перепрошивка всех устройств на Tasmota, отказ от протокола eWeLink и уход на MQTT. Это, кстати, открыло путь в полный лоукост – прошивка легко настраивается, а плата Wemos из Китая стоит всего 120 рублей, при этом на борту 12 линий для подключения периферии, АЦП, WiFi. Так число устройств в умном доме увеличилось раза в 3 – выключатели, датчики напряжения на АКБ, датчики температуры и влажности (кстати, оказалось, что лучший AM2301 – это AM2320! Программно совместим с AM2301, который еще называют DHT21, но при этом стабилен, не глючит и не зависает).
Тут Остапа понесло и в умном доме появились солнечные панели, 2 контроллера (один PWM, второй - MPPT), датчики тока от солнечных панелей в систему и на АКБ (просто по напряжению на клеммах степень заряда не измерить). От АКБ, кстати, на этот момент питаются 3 камеры, 2 микросервера, 2 роутера, общее потребление примерно 40Вт постоянно.
После примерно полугода, когда все было настроено и отлажено пришла беда – умерла карта памяти. Свежего бэкапа не оказалось – все ждал идеального состояния, не дождался. Изучил, какие карты бывают – узнал про MicroSD A2 – это карты с контроллером, как у SSD дисков - то есть много и часто писать/читать мелкие файлы им не страшно. Настроил, по памяти восстановил логику и оформление, сделал бэкап. Через месяца три началось неладное – зависания, тормоза при открытии графиков за месяц. Анализ (я почти стал спецом по Linux) показал, что база данных тупит из-за очень большого числа накопленных данных. Пришлось делать удаление старых данных, оставляя только по 2 отсчета за минуту для данных старше месяца. Помогло, но не сильно. Надежда была на плату с большим объемом памяти – Orange Pi One Plus (700 рублей), но не судьба. В итоге куплена Raspberry Pi4 c 2Гб памяти на борту, а для этой палаты есть оптимизированный образ MajorDomo – и о чудо, там все отлично – БД крутится полностью в памяти, раз в час сбрасывается на карту бэкап, в случае незапланированного падения, при загрузке восстанавливается состояние на начало часа.
Все это было отлично, управляется с компьютера, с телефона (экран на картинке – там 2 таких сцены, одна для управления и климата, вторая для телеметрии).
Но вот беда – чтобы включить свет надо все равно тянуться за телефоном и тыкать мелкие кнопки. А на даче еще и родители бывают, а для них много кнопок на экране – слишком сложно.
Появление голосового управления
И вот тут я задумался, что пора подключать голосовой помощник. Сначала думал про Google Assistant/Home, но увидав, что они творят со своим президентом, да еще к новому году отключили поддержку русского на колонках (оставив только на телефонах), решил, что вполне реально повторение с отключенными облаками Xiaomi и eWeLink. В итоге, Алиса от Яндекса. Каково же было мое удивление, когда увидел, что есть стандартный коннектор (навык Алисы) к MajorDomo! Яндекс станция мини отлично подошла по функциям и размеру, более того, нашел и обратный коннектор – из MajorDomo можно выдавать команды на устройства, подключенные к Алисе – пультам кондиционеров, телевизиров и даже роботу-пылесосу. И это не считая проговаривания статусов типа «внимание, работаем от аккумуляторов!». Соединение с Алисой можно сделать двумя способами – через платный сервис Connect (2 тысячи рублей в год, бонусом облачные бэкапы) или через Яндекс.Диалоги – для этого надо SSL сертификат на сайт, белый IP, и выставленный в интернет сайт с MajorDomo, то есть свет или отопление сможет отключить случайный прохожий. В общем, 2к в год – не большая цена за сохранение комфорта, да и SSL покупать не надо.
Естественно, управление через Яндекс – это чисто функция комфорта, основная логика реализована на локальном уровне.
Открытая система управления “умным домом” MajorDoMo
В этой статье я расскажу об одном проекте, которым занимаюсь уже довольно продолжительное время и который с некоторых пор доступен широкой публике. Речь идёт о системе управления “умным домом” MajorDoMo (Major Domestic Module), являющейся центральным блоком комплекса программно-аппаратных решений, которые я, в силу своих скромных возможностей, внедряю в своём домашнем хозяйстве.
Но обо всём по порядку…
Ограничения использования
Проект не является продуктом в каком-либо виде. Статус проекта – разработка и исследование. Проект не совсем прост в понимании и предназначен для энтузиастов в области домашней автоматизации. Глубокое внедрение и настройка проекта под собственные нужды потребует навыки программирования и хотя бы базового понимания объектно-ориентированного подхода в разработке. Нижеописанные возможности могут быть реализованы не в полной мере либо недостаточно тщательно протестированы. Не допускается использование системы в тех случаях, когда от надёжности функционирования элементов системы может зависеть жизнь либо здоровье людей.
Но не будем о мрачном :)
В основу проекта заложено несколько фундаментальных принципов, которые определяют направление развития.
Принцип первый (“концептуальный”): умный дом – это не только (и не столько) “железо”.
В моём понимании, гораздо важнее формирование “умной” среды, которая не ограничена датчиками и исполнительными механизмами. Да, датчики и исполнительные механизмы должны обеспечивать комфорт и безопасность, но это программа-минимум. Среда должна иметь внутренние и уметь использовать внешние информационные ресурсы, чтобы адекватно управлять имеющейся технической базой и даже помогать человеку в организации его жизни.
Принцип третий (“гибкость в интеграции”): глубина интеграции системы определяется потребностями пользователя (ну и степенью доверия к системе).
Это значит, что роль системы может быть различной. В одном крайнем случае система может быть центром управления и отвечать за логику функционирования всей периферии, т.е. обрабатывать сигналы и давать команды всем “ведомым” устройствам. В другом же, система лишь часть распределённой сети среди датчиков и контроллеров, надёжность которых существенно выше в виду специализации задач. В последнем случае, контроллеры лишь сообщают системе о своём состоянии, но не полагаются на неё в принятии решений. Как показывает практика, в домашней среде наилучшие результаты даёт комбинированное решение, а степень смещения в одну или во вторую крайность определяется конкретной задачей.
Принцип четвёртый (“лёгкость на подъём”): систему должно быть легко установить, чтобы посмотреть и что-то попробовать.
Установка на Windows-компьютер не сложнее установки любого другого приложения. Для Linux-системы не сложнее поднятия сайта на локальном веб-сервере. Не нужно вообще никакого “железа” — можно пользоваться инфо-приложениями и программировать реакцию на данные из интернета.
Но отвлечёмся от теории и перейдём к практике :)
Возможности
Ниже я перечислю возможности, которые были реализованы с помощью MajorDoMo. На сайте проекта собирается описание различных вариантов использования — я считаю, что это даёт самое наглядное представление о системе.
- Утром (не раньше 6 и не позже 11) при обнаружении первого движения в любой из комнат (кроме спальни), система рассказывает о текущем состоянии (температура на улице, время рассвета/заката) и включает музыку (случайную папку из добавленных в “избранное”)
- При открытии гаражных либо въездных ворот система об этом сообщает. Так же напоминает, если они не закрыты (каждые 15 минут, но легко отключается если нужно)
- Постоянно контролируется температура в контуре отопления — при выходе из номинального диапазона, идёт уведомление голосом и на скайп (к примеру: “Температура котла 65 градусов цельсия. Внимание — выше нормы и продолжает расти!”)
- Система знает какая температура на улице и в комнатах дома
- Система может принимать команды через внутренний чат, через skype, со смартфона (включая голосовое управление)
- Интерфейс системы доступен на любом устройстве в домашней сети, а так же через интернет (закрыто паролем). Сам интерфейс оптимизирован для мобильных устройств (используется jQueryMobile).
- В интерфейсе системы есть доступ к изображению с IP-камер и система может реагировать на обнаруженное камерами движение
- Система управляет отдельными элементами внешнего освещения, включая его через полчаса после заката и выключая за час до рассвета
- Ведётся контроль доступности устройств, подключенных к домашней сети – по ним можно выявить неполадки, либо определить присутствие кого-то из домашних (по автоматически подключенным к Wi-Fi гаджетам)
- Система периодически сканирует bluetooth-диапазон на наличие новых либо опознанных ранее устройств (по MAC-адресу) в радиусе действия – по этим меткам так же определяется присутствие людей
- Смартфон автоматически передаёт системе GPS-координаты и система ведёт историю перемещений пользователя, реагируя на вход/выход из определённых локаций (знает когда я подъезжаю к дому и в будущем сможет открывать въездные ворота, а при подъезде к магазину может напоминать о том, что список покупок не пустой)
- Через интерфейс системы можно управлять проигрыванием медиа-контента с локального сервера на любом из домашних компьютеров (управление VLC-плеером, а также XBMC медиа-центром)
- В системы есть приложение для ведения учёта продуктов и составление списка покупок
Варианты использования системы постоянно пополняются новыми сценариями от пользователей. Для реализации многих сценариев программирование не нужно вовсе – достаточно настройки имеющихся модулей и интерфейса управления. Для некоторых всё же необходимо написание скриптов – для внутренних скриптов используется язык программирования PHP, знать который, конечно, полезно, но во многих случаях достаточно использовать простые конструкции из имеющихся примеров и делать по аналогии.
Железо и софт
В качестве головного устройства используется обычный PC под управлением MS Windows, однако система может быть установлена и на Linux-компьютер – потребуется некоторая адаптация, но в целом почти всё работает одинаково на обоих системах прямо “из коробки”. В качестве платформы используется веб-сервер Apache, база данных MySQL и, уже упомянутый, PHP. Большая часть функционала исполняется через веб-сервер, но дополнительно запускается так называемый скрипт основного цикла – от отвечает за запуск задач по таймерам.
Как уже говорилось, система может работать без периферийного железа, но, разумеется, чем больше к системе подключено датчиков и исполнительных устройств, тем больше возможностей открывается для использования.
Кроме Arduino в систему была встроена поддержка контроллера 1-wire сети. В данном случае система умеет общаться с сетью через модуль OWFS, который сам по себе кросс-платформенный и отвечает за взаимодействие непосредственно с “железом”.
Из дополнительной периферии можно отметить Bluetooth-адаптер, задача которого в сканировании MAC-адресов имеющихся в эфире устройств.
Про Ethernet-сеть, WiFi и настройку доступа из-вне я здесь останавливаться не буду – это отдельная тема и по ней можно найти много информации.
В общем-то и всё. Дальнейшее развитие поддержки “железных” протоколов будет осуществляться по мере необходимости :)
Планов море! :) Во-первых, с увеличением числа людей, пробующих систему у себя, всплывают ошибки и пожелания – что, в общем, хорошо. По возможности эти запросы будут закрываться.
Далее, будет доведена до ума мульти-язычность интерфейса – это уже заложено, но пока интерфейс смешанный: что-то на русском, что-то на английском, а что-то вовсе под интересными псевдонимами типа “SCRIPT_DESCRIPTION”.
Много идей по добавлению внутренних инфо-приложений и интеграции с существующими веб-сервисами (почта, списки задач, социальные сети и т.п.)
Есть некоторые заделы по развитию системы в сторону реакции на шаблоны поведения пользователей, когда будут автоматически выделяться последовательности событий и предлагаться их автоматизировать (если система “видит”, что утром, выходя из спальни, я прохожу через коридор и включаю свет в ванной, и это повторяется NN раз, то почему бы не предложить эту последовательность использовать – например, включая свет автоматически, либо использовать эту последовательность для дополнительного действия – включения кофеварки). Но это ещё только предмет изысканий.
Вместо заключения
Статья вышла скорее обзорной, нежели технической. Пожалуй, она таковой и задумывалась.
На сайте можно найти гораздо больше технической информации, скриншоты, описание встроенных функций, примеры кода для сценариев использования, а так же дистрибутивы самой системы. Кроме того, на сайте есть раздел Форум для обсуждения деталей и идей.
Распространяется система под MIT-лицензией, т.е. практически без каких-либо ограничений (включая коммерческое использование), но с обязательным указанием авторства.
Пользуясь случаем, приглашаю заинтересованных к совместной работе над проектом – задач полно, всем хватит :)
Просто о сложном. Начало создания беспроводного «умного дома». На основе технологии Linux, Z-Wave и ПО MajorDoMo
Так случилось, что жизнь заставила приступить к частичной автоматизации квартиры, особенно в части её безопасности, краны, газ, вход, электричество, ну а потом уже всё остальное.
Для себя определил следующие критерии:
- Место — квартира, где переделка (существенная переделка чего-либо не планируется).
- Возможность интеграции всех решений в единую систему УД с открытым кодом .
- Возможность постепенного расширения (масштабирования) функционала.
- По-возможности, минимальные затраты.
- По возможности покупка элементов системы в РБ или же в РФ, без всяких заказов с зарубежных сайтов. Пришел, посмотрел, купил.
- По возможности русскоязычный интерфейс, документация, поддержка.
Вот и решил немного восполнить этот пробел.
Про видеонаблюдение ранее написал небольшую заметку:
Создание загрузочного диска:
Первым делом скачиваем образ системы для дальнейших действий:
Для создания загрузочной флешки я использовал официально рекомендованную программу производителем Raspberry.
На официальном сайте разработчика сайт программы загрузчика.
Сразу же на сайте определяется разрядность ОС, и предоставляется ссылка для скачивания.
Также наглядно показано 3 шага для прожига образа.
1) Выбор образа
2) Выбор диска
3) Прожиг
И создаем загрузочный диск на основе образа, который ранее скачали (предварительно распаковав его).
Подключаем Raspberry Pi через кабель HDMI и подключаем клавиатуру.
Включаем питание Raspberry.
Идет загрузка системы, после которой запрос логина и пароля.
Используем по умолчанию: логин PI, пароль raspberrymj.
Вводимые символы пароля не отображаются
Запускаем утилиту настройки Raspberry
Первым делом я поменял пароль по умолчанию, надоест вводить 11 символов
Далее, конфигурируем свою сеть, в моем случае Wi-Fi вводим ssid (имя сети) и пароль к ней.
С базовым образом подключение по SSH уже включено, так что этот шаг можно пропустить. Если не открыт, то открываем доступ для удаленного подключения через SSH >
Более подробная информация о настройках утилиты конфигурирования находится здесь:
немного информации о rasp-config.
Перегружаемся выполнив команду:
Вновь авторизовываемся, введя логин и пароль.
Узнаем IP адрес Raspberry, задав команду:
wlan0, в моем случае и есть беспроводной интерфейс.
Задав команду ping, можем проверить доступ к Internet
Если всё прошло нормально, то видим ответы
Выход из утилиты ping (да и из многих утилит)
ctrl+C
После этого можем работать под удобной и привычной для себя операционной системой.
Для windows 10 привожу пример:
Скачиваем программу PuTTY, выбирая свою разрядность ОС Windows.
Запускаем программу PuTTY.
Пошаговый запуск PuTTY
Появляется окно подключения:
Указываем IP адресс Raspberry:
Далее в настройках выставляем Terminal — Keyboard:
Выставляем кодировку utf8, в Window — Translation
Если подключаемся в первый раз, то появляется запрос безопасности системы нажимаем ДА
Запрос логина, а потом и пароля. Как и при первом подключении.
При вводе пароля как обычно, символы не отображаются.
Ещё раз проверяем, на всякий случай, свой IP адрес задав команду
На рабочем ПК, в браузере набираем адрес платы:
Первый шаг сделан. Вы попадаете в окно настроек программы MajorDoMo.
Но радоваться ещё рановато, впереди предстоит установить и настроить сам Z-Wave, разобраться с программой администрирования вашего «умного дома», его программированием и т.д.
Majordomo умный дом своими руками
Краткое описание:
Cистема домашней автоматизации MajorDoMo
Описание:
Cистема домашней автоматизации MajorDoMo (Major Domestic Module или Главный Домашний Модуль) представляет собой бесплатную и открытую программную платформу для комплексного управления домашней автоматикой, а так же для информационной поддержки жизнедеятельности. Данная система может быть установлена практически на любой персональный компьютер (на платформе Windows и Linux) и совершенно не требовательна к ресурсам. Даже без привязки к оборудованию она может быть использована для организации персональной инфо-среды. Данный проект является частью эко-системы SmartLiving.
Супермодераторы
Реп: ( 1238 )
Всем привет!
Начинаю сдерживать обещание и буду в этой теме пока в форме мини-блога рассказывать о своем опыт развертывания умного дома на базе системы MajorDoMo.
Я не претендую ни ни какие истины, я не знаю систему досконально, просто имею персональный опыт разработки, которым и хочу поделиться.
Я имею некоторый зоопарк устройств broadlink, поэтому в теме будет некоторый перекос в их сторону, за это сразу прошу прощения.
Конечно же, в этой теме приветствуются вопросы, поправки и обсуждения.
Broadlink и подобные системы - это, конечно, хорошо, но все это не больше, чем просто умные пульты, если мы говорим об умном доме, ему нужен мозг. Программы e-control и прочие его не заменят. Что касается меня, просто в один прекрасный рабочий день, который по совместительству был праздником, автоматика Broadlink разбудила мою семью в 7:00 и я понял, что хватит, больше подобного издевательства терпеть я не хочу :)
Итак, кому нужен MajorDoMo
1. Тем, кто хочет, чтобы его дом был более умным, чем просто кучка устройств с удаленным управлением
2. Тем. кто готов разбираться и тратить время. Собственно, процесс настройки системы не остановится никогда, просто пока это не надоест :) У меня этот процесс идет практически весь текущий год.
3. Тем, у кого есть опыт любого программирования, php приветствуется :-D
Кому НЕ нужен MajorDoMo
1. Тем, кто хочет всё и сразу, из коробки
2. Тем, кто не готов разбираться и тратить время
Если позволяют финансы, лучше купите готовую систему или доверьте настройку профессионалам!
Супермодераторы
Реп: ( 1238 )
Что умеет моя система
- знает все о времени и погоде, о восходах и закатах, о праздниках и выходных
- работает на два дома, управляет устройствами дома и на даче
- позволяет управлять домом с любого ПК, планшета или смартфона в мире
- имеет голосовое управление, в том числе с планшета, смартфона и с часов Android Wear
- знает все о климате на улице, в квартире и на даче, хранит историю климата, может управлять кондиционером
- имеет интеграцию с telegram
- знает о местоположении и перемещениях членов семьи и автомобиля, хранит историю перемещений
- подключена к медиахранилищу, может проиграть кино или музыку
- говорит с пользователями голосом
- работает с камерами
Примеры реализации автоматики:
- утром в будни (кроме официальных праздников!), или по голосовому запросу, приветствует нас, рассказывает о погоде, открывет жалюзи, включает подсветку и ребенку мультики
- через час выключает все, этот таймер можно прервать, если выключать не надо
- сообщает в телеграм о приходе и уходе членов семьи домой, на работу, в школу/сад
- в экономическом режиме выключает все что можно выключить, закрывает жалюзи
- при подходе члена семьи к дому, выключает эконом-режим, при подходе ребенка еще включает мультики
- вечером на закате включает подсветку и закрывает жалюзи
Софт MajorDoMo для организации Умного дома
Если еще несколько лет назад фраза «умный дом» звучала как что-то фантастическое, дорогое и недоступное, то сегодня все больше людей оснащают свои жилища смарт-устройствами и комплексами. Существуют различные подходы к организации интеллектуального домашнего хозяйства, отличающиеся протоколами, программными оболочками и нюансами настройки. Обычно сборка и конфигурирование такой системы требует определенных специальных познаний в IT, но некоторые разработчики предлагают готовые решения для построения «умного дома». Одно из таких решений — open-source проект MajorDoMo.
Что это такое
Majordomo — свободно распространяемая кроссплатформенная программа, предоставляющая все необходимы инструменты для организации смарт-жилища:
- серверную часть;
- плагины для различного оборудования;
- поддержку сценариев;
- работу с разнообразными существующими протоколами обмена данными.
«Мажордомо» умеет взаимодействовать с умными выключателями, розетками, датчиками и реле. Все элементы настройки и управления сведены в едином простом веб-интерфейсе, устанавливающемся на центральный хаб системы.
Таким образом, MajorDoMo — сервер «умного дома» обеспечивающий согласованную работу прочих его компонентов. Он может быть установлен как на обычный ПК, так и ноутбук или поддерживаемый микрокомпьютер (например, Raspberry Pi, Arduino и прочие). Программа получает данные от сопряженных с ней датчиков и отдает заданные владельцем команды, исполняемые конечными устройствами и контроллерами.
Для понимания работы программы необходимо выяснить ее логическое устройство.
Логические компоненты
С точки зрения MajorDoMo умный дом состоит из логических элементов. Платформа оперирует четырьмя основными понятиями — объекты, классы, свойства и методы.
Объекты
В терминологии ПО объект представляет собой физический контроллер с обратной связью, обеспечивающий взаимодействие между сервером и управляемым контроллером датчиком. Таким устройством может являться и самостоятельно собранный прибор, и заводской. Умный дом «Мажордомо» поддерживает множество основных протоколов smart home:
- Z-Wave;
- Zigbee.
- MQTT;
- Broadlink, и прочие.
Классы
Следующая сущность в экосистеме рассматриваемого ПО — класс. В нем объединены однотипные объекты. Например, это может быть класс устройств «выключатели» с двумя состояниями (вкл/выкл) и методами «включить» и «выключить». Или «датчики движения», чье состояние изменяется по детекции перемещения в зоне действия.
Система позволяет создавать и подклассы оборудования: например, в классе выключателей добавляются меняющие яркость или цвет освещения контроллеры.
Свойства
Каждый элемент «умного дома» обладает собственным состоянием, которое он возвращает контроллеру и в MajorDoMo. Это состояние и называется свойством объекта. Его можно не только получать, но и отправлять на устройство, которое обработает команду и вернет некий заданный результат (например, пользователь задаст кондиционеру уровень поддерживаемой температуры, а прибор перейдет в соответствующий режим работы).
Методы
В логике «Мажордомо» метод — некоторое управляющее действие, команда, принятая и обработанная устройством/датчиком.
Функции и возможности
Платформа MajorDoMo — полноценное и весьма мощное решение для хаба «умного дома». Мощь заключена в модульности системы: все используемые объекты заводятся в виде плагинов. Пользователю не придется разбираться в коде, тонкостях протоколов взаимодействия и сопряжения контроллеров и датчиков, если для них написан модуль, все будет работать, конфигурироваться, мониториться и управляться из единого интерфейса. Сложность возникнет лишь в случае, если готового решения нет: тогда понадобится или учиться языку PHP, или привлекать специалистов.
Сами по себе модули содержат обширные настройки: в соответствующем разделе интерфейса можно, например, указать цвет пользователя, разрешенные ему компьютеры для входа, и так далее.
Электронный «мажордом» способен управлять многочисленными умными устройствами:
- розетками;
- лампами;
- бытовой техникой;
- домашним мультимедиа;
- кондиционерами;
- отопительными системами;
- охранными комплексами;
- инженерным и сантехническим оборудованием, и так далее.
Умеет он взаимодействовать и с интернет-сервисами (например, для поиска новостей). Кроме того, через глобальную сеть обеспечивается удаленный доступ и своевременное обновление.
Интересна добавленная разработчиками функция интеграции с помощником «Алиса» от Яндекса. С ее помощью можно осуществлять голосовое управление компонентами смарт-дома и выполнять другие действия.
Для продвинутых пользователей существует возможность дописывать модули и сценарии на языке программирования PHP. В системе также присутствует встроенный визуальный конструктор Blockly, обеспечивающий простое создание алгоритмов:
Комплекс наверняка станет интересен начинающим и продвинутым программистам. Разработка ПО под MajorDoMo не отличается высоким порогом входа, необходимо лишь обладать пониманием языка PHP и некоторых смежных дисциплин (таких, как JS, CSS). С них и следует начинать осваивающим разработку под эту платформу джуниор-кодерам.
Установка
Аппаратная часть
Прежде, чем начать развертывание, следует подобрать оборудование для системы. Под «Мажордомо» допустимо использовать практически любой не очень старый компьютер или ноутбук. Но, как правило, при реализации смарт-дома используют одноплатные миникомпьютеры: они бесшумны, надежны, дешевы и достаточно производительны.
Рекомендуем к прочтению: как выполнить монтаж умного дома быстро и правильно.
Для этой задачи хорошо подходят платы Raspberry Pi 2/3, на примере которых мы далее рассмотрим основные моменты установки и конфигурирования.
Развертывание программы
Версии ПО существуют и под Windows, и для Linux. Неискушенному пользователю стоит выбрать Windows-вариант, поскольку он проще в настройке и конфигурации. В рамках данной статьи мы приведем базовые шаги в случае с Linux и RPI.
Существует возможность развертывания и с нуля на «чистый» Raspbian (или другую версию Linux). Для этого необходимо присутствие в ОС:
- сервера базы данных MySQL (MariaDB);
- веб-сервера, например, Apache;
- интерпретатора php с некоторыми модулями и оболочки PhpMyAdmin.
Установка MajorDoMo и его тонкая настройка подробно описаны в официальной документации к Windows- и Linux-вариантам. Энтузиасты также создали скрипт автоматизации, который развертывает весь программный комплекс самостоятельно. Получить его и запустить инсталляцию можно следующими командами:
Результаты появятся в командной строке. Красный цвет выводимого текста отмечает критические предупреждения.
Скрипт запросит пароль пользователя root создаваемой БД MySQL и учетной записи Pi. Данные аккаунта Pi вводить необходимо в любом случае, даже если такого пользователя в системе нет.
Пример главной страницы:
Дополнительно потребуется установить PhpMyAdmin:
А также Java и сервер Blynk (нужен для разработки и функционирования приложений на iOS/Android).
./installmd -j
./installmd -b
Для добавления расширенной конфигурации выполняется команда:
Она дополняет базовую поставку некоторыми скриптами, сценами и элементами, а также оптимизирует работу с базой.
После этого можно приступать к тонкой настройке и сопряжению с периферией.
Заключение
MajorDoMo — интересный, активно развивающийся, мощный и многофункциональный сервер «умного дома» с поддержкой большинства основных протоколов и технологий. Его ключевые преимущества:
- бесплатность;
- модульность;
- широкий набор возможностей;
- нетребовательность к аппаратным ресурсам;
- простая кастомизация и доработка благодаря языку PHP.
Из минусов можно отметить относительно высокий порог входа, поскольку ряд задач способен потребовать от пользователя некоторых специальных знаний. Но разработчики стараются устранять эти недочеты, упрощая процесс конфигурирования и установки скриптами автоматизации и разнообразными модулями.
Читайте также: