Андроид как система управления умным домом. Умный дом. Конкретная реализация. Gigaset Elements: Защищаем жилище от непрошеных гостей

06.04.2019

Вадим Балашов, iOS-разработчик из команды мобильной «Почты Mail.Ru», рассказал сайт, как он создал в своей квартире «умный дом» и разработал приложение для часов и бота для Telegram, чтобы управлять системой устройств.

Немного о розетках

Моя жена очень любит выключать всё из розеток. Уходя, она всё выдергивает, а я потом возвращаюсь домой и вставляю обратно. Мне это не нравится. Я пробовал разное: просил, уговаривал, убеждал, угрожал - ничто не помогло. И тогда я решил, что надо найти высокотехнологичный способ уладить конфликт - каким-то образом коммутировать розетки, чтобы не нужно было физически вытаскивать штекеры по всей квартире.

Ну что ж, паяльник есть, руки тоже. Начал думать над реализацией, но сразу возникло очень много вопросов. Например, какой контроллер использовать для управления? У меня был опыт программирования контроллеров линейки AVR от Atmel. Выглядит всё довольно просто: реле, транзистор для развязки и управление одним пином контроллера.

Задачи встало две. Во-первых, контроллер и реле надо питать, а во-вторых, контроллером нужно управлять. С питанием представилось три варианта.

  • Самый простой - запитать от батареек. Но батарейки будут садиться, их придётся менять, а это неудобно.
  • Размещать преобразователи из 220 в 5 вольт прямо рядом с контроллером в каждой розетке. Способ отличный, но готовых компактных преобразователей я не нашёл, а самому возиться с преобразователем не хотелось. Да и боялся накосячить и спалить квартиру.
  • Подвести питание извне к каждой розетке.

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

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

Я начал изучать имеющиеся готовые системы, на которых можно было бы построить «умный дом». Сразу решил, что связь модулей должна быть беспроводная. Осталось выбрать технологию. Сначала варианта было два - Wi-Fi и Bluetooth. Они очень распространены, под них много готовых решений.

Но Wi-Fi, работающий на 2,4 ГГц, не слишком удобен с точки зрения организации сети. Высокое распространение и отсутствие регулирования при установке точек доступа делает эту частоту сильно зашумлённой. Хочется иметь более или менее стабильную систему, чтобы у меня не подвисало переключение розеток, когда работает соседский роутер.

Это оказалось не самой серьёзной проблемой. Гораздо более страшный враг Wi-Fi - микроволновая печь. Магнетрон моей микроволновки излучает волны на частоте 2,45 ГГц - когда она включается, вокруг не работает ничего. Гаснет стриминг Bluetooth аудио, гаснет стриминг видео по Wi-Fi, файлы не качаются, страницы не открываются. Причём неважно, какой конструкции у вас микроволновка, встроенная или отдельно стоящая - она по-любому будет вносить помехи. Поэтому от использования Wi-Fi и Bluetooth я тоже отказался.

Z-Wave

Начал изучать, какие ещё существуют решения. Например, у ZigBee несколько стандартов частоты: есть 2,4 ГГц, а есть в районе 1 МГц. Но тут я наткнулся на статью на «Хабрахабре», где рассказывалось про Z-Wave. Впечатлился. Базовые модули Z-Wave сейчас выпускают всего две компании в мире - Sigma и Mitsumi. Его размеры - примерно сантиметр на сантиметр. По сути, это микроконтроллер с приёмопередатчиком. Его даже можно перепрошивать, но чаще всего в готовом виде монтируют сверху на плату, подключают к нему UART, и он работает как приёмопередатчик.

Все устройства, которые хотят получить значок «Совместимо с Z-Wave», должны пройти сертификацию. Платформа закрытая, что даёт некоторое преимущество с точки зрения совместимости. Для сравнения: в продаже очень много Bluetooth-решений для домов, и почти все они не совместимы между собой. А все устройства Z-Wave совместимы - благодаря единому закрытому стандарту, который тем не менее эволюционирует. Доступна платная SDK, стоит примерно $2 тысячи. Если вы собираетесь одну штучку дома спаять - это дорого. А если намереваетесь наладить производство 2 тысяч устройств, то получите всего доллар разницы на каждое - вполне неплохо.

Дальность связи у стандарта Z-Wave около 30 метров. Одно из его преимуществ в том, что устройства выстраиваются в ячеистую сеть (mesh) и практически в каждом модуле есть таблица маршрутизации. Поймав сигнал, любой модуль знает, надо передать его дальше или нет. То есть почти каждый модуль является ещё и ретранслятором. «Почти» - потому что в Z-Wave существуют «спящие» устройства, которые не участвуют в ретрансляции. Такие устройства обычно работают от батареек и выходят на связь при необходимости.

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

На Amazon продаётся масса Z-Wave-устройств. Есть модули, встраиваемые в розетку и выключатели, есть модули для построения системы безопасности. Замки, сирены, освещение, датчики дыма, датчики протечки воды - что угодно. Я нашёл даже автоматическую кормушку для котов.

Что касается рабочей частоты, то она находится в районе 900 кГц. Эта частота не является открытой для всех стран в мире, для каждой страны нужно проходить сертификацию и получать разрешение на использование этой технологии, поэтому в разных странах несущие частоты немного отличаются. В Европе частота 868,42 МГц, в России - 869,0 МГц, в США и Канаде - 908,42 МГц, в Гонконге - 919,82 МГц, в Австралии - 921,42 МГц.

Если вы купите модуль, который сделан для Европы, то программно его можно перевести на российскую частоту. Точно так же можно программно переключать частоты устройств, сделанных для Гонконга и Австралии. А вот американские устройства не переключаются. Поэтому существует три категории одинаковых устройств, и нужно обращать внимание на то, для какого региона они изготовлены. Гонконг и Австралию вы вряд ли встретите, так что смотрите только на США, Россию и Европу.

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

Считается, что стандарт обеспечивает устойчивую работу на расстоянии 30 метров на открытых пространствах и до 10 метров - в квартирах. Конечно, расстояние устойчивой связи между модулями, размещёнными в розеточных нишах, будет ещё меньше, но за счёт маршрутизации всё работает достаточно стабильно.

Теперь поговорим о коммерческих контроллерах. Наиболее распространены две марки: Fibaro и Vera. У Fibaro есть серии - Home Center и Home Center Light. У Vera тоже две серии контроллеров, одна подороже, вторая подешевле. Все они поддерживают базовые наборы правил, и вы вполне сможете сделать так, чтобы при включении одного устройства активировалось другое, а через какое-то время выключалось или делало что-нибудь ещё. Но если вам нужно реализовать более сложное поведение, то придётся программировать самостоятельно. В качестве языка используется Lua.

Есть и третья, менее распространённая марка - Zipabox, но эти контроллеры, судя по описанию, не поддерживают расширенную автоматизацию. Тем не менее Zipabox интересен тем, что у него есть модули расширения, которые стыкуются, как конструктор.

Но мы сейчас поговорим о другом проекте, имеющем отношение к Raspberry Pi. Это проект сообщества, которое решило сделать максимально дешёвое «железо». Сегодня Raspberry Pi в розницу стоит около 4000 рублей. На Amazon можно купить за $50, при текущем курсе это почти в полтора раза дешевле. На Raspberry Pi поднимается веб-сервер с пользовательским интерфейсом, для которого можно писать автоматизацию на JS. В качестве «железа» используется плата расширения, которую назвали RaZberry, выглядит она так:


А вот пример интерфейса панели управления, которая называется Z-Way. Он отображается в браузере, неплохо работает и на планшетах.


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



Одно из преимуществ Z-Way - проект открытый, вот ссылка на GitHub. Команда разработчиков «с офисом в интернете», как пишут они сами, раскидана по разным странам: Россия, Германия, Швейцария. Интерфейс можно бесплатно скачать с GitHub, при желании - пересобрать что-то самому. И всё это прекрасно управляется из админки.

Управление

Я начал думать, как реализовать более удобное управление системой, чем с компьютера через админку. Это сегодня есть приложения для Android и iOS, а два года назад официальный клиент под Android оставлял желать лучшего: я так и не понял, как им пользоваться. Нашёл, настроил, подключился, но пользоваться не смог. В то время я был адептом Windows Phone, под который не было клиента. «На коленке» написал клиент для себя - когда выключатели рассинхронизировались, жена обращалась ко мне за помощью.

Год назад, в феврале-марте 2015 года, компания Pebble запустила сбор средств на создание новой версии часов - Pebble Time. Я поддержал проект, и к октябрю часы уже были в моём распоряжении. Я подумал, что это прекрасная штука для управления «умным домом». Ведь телефон не лежит всегда в кармане, дома я просто кладу его куда-нибудь, а часы обычно на руке. К тому же Pebble, в отличие от часов на Android Wear или Apple Watch, подключается и к iPhone (которым я к тому времени пользовался) и к телефонам на базе Android.

Pebble


У Pebble довольно много достоинств. Во-первых, они целую неделю работают на одном заряде. Пользователи Apple Watch знают эту боль, когда уже к вечеру нужно искать зарядку. Кроме того, у Pebble экран всегда показывает время, потому что сделан на базе цветных электронных чернил. Есть поддержка двух основных операционных систем. Часы водоустойчивы. А ещё они имеют аппаратный порт. Подключаются «умные» ремешки, которые можно делать самому (на сайте Pebble есть подробное описание).

Но за всё надо платить. У часов нет сенсорного экрана, для управления - четыре кнопки. Зато не надо постоянно опрашивать сенсорный экран, благодаря чему часы так долго работают без подзарядки. Второй недостаток - дисплей отображает 64 цвета.

Работу Pebble обеспечивает операционная система на базе OpenRTOS. Приложения для часов напоминают веб-приложения. Фронтенд исполняется на часах и пишется на C, а бэкенд работает в телефоне и пишется на JavaScript. Разработчики веб-приложений сейчас пришли в ужас: где это видано, фронтенд на С, а бэкенд на JS?

Но это легко объяснимо: C как наиболее компактный для компиляции язык очень удобен для создания встраиваемых приложений, а плюс JS в том, что он одинаково хорошо исполняется на iPhone и Android. JS работает внутри телефона и обеспечивает интерфейс для выхода в интернет и доступа к GPS. Сами часы имеют встроенный акселерометр, гироскоп и магнитный компас, то есть базовый набор «железа».

В итоге я написал приложение для управления своей системой «умного дома». Сначала для последней версии часов, а потом реализовал поддержку самой первой модели Pebble - с чёрно-белым экраном.


Настройки делаются в виде HTML-страницы. Для разработки Pebble советуют использовать Slate Frontend Framework. Страница должна быть расположена в вебе, что само по себе странно, потому что без подключения к интернету вы ничего не настроите.

После того как я написал приложение, я выложил его в официальный магазин приложений и забыл о нём. Его установили 40 человек, и я начал получать отзывы. Я давно не программировал на С и с ужасом вспомнил, что с выделением памяти - и, что ещё страшнее, с её высвобождением - нужно работать вручную. Поэтому в первой версии я сделал статический массив для восьми устройств, которые у меня были, и всё это прекрасно работало у меня дома.

Но в сетях, где больше восьми устройств, понятное дело, не работало. И первый отклик был из Дании: «А можно ли сделать больше?» Я, конечно, сказал, что можно, и ещё за один вечер перевел приложение на динамические массивы. Товарищ был счастлив, но не очень долго.

Оказалось, что у него около 54 логических устройств - выключатели и датчики, причём один физический модуль может быть сразу несколькими логическими устройствами. Например, у меня дома есть датчик, который одновременно отслеживает движение, температуру, влажность и освещённость, и в системе он виден как четыре датчика. А у датчанина больше 50 устройств, и он жаловался, что для выключения чего-либо ему приходится очень долго пролистывать весь список на часах.

Я подумал ровно вечер и придумал одну штуку. В админке Z-Way можно вешать на устройство теги, и я решил просто добавить тег Pebble, а в настройках часов ввести режим, когда на экране отображаются только помеченные этим тегом устройства. Пользователь сам выбирает, какие устройства он хочет видеть. Товарищ написал, что это просто великолепно: теперь у него пять устройств, которыми он управляет прямо из часов.

Потом мне написал о проблеме другой пользователь моей программы. Приложение умело отображать датчики, а управлять могло только выключателями, причём выключателями типа «Вкл» / «Выкл». Но существует много других управляемых устройств - например, диммеры, для которых можно устанавливать значения от 0% до 100%. Или RGB-модули, на которых можно выставлять любой цвет.

Я согласился добавить поддержку подобных устройств, но попросил прислать структуру его сети, чтобы посмотреть, как они выглядят живьём. Он прислал, я посмотрел - выглядят классно, но непонятно, что с этим делать. Я полез в настройки и выяснил, что в Z-Way есть виртуальные устройства. Такому устройству можно выставить тип, например, Multilevel Switch, и оно превращается в виртуальный диммер.


Ничем не управляет, но делает вид, что он диммер. Хотя почему «ничем»? Управляет сам собой. Я могу с часов выставить значение, и он покажет мне его в дашборде. Этого мне хватило для реализации поддержки диммеров.

Потом я взялся за RGB. Это управление светодиодными полосами, которые могут отображать любой цвет. RGB-освещение появилось в стандарте Z-Wave не так давно, поэтому изначально оно выглядело в системе как три диммера. То есть все устройства рапортовали, что они три диммера, и можно было отдельно управлять красным, зелёным и синим каналом. Для удобной работы со старыми устройствами в современных системах управления сделали виртуальное устройство RGB-освещения, в котором можно задать три диммера.


Поскольку мы уже умеем задавать Dummy Dimmer, то можем сделать Dummy RGB. Это тоже хорошо работало, но поддержку управления цветом я пока ещё не реализовал - отправил «заказчику» только управление диммерами. И для него я как раз настраивал поддержку чёрно-белых часов.

Виртуальные устройства

В чём ещё мощь виртуальных устройств в Z-Wave? Возьмём виртуальное HTTP-устройство, и пусть у вас есть любое другое устройство, которое несовместимо со стандартом Z-Wave, но управляется с помощью HTTP-запросов.


Тогда мы пишем HTTP-запрос на включение: адрес, который нужно дёрнуть, запрос на выключение и запрос на получение статуса устройства. Вероятнее всего, устройство, которое не поддерживает Z-Wave, не поддерживает и ответ в формате On / Off.

Для его поддержки можно ввести Inline JavaScript, который будет преобразовывать ответ с вашего устройства в On или Off. А имея виртуальное устройство, дальше мы можем делать всё, что угодно. Например, интегрировать в эту систему любое устройство на базе контроллеров ESP8266. То есть мы делаем три конца, на которые устройство умеет реагировать, а дальше любую обвязку.

Сцены

Это набор состояний логических устройств. Сцену нельзя включить или выключить - её можно только активировать. У меня, например, сделана сцена Away, которую я активирую, выходя из дома. Она выключает свет в ванной и туалете, выключает розетки в ванной и на кухне. Активация сцены Away выключает всё, что есть управляемого у меня дома. Также у меня есть сцена Back. Она включает обратно две розетки, но не свет: вернувшись, вы включите его тогда, когда он будет нужен.

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

И последнее. Z-Way на часах хорош, но управлять можно только дома. Если хочется управлять извне, то можно сделать бота для Telegram. Он у меня простенький: ему посылают команду Light, он спрашивает: «Где?» - и показывает пиктограммки туалета и ванной. Выбираешь место, он спрашивает: «Что сделать?» - и показывает светящуюся лампочку и чёрную. Выбираешь чёрную, и он говорит: «Ок, свет в ванной выключен».

Заключение

Это увлечение «умным домом» у меня происходило наплывами. Я в какой-то момент загорелся идеей, заказал модули, встроил один, который управлял только светом в туалете и ванной. Ещё заказал датчик движения, температуры и влажности. Повесил в ванной и сделал классную автоматизацию: свет в туалете автоматически отключается через 15 минут, если забыли выключить, а свет в ванной включается при входе, по датчику движения, а выключается через 15 минут. Всё классно - кроме того, что жить с этим невозможно. Оказалось, что 15 минут в туалете - это на самом деле мало, особенно если там хорошо ловится Wi-Fi. А он ловится хорошо. Увеличение периода ожидания не помогло, так что эту автоматику я пока отключил и заказал ещё один датчик движения.

Автоматика в ванной простая: входишь - свет включается, выходишь - выключается. Удобно. Но сперва я настроил её не очень удачно: датчик движения стоял на входе, а когда ты заходишь в душ и задёргиваешь шторку, он тебя не видит, и через 15 минут свет гаснет. Нужно открыть шторку, махнуть рукой и задёрнуть шторку обратно. Проблема решилась переносом датчика в середину ванной, чтобы он реагировал на движение по обе стороны от шторки.

В чем заключается понятие «умный» дом? В любом магазине бытовой техники можно увидеть телевизоры со Smart TV, пылесосы, сплит-системы и пр. Для удобного использования смарт-устройств разработчики предлагают специальные пульты. У этих устройств как свои преимущества, так и недостатки. Поэтому недавно появились гаджеты для преобразования Bluetooth-сигналов с мобильных устройств на Андроид в понятный бытовым устройствам формат - ИК-декодеры.

Вслед за таким гаджетам в Google Play стали появляться Андроид-приложения для управления домом. Вот самые популярные приложения для Android, заменяющие ПДУ:

Remote Control for TV

Удобный виртуальный пульт для управления телевизором. Нет лишних кнопок, базовый набор включает управление громкостью и выбором каналов. Работает в 3х режимах: обычный ИК-порт, «ИК-Blaster» и общая Wi-Fi сеть.

Плюсы программы: три варианта соединения с телевизором; простой интерфейс; поддержка множества моделей «умных» ТВ-систем.

Smartphone Remote Control

Это универсальный ПДУ для ТВ с функцией Smart TV. Принцип работы похож на Remote Control for TV. Есть базовые клавиши для управления громкостью и выбором ТВ-каналов. Есть набор базовых функций (переход в 3D-режим, вызов списка каналов и добавление в избранное). Есть поддержка ИК-порта или Wi-Fi сети. Среди больших плюсов - отсутствие оплаты за приложение.

Плюсы: очень понятный интерфейс; поддержка Wi-Fi и ИК-подключение, бесплатное приложение.

Universal Remote TV

Очень похоже на предыдущие приложения по своим функциям. Единственное отличие – более удобное расположение на виртуальном ПДУ, как на обычном пульте, поэтому быстрее привыкаешь к интерфейсу. Также здесь есть поддержка ИК-порта, Wi-Fi, прямой коннект при вводе IP-адреса.

Минусы: нет очевидных плюсов.

Remote Control Pro

Универсальный пульт дистанционного управления для смартфона или планшета на Android. Опять же, здесь есть поддержка управления через Wi-Fi сеть и ИК-порт. Очень простое управление, также можно напрямую установить контакт через локальную Wi-Fi сеть. Отличие – самый удобный дизайн интерфейса, неброская гамма и удобное расположение кнопок.

Плюсы приложения: Wi-Fi, ИК-порт для подключения; удобный дизайн интерфейса.

Универсальный пульт Galaxy

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

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

Плюсы: возможность создания пресетов; поддержка не только ТВ, но и разной домашней техники; большой список поддерживаемых брендов.

Минусы: нет демо-версии, приложение платное.

Вот видео, продолжающее тему ПДУ и других программ для управления «умным» домом:

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

2.5 (50%) 2 votes

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

  • освещением (включение и выключение света, регулировка его яркости и оттенка);
  • электроприборами (включение и выключение, активация по таймеру);
  • климат-контролем (регулировка температуры при помощи контроля кондиционера или радиатора);
  • охранным комплексом (работа камер видеонаблюдения, датчиков и передача данных оттуда на смартфон на базе Android).

Управление Умным домом при помощи Android-приложения

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

Альтернативный вариант - написать приложение на «Андроиде» (самая популярная операционная система, для которой пишут и размещают тысячи утилит в Google Play). Это дает возможность удаленного доступа по мобильному к блоку контроля вашего помещения.

Умный дом Crestron - Android R2

Преимущества

«Умный дом» с управлением от «Андроид»-приложения имеет несколько преимуществ:

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

Мобильный интерфейс приложения для управления Умным домом

Мастер управления

Управление умным домом с платформы «Андроид» возможно при помощи мастера управления и приложения, для которого вам потребуется написать код.

Мастер управления - это шлюз, который соединяет операционную систему «Андроид» любого планшета или телефона с рядом модулей для дистанционного управления, которые работают на частоте 433 МГц. На его борту устанавливаются следующие составляющие:

  • таймер;
  • приемное устройство для радиосигнала на частоте 433 МГц;
  • устройство для передачи сигнала на той же частоте;
  • Bluetooth-модуль, чтобы связаться с «Андроид»-гаджетом.

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

Существуют такие способы программирования существующей техники и систем жизнеобеспечения при помощи приложения:

  • если у вас уже есть пульт или панель дистанционного управления, включите или выключите освещение (электроприборы) при помощи этих приспособлений. За то время, пока вы нажмете и удержите пару секунд кнопку, «мастер» считает и запомнит его код. Так обучение проводится для каждой команды. В дальнейшем при помощи «мастера» задаются сценарии на несколько электроприборов, которые объединяются в сцену;
  • если у вас нет пульта ДУ, разработанное для «умного дома» ПО тоже может использоваться сразу.

Программа для управления всеми системами Умного Дома. Устанавливается на планшетный компьютер на Windows, Android, iOs. Подключается к контроллеру через Wi-Fi или интернет (протокол связи ModBus TCP).
Работает с практически любыми промышленными контроллерами, в том числе Beckhoff и ОВЕН.

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

Функции программы EasyHome:

  • управление системами освещения (в том числе разноцветными светодиодными лентами и лампами с изменяемой яркостью свечения)
  • управление климатом каждого помещения
  • связь с системеми охранной и пожарной сигнализации
  • связь с системами вентиляции и кондиционирования
  • контроль потребляемой мощности по нескольким фазам с автоотключением неприоритетных нагрузок
  • управление розетками и прочими электроприборами
  • установка на любое количество устройств, управление через Wi-Fi или интернет
  • контроль и предотвращения аварий: протечка воды, утечка газа, электроаварии
  • сбор информации со счётчиков воды, газа и электричества
  • управление по сценариям и предустановкам
  • доступ к контроллеру через локальную сеть или через внешний IP адрес (автовыбор при запуске программы)
  • отображение изображения с IP видеокамер (в версии для Windows, поддерживается видеопоток MJPEG и H264, не все модели камер)
  • возможность запуска разных интерфейсов (запрос при запуске программы)

И многое другое!

Скачать EasyHome для iOS (iPhone и iPad):

Чтобы загрузить DEMO версию интерфейса приложения надо в окне добавления конфигурации набрать адрес:

http://сайт/downloads/EH_DEMO.ehpa

Новое в версии EasyHome 7.9.5 для iOS (январь 2018):

  • Добавлен удобный контрол светодиодной ленты RGB с выбором цвета
  • Уоучшена функция автомасштабирования элементов
  • Исправлен адрес скачивания Демо интерфейса (сайт был переведен на защищенный протокол https)
  • Улучшена панель аварийных сообщений
  • Множество мелких улучшений и исправлений в работе программы

Новое в версии EasyHome 7.9.1 для iOS (апрель 2017):

  • Загрузка файлов конфигурации через интерфейс самой программы
  • Выбор конфигурации при запуске и быстрая смена интерфейса
  • Новый контрол управления RGB лентами
  • Функция автоповорота экрана (удобно для iPhone)
  • Прочие мелкие улучшения и исправления

Как пользоваться ДЕМО версией:

1. Скачать архив

2. Распаковать архив в любое место (например, на рабочий стол)

3. Запустить файл EasyHomeEditor.exe

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

Новое в версии EasyHome 7.8 (апрель 2017):

  • Возможность отправки контроллером произвольных смс-сообщений на русском языке для контроллеров ОВЕН (ранее было доступно только для Beckhoff)
  • Появились свободные функции. Можно задавать любую логику работы входов и выходов через интерфейс EasyHome. Ранее это было доступно только через изменение кода контроллера нашим инженером.
  • Появились мультисцены
  • Добавлен удобный драйвер для работы с инфракрасными передатчиками по интерфейсу RS485. 4 режима управления любыми кондиционерами через ИК-команды.
  • Возможность подключения инмерителя параметров электросети к контроллеру ОВЕН на одну или три фазы.
  • Можно подключать до 10ти модулей расширения ОВЕН в любой комбинации, общее количество дискретных входов и выходов может быть теперь до 255.
  • Появился астрономический датчик освещённости по высоте солнца.
  • Всякие мелкие улучшения.

Новое в версии EasyHome 7.7 (декабрь 2016):

  • Многочисленные улучшения интерфейса
  • Увеличение скорости работы на системах Windows 10 и iOS 9
  • Появилась возможность перекрывания разных стояков водоснабжения при срабатывании разных датчиков протечки воды
  • Появилась возможность постановки на охрану произвольного набора датчиков движения
  • Появилась функция мультиинтерфейс - предзагрузочное графическое меню в котором можно выбрать, какой именно интерфейс запустить

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

Попытался начертить схему моей комнаты со всеми устройствами объединёнными в сеть, картинка кликабельна:

Вся идея держится на трёх китах:

  • Децентрализация - вся система функционирует без какого-либо главного модуля;
  • Простота - минимум компонентов и лёгкость подключения;
  • Дешевизна - себестоимость устройства легко уложить в 100 рублей.
При таком подходе можно легко создавать и добавлять в CLUNET-сеть устройства, каждое из которых отвечает за какую-то простую функцию. У всех устройств есть свой адрес, при этом они могут обмениваться между собой пакетами напрямую, без участия какого-либо главного модуля, и это очень активно используется:
  • Пакеты от ДУ-приёмника получают выключатель и открыватель окна, что позволяет управлять светом и открывать окно с любого пульта или Nintendo Wii U;
  • Датчики движения информируют выключатель о том, что в комнате никого нет, и можно выключить свет;
  • Дисплей в коридоре выводит всегда актуальную температуру на улице, получаемую от датчиков температуры;
  • По команде от кодовой панели открывается дверной замок;
  • Устройство с пищалкой издаёт звуки, когда узнаёт об открытии замка, нажатии кнопки или звонке в домофон.
Этот список легко меняется и дополняется с учётом того, что прошивку каждого устройства можно обновлять прямо по сети. И нет, у меня не возникает проблем с непониманием своих исходников. Код всех прошивок получается предельно простым.

Единственным главным устройством, пожалуй, можно назвать только блок питания. В данный момент он у меня один почти на все самодельные устройства, и отлично с этим справляется. Многие скорее всего скажут: «Да у тебя же наверное всюду провода!», - отчасти это правда, но у меня нет никакой фобии по отношению к проводам. К тому же маленький шлейф с питанием и линией данных почти незаметен на фоне остальных кабелей.

Роутер с CLUNET-адаптером

Мой роутер помимо маршрутизации трафика выполняет ещё одну роль - маршрутизация трафика он является «окном» для устройств CLUNET сети в Интернет. Или скорее наоборот - позволяет из Интернета и локальной сети командовать всеми устройствами. Для этого в его USB порт включено специальное устройство.

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

Помимо этого роутер используется как простенький веб-сервер, чтобы можно было управлять устройствами через веб-интерфейс на случай… ну так, на всякий случай:

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

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

В ответ на пакеты приходящие от устройств тоже выполняются различные скрипты. Так ведутся логи по самым различным событиям типа звонков в домофон, рисуются графики температуры (http://clusterrr.com/sensors/t/) и других данных, отправляется push-уведомление мне на телефон, если вдруг в комнате открыта дверь, а меня дома нет, и прочее.

Софт для Windows

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

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

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

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

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

Помимо этого этот софт выполняет и обратную роль - получает коды кнопок от ДУ-приёмника и имитирует WinLIRC-сервер - популярную программу для работы с ДУ-пультами. Работу с ней поддерживает, например, MPC-HC, есть плагин для foobar2000. Таким образом можно делать и наоборот - управлять приложениями на компьютере при помощи любого пульта.

Софт для телефона

Ну как же без управления всем этим с телефона из любой точки мира? Приложение для Android обладает примерно такой же функциональностью. В основном активити можно переключаться между различными режимами путём горизонтального свайпа.

Планшет

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

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

Пришлось накодить различные виджеты рабочего стола:

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

Знакомьтесь, вот моя электронная жена:

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

Аналогичная служба была в итоге установлена и на телефон. Работает она только при подключенной зарядке. Наверное было бы здорово использовать для этого Google Glass.

Подробнее об устройствах

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

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

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

Суть в том, что у меня в комнате жили мыши, а в остальной части квартиры - коты. Весь смысл устройства был в том, чтобы дико пищать, если забыли закрыть дверь, ведь коты ни в коем случае не должны проникнуть в комнату к мышам. Теперь же устройство посылает в сеть пакеты при открытии и закрытии двери. Роутер же пишет логи её открытия и посылает мне push-уведомление, если вдруг она открыта, когда меня нет дома. Моё местоположение определяется по мобильному телефону. Помимо всего этого пищалка теперь используется для самых разных звуковых уведомлений - домофон, открытие замка, нажатие кнопок на кодовой панели.

ДУ-приёмник и ДУ-передатчик
Про них я вроде ещё уже рассказал выше. Приёмник стоит у компьютера, передатчик спрятан на шкафу.

Датчики движения
В комнате висят два вот таких вот датчика движения.

Способствуют выключения света, когда движения долго нет, а ещё смене моего статуса на «away» в мессенджерах. Помимо них движение определяют ещё и четыре видеокамеры.

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

Теперь у меня всё как у серьёзных взрослых дядь!

Датчики температуры и освещения
Тут особо нечего рассказывать. Устройство висит под подоконником и опрашивает по 1-wire датчики температуры, помимо этого экспериментально сделан ещё датчик освещения. Сам не знаю зачем.
Открыватель окна
Его вы уже могли немного видеть на видео выше. Сам механизм покупной и представляет из себя цепь с двигателем. Приятно было узнать, что есть компании, которые делают подобные штуки.

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

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

А ещё там бегает Pac-Man, для которого было нарисовано несколько кастомных символов.

Мышиные клетки
Мышиные клетки передают в виде ИК-сигналов информацию о том, сколько каждый мыш пробежал в колесе. Про это тоже была отдельная статья: http://habrahabr.ru/post/165269/
Увы, сейчас остался только один мышонок, и бегает он уже мало.
Видеокамеры
В комнате стоят четыре IP-камеры с механизмами поворота.

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

Заключение

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

Многие люди наверняка будут спрашивать меня: «Зачем тебе столько видеокамер?», «Зачем тебе кодовая панель?», «Зачем тебе датчики движения?», «Зачем тебе всё это?»
На все подобные вопросы я отвечу одной картинкой:

Теги:

  • умный дом
  • avr
Добавить метки
Похожие статьи