Управление Умным Домом с помощью смартфонов на платформе Android

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

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

В настоящее время осуществляется выпуск специальных приборов, позволяющих осуществлять интеграцию различных «умных» элементов дома. Сам процесс управления происходит через доступный к пониманию интерфейс при помощи смартфона или планшета. Для этой цели можно использовать не только смартфон, но и консоль операционной системы Android. В интеллектуальной сети могут быть объединены совершенно разные группы приборов: системы вентиляции, отопления, водоснабжения, а также система управления шторами, дверями, электроосвещением и прочее. Приложение, установленное на телефоне, может отражать - сколько потрачено в доме электроэнергии, состояние охранной системы, климатическая обстановка в доме. Оно может распознавать конкретные аварийные ситуации в доме (утечку газа или воды, возникновение пожара, проникновение посторонних лиц в дом) и вовремя направить сигнал - в службу спасения, милицию или на электронную почту. Соблюдая меры , связь может вестись с использованием шифрованного соединения (такого же, как для транзакций при финансовых операциях). Это делается с единственной целью - во избежание подсоединения посторонних лиц к управлению домом.

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

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

Концепция построения системы «умный дом» на базе платформы Android призвана облегчить управление системой посредством использования любого мобильного устройства на идентичной операционной системе. Говоря про аналоги, Z-Wave или ZigBee, хочется заметить, что они пригодны для управления системой охраны или климат-контроля, но при децентрализованном управлении развлекательными системами операционной системе Android пока нет достойных конкурентов.

Программа для управления всеми системами Умного Дома. Устанавливается на планшетный компьютер на 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
  • Появилась возможность перекрывания разных стояков водоснабжения при срабатывании разных датчиков протечки воды
  • Появилась возможность постановки на охрану произвольного набора датчиков движения
  • Появилась функция мультиинтерфейс - предзагрузочное графическое меню в котором можно выбрать, какой именно интерфейс запустить

Вадим Балашов, 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 минут свет гаснет. Нужно открыть шторку, махнуть рукой и задёрнуть шторку обратно. Проблема решилась переносом датчика в середину ванной, чтобы он реагировал на движение по обе стороны от шторки.

17 января 2016 в 18:52

Управление Умным Домом с телефона - мой опыт

  • Умный дом ,
  • DIY или Сделай сам

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

Итак, самое время заняться интеграцией с мобильными устройствами.

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

В своем ПЛК я создал модуль Mobdus Slave с входными и выходными регистрами и написал блок синхронизации, а дальше в среде иридиум набросал простенький интерфейс.

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

На мобильное устройство нужно поставить приложение i2 Control. Оно бесплатное, но для того чтобы загрузить в него созданный проект нужно купить лицензии. В моем случае это были бесплатные демо-лицензии.

Так выглядел интерфейс моего умного дома в приложении i2 Control на iPhone. Приложение я поставил на все мобильные устройства имеющиеся в семьи и тут я наткнулся на первую проблему. Ккогда работаешь на ноутбуке, а телефона под рукой нет, то было бы удобнее управлять светом непосредственно с ноутбука.

Сделать на Iridium Mobile это можно, но нужно поставить программу i2 Control для Mac (или для Windows) и подключись лицензию. Во-первых, у меня закончились бесплатные демо-лицензии, а во-вторых запускать программу только, чтобы включить или выключить свет не очень-то удобно. С тем же успехом я могу зайти через удаленный десктоп на сервер, где обычно все время запущен CoDeSys с визуализацией. Собственно, я обнаружил, что чаще я так и делаю, вместо запуска специализированного приложения на телефон или планшете.


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

От установки i2 Control на свой Mac я отказался и довольствовался управлением только с телефона и планшета.

Спустя некоторое время всплыла вторая проблема. Запуск приложения i2 Control занимает достаточно долгое время. Например, на моем iPhone 6 оно стартует около 9 сек. Наверное, если бы задача была управление медиа-центром, то это время было бы приемлемо - пока найдешь все пульты, включишь всю технику, настроишь нужное сочетание, то явно пройдет больше времени. Однако для управления светом эти 9 секунд оказались неприемлемо долго и зачастую я предпочитал встать и выключить свет, чем запускать приложение (сейчас вышел Iridium server, который по идее решает эту проблему, но руки протестировать его у меня пока не доходят).

Жить с умным домом и не управлять им с телефона было как-то неправильно и поэтому я решил седлать еще одну попытку. Идея была такая - на домашнем севере поднять веб-сервер и вынести все управление на веб-страницу. Знакомые посоветовали Node JS - мол, модная и перспективная платформа, а так как мне все-равно было что изучать (я не знал ничего), то остановился на Node JS. Единственное, что не хотелось делать - это разбираться в HTML, поэтому я заказал frontend у фрилансера, а на Github’е нашел библиотеку для работы в Modbus и очень быстро (сам удивляюсь) сделал задуманное.

Так выглядит сейчас интерфейс моего умного дома на Iphone. Интерфейс адаптивный, поэтому он хорошо смотрится на любых устройствах. Например, вот так он смотрится на моем макбуке:

На десктопе айфона у меня сделана ссылка на эту страницу, которая загружается достаточно быстро 1-3 сек. Я добавил ее также в закладки в браузеры и теперь управление светом всегда под рукой. Сервер Node JS выполняет также роль между ПЛК (контроллером умного дома) и контроллером z-wave, который используется для беспроводного управления разными лампами (об этом я расскажу в будущем).

Традиционно в конце плюсы и минусы решения.

Плюсы: Быстрый адаптивный интерфейс, который работает на любых устройствах, цена (я заплатил только за разработку фронтона).

Минусы: Необходимость программирования. И если добавление выключателей делается достаточно просто (я, например, перед Новым Годом добавил управление елкой), то, например, интерфейс к медиа-центру это целый и большой проект.

22 января 2014 в 10:47

Умный дом. Конкретная реализация

  • Java

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

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

Расскажу что есть у меня сейчас из оборудования:

  • Несколько диммеров ZWave
  • Датчики ZWave (объема, присутствия, температуры, протечки, открытия дверей/окон, донгл для ПК)
  • Клапаны ZWave
  • Выключатели Noolite (силовые модули+выключатели-передатчики, донглы RX и TX (PC) для ПК)
  • Едут диммеры Noolite
  • Планшеты на Android (служат терминалами системы)
  • На полке лежит донгл 1-wire:)
Обо всех этих технологиях рассказано достаточно подробно на Хабре (в том числе и в моих статьях), но я бы хотел остановиться на Noolite . Технология хорошо описана (например, ). Теперь моя очередь:)

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

Так выглядит донгл для передачи команд силовым блокам:

Да-да! Именно для приема команд! Это та недостающая часть Noolite, которой лично мне не хватало для того, чтобы использовать эти устройства у себя. Информации об этом почему-то нигде, кроме официального сайта нет.
Почему он так важен? Если вы читали про Noolite раньше, то знаете, что силовые модули (то, что включает/выключает нагрузку) имеют только приемник сигналов, а передатчика нет. Это существенно ограничивало (лично для меня) применение такого оборудования в умном доме. Производитель решил проблему костылем оригинальным решением - выпустили отдельный приемник сигналов от самих передатчиков (радиовыключателей). Единственная проблема этого девайса - очень маленький радиус приема. Возможно тут накладывает свои ограничения сам радиовыключатель, т.к. у него достаточно слабая антенна, да и ставились они как правило на места бывших выключателей (чтобы скрыть дыры в стенах:)) - возможно, какие-то наводки.

Собственно, вот один из моментов процесса установки, взамен старого выключателя:

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

Силовой блок в объектив телефона по каким-то причинам не попал:) Результат его подключения:

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

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

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

Если сегодня не выходные и не праздники, то в 6.00 начинает разгораться ночник, установленный с моей стороны кровати - световой будильник.
Около 6.45 терминал умного дома (планшет на Андроиде, висящий рядом с кроватью) получает команду от головного сервера на включение будильника (да, я понимаю, что можно было бы просто включить будильник на планшете:)) - проигрывается приятный шум утреннего леса, под который я и продолжаю просыпаться.
Одновременно с этим включается свет в коридоре, на кухне, в ванной и туалете.
Когда я наконец выползаю в коридор датчики присутствия определяют мою сонную тушку и синтезированный голос гугло-женщины приветствует меня. Одновременно с этим умный дом открывает клапаны на подачу воды (есть у меня такая фобия - залить соседей).
После всяких туалетных процедур я заползаю в душ. Датчик присутствия в ванной определят что я уже тут и местный терминал спрашивает, хочу ли я узнать последние новости. Тут я волен ответить да или нет (принимаются видоизменненые ответы) - работает распознавание голоса от того же Гугла + нейронные сети Wit.AI.
(К слову сказать, пока голосовое общение в процессе разработки - говорить нужно четко и громко, принимается речь не всегда с первого раза, да и распознавание и реакция системы занимает некоторое время (от 2 до 5 секунд в среднем))
Дальше я выхожу из ванной, сам себе включаю чайник и наливаю чай (ага, недоработка:)). Если я задерживаюсь и система видит меня своими датчиками (присутствия + датчик на входной двери не отработал) - меня подгоняют голосовыми сообщениями.
Ухожу, закрываю дверь - свет везде автоматически выключается.

Это конкретно мой пример. Тут возможны нюансы - встанет жена, у меня отпуск и т.д. Но в целом сценарий для меня подходит в 90% случаев.

Немного о софте. Сама система умного дома реализована из трех компонентов. Это ядро системы, которое, собственно, всем и управляет. Веб-интерфейс на Play Framework 1.2.7, на котором в будущем будет реализовано челвеко-дружелюбное управление системами умного дома. И андроид-приложение, которое служит терминалом умного дома.
Софт опубликован на Github"e, конкретная реализация вышеописанного в нем пока отсутствует, т.к. много страшного кода, который я привожу в порядок, но в общем функции присутствуют.
Написана система на Java и на данный момент не имеет человеческо-удобного интерфейса, кроме как некоторое подобие REST"а. Сейчас система не готова для простого пользователя и находится в глобочайшей альфе. Некоторые функции, которые я использую у себя еще нет в общедоступном репозитарии, но это дело времени.

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