1.  Общая информация

1.1  Что такое Умный Дом?

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

  • Безопасность — повышение уровня безопасности за счёт постоянного контроля параметров работы технологических систем (отопление, водоснабжение, электричество и т.п.), а так же интеграция охранных компонентов (сигнализация, видео-наблюдение, GPS-трэкинг)
  • Экономия — поддержка оптимальных параметров энерго-потребления (электричество/тепло) и автоматический перевод систем в экономичный режим
  • Комфорт — централизованное управление всеми системами, автоматические сценарии последовательных действий, работа с мульти-медиа.

1.2  Это актуально только для частного дома?

Нет, системы условно объединённые названием «Умный Дом» успешно применяются в пространствах любого объёма и функционального назначения — от технического помещения до целого города. Разница только в возможных вариантах применения — где-то их больше, где-то их меньше, но сферы оптимизации схожи (см. предыдущий ответ).

1.3  Что такое MajorDoMo?

Это программное обеспечение, которое позволяет сделать из компьютера (Windows/Linux) контроллер управления домашней автоматикой.

1.4  Сколько это стоит?

Само программное обеспечение распостраняется бесплатно, однако для использования всех его возможностей, следует купить (или сделать самостоятельно) дополнительное оборудование — управляемые розетки, датчики и т.п. Стоимость конечного оборудования очень сильно варьируется в зависимости от используемого стандарта связи и производителя. Одним из основных преимуществ MajorDoMo является возможность одновременной работы с оборудованием на различных стандартах и от разных производителей.

1.5  Есть ли коммерческая версия комплекса?

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

1.6  Оправдана ли покупка всего оборудования для использования в системе с экономической точки зрения?

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

1.7  После установки я получаю готовый Умный Дом?

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

1.8  Я должен быть программистом?

Нет, но если вы всерьёз увлечётесь процессом оптимизации собственной жизнедеятельности, то вы им станете 🙂 На самом деле, программировать сценарии (последовательность действий) в системе очень просто — вы можете даже не знать никакого языка программирования и использовать мышку для перетаскивания готовых блоков команд. Подробнее о программировании в соответствующем разделе сайта.

1.9  Ничего не хочу программировать, помогите!

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

1.10  Я строю дом и в будущем планирую сделать его «умным», что мне необходимо предусмотреть заранее?

Во-первых, определитесь с тем, где у вас будет основной электро-щит и планируйте проводку так, чтобы провода от настенных выключателей и точек освещения сводились каждый в отдельности в этот щиток. В начале вы сможете всё скоммутировать там по тривиальной схеме (грубо говоря, выключатель пускает ток на лампочку), но в будущем такая коммутация позволит заменить простую схему автоматикой. Для розеток этого не нужно — управлять устройствами, включенными в розетку, проще через дополнительное оборудование, те же wi-fi розетки.

Далее, планируйте провести витую пару (двойные розетки) к местам установки медиа-систем (телевизоры, аудио-центры, спутниковые ресиверы и т.п.). Желательно в любом случае иметь по такой розетке в каждой комнате — их можно будет использовать не только для компьютерной сети, но и для телефонии. Эти кабели так же нужно выводить в общий щиток.

Так же полезно закладывать провода для системы мульти-рум. Если вы планируете встраивать в стену панели управления (те же планшеты), то так же подведите туда питание, чтобы не болтались провода.

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

1.11  Могу ли я всерьёз рассматривать возможность автоматизации своего жилья, если у меня нет возможности прокладывать дополнительные провода?

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

1.12  Кто такая Алиса? Почему именно Алиса?

Алиса — это персонаж, от имени которого идёт общение системы с пользователем. Имя может быть изменено в настройках системы. Почему выбрано такое имя? Спросите у автора системы 🙂

2.  Взаимодействие с пользователем и оборудованием

2.1  Всё оборудование будет завязано на централизованный сервер? Это надёжно?

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

2.2  Какой минимальный набор периферийного оборудования необходим?

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

2.3  Где я могу узнать, какое оборудование можно подключить к системе?

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

2.4  У меня есть оборудование, которого я не могу найти в каталоге, могу ли я его интегрировать в систему?

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

2.5  Много где на страницах проекта и на форуме идёт упоминание об Arduino или 1-wire, значит ли это, что система лучше всего работает с этим оборудованием?

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

2.6  Каким образом пользователь взаимодействует с системой?

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

Кроме того, с помощью мобильного приложения дополнительно появляются возможности голосового управления.

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

2.7  Может ли Алиса быть собеседником?

Да, вполне. В системе предусмотрена возможность настраивать реакцию системы на команды в виде текста или даже голосовые сообщения (при использовании дополнительного ПО). В панели управления для этого предназначен модуль «Шаблоны поведения», в котором можно настроить не только прямые команды, но и достаточно сложные разветвлённые диалоги. Кроме того, при настройке доступа к сервису Connect, появляется возможность использования «облачного» сервиса ответа на вопросы, функционал которого развивается централизовано без участия пользователя.

2.8  Каким образом система взаимодействует с оборудованием?

Для работы с оборудованием в системе существуют так называемые модули, которые обеспечивают обмен данными по соответствующим протоколам между оборудованием, внутренними объектами системы и пользовательским интерфейсом. В системе реализована поддержка множества аппаратных протоколов (ZWave, ModBus, KNX, 1-wire и т.д.) и их количество продолжает расти. Так же можно подключить оборудование, доступное по сети ethernet с помощью HTTP API

2.9  Могут ли сторонние сервисы передавать данные в систему?

Да, в системе имеется API для приёма данных и команд от сторонних сервисов. Подробнее об использовании.

3.  Установка, запуск и диагностика

3.1  На какое оборудование может быть установлена система MajorDoMo?

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

3.2  Какие рекомендуемые системные требования?

Система может работать на достаточно старом оборудовании, однако комфортное использование (отклик интерфейса, синтез речи, мультимедиа и т.п.) накладывает определённые требования. При использовании в роли основного сервера домашней автоматики рекомендуется не меньше 2Гб оперативной памяти. (ответ в доработке)

3.3  Какие основные отличия Linux и Windows версий?

  • (+) Windows гораздо проще в первоначальной установке и запуске
  • (+) Windows более требовательна к аппаратным ресурсам
  • (+) Windows позволяет использовать более продвинутые движки синтеза речи (пример: Alyona от Acapella Group)
  • (++) Linux считается более стабильной и быстрой системной средой менее требовательной к ресурсам
  • (-) Linux сложнее настроить для работы с бытовым оборудованием (драйверы)

3.4  Каким средствами осуществляются голосовые уведомления?

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

  • Движок Google TTS (Windows/Linux) — каждая фраза отправляется в соответствующее API сервиса Google, возвращается звуковой файл, который в последствии воспроизводится. Данный способ требует наличие интернет-соединения, хотя однажды запрошенные фразы «кэшируются» локально и могут быть воспроизведены и без обращения к внешним сервисам
  • Windows TTS (Windows) — встроенная в систему Windows универсальная подсистема синтеза речи. Данная подсистема может быть модифицирована покупкой и установкой более современных языковых движков, например Alyona от Acapella Group.

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

3.5  Что такое «терминал»?

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

3.6  Что такое «циклы системы»?

Циклы — это программный код в файлах /scripts/cycles_ *.php . Данный код обеспечивает функционирование отдельных «фоновых» процессов, не связаных с непосредственным ответом на запрос пользователя, а именно: обновление системного времени, периодические операции, выполнение запланированных задач, опрос показаний отдельного оборудования. Корректный запуск системы предполагает одновременный запуск системных циклов. Часть циклов может быть закрыто автоматически после запуска в виду того, что их работа не актуальна в соответствии с имеющимся оборудованием или настройками пользователя.

3.7  «Падают» циклы, из-за чего может происходить? Как разобраться?

К сожалению, факты падения циклов могут иметь место быть, хоть и ведётся работа по недопущению подобного. Обычно причиной таких случаев является некорректный код, добавленный пользователем в методах объектов и в сценариях. Имеется система аварийного перезапуска основных циклов в случае ошибки, так что система самостоятельно восстанавливает свою работоспособность. Тем не менее, следует разобраться в причинах, а именно воспользоваться средствами диагностики (см. ниже) для разобра инцидента.

3.8  Какие средства диагностики есть у системы?

Для отладки и диагностики в систему встроено сразу несколько функциональных возможностей. Во-первых, работа основных циклов протоколируется в лог-файлы и складывается в папку /debmes/ , там же хранится общий лог системы с отдельным файлом за каждый день. Кроме того, в панели управления имеется модуль XRay, основная задача которого показать состояние системы на текущий момент во всех подробностях (значения свойств, история запуска сценариев, таймеры и т.п.). Дополнительно в панели управления есть модуль «Ошибки системы», в который сохраняется большинство случаев некорректного поведения системы (ошибки кода, базы данных и т.п.).

4.  Программирование и настройка

4.1  Какой стэк технологий используется для разработки?

(L/W)AMP — Linux/Windows (ОС), Apache (веб-сервер), MySQL (база данных), PHP (язык программирования)

4.2  Насколько хорошо я должен уметь программировать на PHP для создания сценариев?

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

if (timeIs('06:00')) {
 say("Доброе утро!");
}

Как видите, всё достаточно несложно, нужно лишь использовать готовые конструкции. Аналогичный сценарий можно создать и во встроенном визуальном редакторе (без написания кода вручную):

4.3  Насколько глубоко я могу модифицировать систему под себя?

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

4.4  Что такое Классы, Объекты, Свойства, Методы и вообще ООП?

ООП — объектно ориентированное программирование. Одна из главных особенностей платформы и самый эффективный способ задействования оборудования и создания сценариев автоматизации. Более подробно о концепции и составляющих понятиях читайте в соответствующем разделе.

4.5  Что значит «связанный» объект/свойство/метод?

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

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

Например, привязав свойство какого-то объекта к свойству выключателя в модуле ZWave можно обращаться к этому свойству для получения последнего состояния физического выключателя, а так же использовать это свойства для установки значения (включения нагрузки), таким образом создаётся прозрачная двухсторонняя связь между физическим устройством и объектом системы MajorDoMo. Одно свойство объекта может быть привязано к нескольким элементам, так, если рассматривать предыдущие два примера, то можно объединить их в один, когда и для привязки выключателя в меню и для привязки выключателя ZWave мы используем одно свойство. В таком случае мы получаем управляемый через меню физический выключтатель.

4.6  Что такое «чат системы», «командная строка», «консоль»?

  • Чат системы — история сообщений от системы, а так же форма ввода команд на естественном языке. Данный модуль доступен в пользовательском интерфейсе и встроен в Меню по-умолчанию. Так же его можно встроить в сцену или обратиться по прямой ссылке /command.php
  • Командная строка — средство операционной системы (не системы MajorDoMo) для запуска системных команд. Обычно используется для первоначальной настройки платформы и тонкой настройки операционной системы
  • Консоль — встроенная в панель управления MajorDoMo строка ввода (ссылка Консоль в блоке заголовка панели). Данная строка позволяет отправлять инструкции языка программирования PHP. Например, можно там написать say(«Привет»,2); и инструкция будет выполнена, а именно произнесено слово «Привет»

4.7  Мне кажется, я нашёл ошибку, куда обратиться?

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