{"id":14270,"url":"\/distributions\/14270\/click?bit=1&hash=a51bb85a950ab21cdf691932d23b81e76bd428323f3fda8d1e62b0843a9e5699","title":"\u041b\u044b\u0436\u0438, \u043c\u0443\u0437\u044b\u043a\u0430 \u0438 \u0410\u043b\u044c\u0444\u0430-\u0411\u0430\u043d\u043a \u2014 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0433\u043e\u0440\u0435","buttonText":"\u041d\u0430 \u043a\u0430\u043a\u043e\u0439?","imageUuid":"f84aced9-2f9d-5a50-9157-8e37d6ce1060"}

Как правильно построить умный дом

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

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

Тема «умного дома» начала увлекать меня 7 лет назад. Во-первых, мне понадобилась обычная система, которая автоматически управляла следующими элементами:

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

Во-вторых, я установил в доме реле для управления освещением в холле и ванной комнате (в каждом помещении по одному датчику).

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

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

Также в уборной был установлен сенсор влажности, он в автоматическом режиме задействовал вытяжку, если влажность достигала более 50%. Если показатель опускался до 45%, то вытяжка отключалась.

Управление осуществлялось посредством программируемой платформы Arduino.

Вскоре мне стало ясно, что данная платформа не очень подходит для автоматизации дома, так как не подразумевала работу в сети. А без этого экосистему создать не получится. Конечно, можно было ради этого доработать Arduino, но я отказался от этой мысли и выбрал самый лёгкий вариант — поменять платформу.

Разобравшись с Arduino, я решил перейти на ESP8266. Он оборудован Wi-Fi и по размерам меньше.

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

Что касается кондиционера, то эмулятор ИК-сигналов производителя Broadlink (модель RM Pro) решил мою задачу по удалённому управлению. Все просто: с пульта необходимо было записать на RM Pro сигнал, после чего в нажать в приложении на кнопку, и эмулятор давал записанный до этого сигнал. Так мне удавалось включать и отключать кондиционер и дистанционно настраивать разные параметры и в целом управлять им.

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

Из недостатков:

Понадобилось ставить отдельное приложение для управления.

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

Помимо прочего, я приобрел такие WiFi-реле, как Sonoff/Tuya, а также совсем не дешевый Danalock для квартирного замка. Для последнего нужно было свое мобильное приложение. Практически все, кроме Danalock, я заказал на Aliexpress по достаточно низкой цене, что дало мне возможность экспериментировать безболезненно для своего кошелька.

Бризер от производителя Tion — одна из первых крупных покупок. С автоконтролем углекислого газа он справлялся хорошо в отличие от температуры, и ее приходилось регулировать вручную. И опять же для управления загрузил на телефон очередную программу.

Большинство купленных контроллеров и датчиков я даже и не вспомню. Их было много, а мой телефон был переполнен программами по управлению. У меня были попытки их объединить с помощью таких агрегаторов, как HomeBridge и MajorDomo для упрощения управления. Но у каждого варианта были свои минусы:

  • неудобный интерфейс;
  • нет поддержки всех приложений;
  • трудоемкий процесс подключения.

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

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

Порядка одного года у меня ушло на backend/frontend разработку программы.

NodeJS был выбран для написания серверной части. У него развитое сообщество, включающее протоколы почти к каждому современному гаджету на рынке. Angular (Ionic) был выбран для создания клиентской части. Он функционирует на разных ОС Android/iOS. В целом, стандартная архитектура (клиент-сервер).

Я переписал множество драйверов гаджетов, пока не получилось следующего (пример кода для гаджета):

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

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

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

Шаг за шагом я дорабатывал front и back. И когда приложением стало выглядеть в общем-то презентабельно, я задался вопросом, не поделиться ли с другими своей разработкой? Мне удалось найти партнеров и собрать команду, чтобы “отполировать” свой проект до блеска.

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

Совместно с коллегами я покупал наиболее распространенные гаджеты для умного дома и дорабатывал программу, добавляя интеграции с не поддерживаемыми устройствами.

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

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

*Что касается названия, мы вдохновились персонажем книги Артура К. Дойля «Собака Баскервиллей» дворецкого Бэрримора (англ. Barrymore) — ваш личный «умный дворецкий».

Описание мобильного приложения с яркими картинками и котиками

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

Дом разделяется на зоны, а те в свою очередь на комнаты. И каждой из них есть разные параметры:

  • влажность;
  • температура;
  • показатель потребления электрической энергии;
  • и прочее.

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

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

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

Был интегрирован HomeKit для управления голосовым помощником Siri. Все устройства, которые поддерживаются BARY, могут быть сопряжены с HomeKit. Для этого нужно просто поставить галочку.

Конечно же, был интегрирован и сервис "Яндекс.Алиса", который оказался более отзывчивым в плане команд интерфейса в отличие от Siri. Последняя не закроет занавески, если ее попросить закрыть шторы и не установит комфортный уровень громкости на телевизоре и т.д.

Мы с командой реализовали автоматизации для удобства управления домом. А именно: порядок выполнения операций при определенном наборе условий. Также реализованы логические и многоуровневые автоматизации по типу: «Условие 1 и (Условие 2 или Условие 3)». И все в лаконичном и логичном редакторе:

У меня подобных автоматизаций, разделенных на комнаты и гаджеты, накопилось более 100, и каждая может быть быстро и легко найдена:

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

Сценарий выход/вход из дома/в дом у меня осуществлены посредством Apple TV. Включение/отключение происходит в автоматическом режиме, когда люди покидают помещение и соответственно возвращаются. Приходите к себе в квартиру, а телевизор уже работает и ждет тебя, ведь он сам себя не посмотрит. Ну классно же?

Ну и зачем умный дом, если не можешь подглядывать за питомцем?

Может подключаться любая камера, отдающая RTSP-поток.

Отмечу статистический блок, который вышел довольно содержательным:

Красная полоса говорит об отклонениях от усредненных параметров за 6 месяцев. Серая полоса иллюстрирует текущий расход в границах усредненных значений.

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

Ознакомиться со статистикой можно по всем используемым устройствам:

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

Все появляющиеся оповещения хранятся, они доступны для просмотра:

На главной странице есть вкладка. В ней содержатся все выбранные мной показатели:

Учет расхода воды выполнен с помощью сенсора открытия дверей и окон Xiaomi. Для этого я припаял на контакт (на место геркона) выход счетчика импульсов, при этом в BARY уже реализован виртуальный счетчик, где в качестве первичного источника импульсов используется вышеупомянутый сенсор.

Архитектурная особенность и обеспечение безопасности

Соединение «клиент-сервер» шифруется с помощью AES. А сервер располагается в автоматизируемом помещении, что обеспечивает защиту на высоком уровне.

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

Где именно взять

Запуск серверной части выполняется почти на всех имеющихся платформах благодаря Node JS. Для самых популярных платформ подготовлены скрипты, они автоматически выполняют все функции.

На основе DebianStretch для RaspberryPi:

Target отвечает непосредственно за ту платформу, которая является целевой.

Если пользователь захочет поставить на иную платформу, достаточно отправить нам сообщение, и команда оперативно адаптирует скрипт.

Остануться вопросы или возникнут трудности — обращайтесь к нам за консультацией.

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

А здесь вы можете посмотреть видео с кейсом, описанным выше.

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

Сабирзянов Айдар Ильдарович
Директор ООО "БАРИ"
0
17 комментариев
Написать комментарий...
Виолетта

ага, наводнить шпионами.Пылесос Irobot например передает в Амазон полностью скан квартиры. Нах Нах такое счастье., никаких "умных приборов".

Ответить
Развернуть ветку
Российский Крым

И что американцы будут делать с планом вашей квартиры? Вот как его реально можно использовать? Гордится надо, что забиваете сервера потенциального противника мусором

Ответить
Развернуть ветку
Виолетта

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

Ответить
Развернуть ветку
Российский Крым

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

Ответить
Развернуть ветку
Виолетта

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

Ответить
Развернуть ветку
Российский Крым

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

Ответить
Развернуть ветку
Snezhana Fedorina

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

Ответить
Развернуть ветку
Виолетта

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

Ответить
Развернуть ветку
Российский Крым

Нет вам спасения. Обматывайтесь фольгой и ползите на кладбище. Подслушивать могут и дистанционно с помощью лазерных микрофонов. Сейчас даже через стену глядеть научились. https://topwar.ru/168139-stenovizory-specnaz-uvidit-cherez-stenu.html

Ответить
Развернуть ветку
Виолетта

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

Ответить
Развернуть ветку
Камилла Хансулина

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

Ответить
Развернуть ветку
Российский Крым

А когда зависает роутер умный дом превращается в тыкву?

Ответить
Развернуть ветку
Bary IO
Автор

Нет, он работает локально)

Ответить
Развернуть ветку
Юрий Б.

Давно зависал роутер?

Ответить
Развернуть ветку
Российский Крым

Бывает пару раз в месяц

Ответить
Развернуть ветку
Станислав Мурсаев

Если не секрет, чем это лучше, чем условный Home Assistant?

Ответить
Развернуть ветку
Bary IO
Автор

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

Ответить
Развернуть ветку
14 комментариев
Раскрывать всегда