sonyps4.ru

Как установить умный дом Home Assistant. Строим с «Дусей» настоящий Интернет вещей у себя дома

Говорят что лень - мать прогресса. В моём случае, так оно и было. Сейчас я живу в солнечной Индонезии, где по ночам люди освещaют свои дома для отпугивания воров (и призраков). Случилось так что моим поручением стало включение и выключение сего освещения. Каждое утро и вечер надо пройти вокруг дома и щёлкнуть всеми наружными выключателями. Особенно трудно не забыть об этом утром, поскольку включённые лампочки не заметны при дневном свете. После недельки таких хождений мне захотелось лучшей жизни. Я решил сделать дистанционный выключатель и автоматизировать управление светом. Таким образом, закладывая первые виртуальные кирпичи своего умного дома. Была только одна маленькая проблемка - я не имел ни малейшего представления как спроектировать электронику и развести плату.

На заглавном фото вы видите результат моих работ. Выключатель представляет из себя две вставки в стену. В одной располагается физический выключатель, а в другой его «мозг». Виртуальный выключатель работает в OpenHab2, запущенный в с свою очередь на RaspberryPi2.

Дизайн/Пожелания

Итак, с чего же все таки начать разработку такого устройства? Я хотел чтобы виртуальный выключатель работал вместе, а не вместо, физического, и чтобы выключение физического выключателя не отключало виртуальный. Здесь такую конструкцию любя называют «отельный выключатель».


А как быть с корпусом? Мой девайс ни в коем случае не должен быть «wall wart»-ом. Наоборот, он должен гладко сливаться с физическим выключателем не выдавая своего существования. Значит плата должна будет помещаться в одну из распостранённых стенных коробочек. Ниже, на фотографии показан экземпляр такой коробочки, она из линейки выключателей и розеток компании Panasonic. На её базе я разработал своё устройство.


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

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


Первый Прототип

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


Для понижения 220В в 5В я использовал заряжалку от телефона. Сразу берите хорошую заряжалку, например ту которая прилагалась к телефону при покупке. Не покупайте Китайский афтермаркет на базаре, они обычно кривые. Я взял свою от какого-то старого Самсунга.

Рэле я взял как кит («beefcake» kit из SparkFun-a). Оно было большое, с громким кликом и имело всю необходимую обвязку (транзистор, защитный диод, итд) чтобы орудовать им ногой микроконтроллера.

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

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

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

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

  • Децентрализация — вся система функционирует без какого-либо главного модуля;
  • Простота — минимум компонентов и лёгкость подключения;
  • Дешевизна — себестоимость устройства легко уложить в 100 рублей.

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

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

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

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

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

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

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

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

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

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

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

Софт для Windows

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

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

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

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

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

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

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

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

Планшет

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

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

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

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

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

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

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

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

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

Выключатель света

Ничего особенного, просто включает и выключает лампы на люстре.

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

Контроллер геркона с пищалкой

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

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

ДУ-приёмник и ДУ-передатчик

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

Датчики движения

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

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

Дверной замок и кодовая панель

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

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

Датчики температуры и освещения

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

Открыватель окна

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

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

Дисплей в коридоре

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

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

Домофон
Мышиные клетки

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

Видеокамеры

В комнате стоят четыре IP-камеры с механизмами поворота.

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

Заключение

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

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

Одним из наиболее важных и сложных вопросов при запуске системы автоматизации (умного дома) является процесс первоначальной конфигурации системы и её отладки. Сложность заключается в том, что необходимо написать значительную часть в текстовом редакторе. При этом разработчик остаётся практически один на один с задачей, т.к. почти не существует средств автоматизации для данного этапа. В то же время система умного дома сложная и многоуровневая по своей структуре, что также усложняет процесс, т.к. необходимо учесть множество факторов одновременно. Отсутствие подобного инструментария стоит на пути массового внедрения систем умного дома у большинства пользователей, т.к. порог входа в данном случае достаточно высок. Решением в данном случае является специализированная среда разработки, которая позволяет упростить некоторые из типовых задач.
openHAB значительно отличается от большинства , тем, что предоставляет собственную среду разработки, построенную на базе Eclipse. Первоначально IDE называлась openHAB Designer , она доступна на стандартной странице загрузки openHAB. Важно отметить, что она поддерживает конфигурацию только для openHAB первой версии. Для более новой второй версии (в настоящий момент в статусе беты) был разработан отдельный проект — Eclipse SmartHome Designer , которая также построена на базе Eclipse, но теперь поддерживается отдельным сообществом (частью самого Eclipse) и не совместима с openHAB v.1. Мы будем рассматривать версию 2, т.к. она более функциональна и в целом перспективна.

Процесс установки самого openHAB не вызывает вопросов. Достаточно скачать архивы с официальной страницы загрузки и распаковать их. Отмечу, что для Linux и MacOS систем можно произвести установку из репозитариев . Т.к. openHAB работает на Java , то требуется, чтобы он был установлен версии 1.8. В большинстве систем он также уже установлен, но при необходимости его, можно скачать . Стоит отметить такую составляющую системы, как — в общем смысле это библиотеки описывающие те или иные ещё компоненты. Если будете подключать, что-то специфическое, то придётся установить и их. Однако это нужно лишь в редких случаях, практически всё работает из коробки.

Как мы видим на рисунке, во второй версии openHAB доступно 4 интерфейса. Наиболее простым и минималистичным является Basic UI , его мы и будем рассматривать в дальнейшем. Classic UI — дизайн в стиле старого iOS, доставшийся от первой версии openHAB. Paper UI и Rest API нужны для упрощения конфигурации системы. Достаточно кликнуть по тому или иному интерфейсу для запуска. Конфигурация системы не привязывается к какому-то отдельному интерфейсу. В дальнейшем можно напрямую использовать следующую ссылку http://host_ip:8080/basicui/app .

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

Продемонстрируем работу наглядно, изменяя положение переключателя.


Включено
Выключено

В данной статье мы показали основные моменты по установке openHAB и среды разработки для него, настройке первого проекта в ней и написании пары простых правил.

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

Виды сервера

Управление умного дома осуществляется с сервера. Он может быть централизованным (стационарным) и децентрализованным (может работать удаленно).

Основные требования к серверу:

  • Стабильная работа.
  • Обязательное резервирования данных.
  • Контроль версий ПО.
  • Возможность обновления и доработки функционала.
  • Быстрая наладка в случае сбоя.

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

Сервер и web-сервер умного дома среднего объекта

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

Платформа Raspberry Pi 2 для построения веб-сервера умного дома

Web сервер для умного дома — это микро, планшетный компьютер или смартфон. Платформой для него может быть любое устройство с большим объёмом оперативной памяти (Raspberry Pi 2 или Raspberry Pi 3, AC500-eco, Arduino), мощным процессором и возможностью выхода в сеть Интернет. Web сервер в составе системы умный дом обеспечивает визуализацию управления через браузер.

Веб сервер для умного дома работает по простому принципу. Мобильное устройство выступает в качестве основного ядра, дистанционно отправляющего командные сигналы. Программное обеспечение, которое можно купить или прописать самостоятельно, превращает Android, Linux или Windows устройства в диспетчерскую станцию, взаимодействующую с контроллерами по wifi. Преимущества блока web умный дом в том, что можно не только управлять системами в доме, но и производить любые операции извне. Также возможна настройка на расстоянии и хранение данных на облаке.

Интерфейс управления умным домом

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

Интерфейс умного дома создается для каждого пользователя индивидуально

В современной системе умный дом web интерфейс делают модульной архитектуры, построен на PHP, CSS и JavaScript. ПО прописано в плагинах UI как html или css, расположенных в ресурсах DLL. Их можно добавлять или менять по своему усмотрению. Примерная структура интерфейса выглядит так:

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

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

Как сделать сервер для умного дома

Самостоятельно сделать сервер достаточно просто. В корпус неиспользуемого компьютера (желательно брать модель от 2006 года выпуска) монтируется в порядке очередности:

  • блок электропитания;
  • кулер с пониженным производством шума;
  • материнская плата с современным процессором;
  • оперативная память, соответствующая требованиям процессора;
  • несколько жестких дисков (желательно NAS-систему) и контроллер sata;
  • сетевая карта с поддержкой host режима;
  • модуль wifi.

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

Самостоятельная сборка сервера для умного дома под названием AVRobot

Для того, чтобы сделать веб сервер для умного дома, достаточно установить в ПК или смартфон соответствующее программное обеспечение, взаимодействующее с управляемыми системами (датчиками, отвечающими за работу климат контроля, включения света и т. д.).

Программа Умный дом на ПК

2.9 (57.78%) 9 votes

Что такое ПО для Умного дома?

Программа «Умный дом» - комплекс программных утилит по управлению:

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

Система «Умный дом»

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

Производители

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

  • MajorDoMo . Его программа для компьютера является бесплатной и позволяет полноценно управлять всей автоматикой в жилье и мгновенно отображать текущее состояние комплекса. Разработчики ПО утверждают, что их программа «Умный дом» не имеет высоких требований к памяти, типу видеокарты и другим техническим характеристикам настольного ПК. MajorDoMo устанавливается на операционную систему Linux или Windows. Чтобы запустить ее, после скачивания установочного файла требуется его запустить (путь для установки не меняйте, иначе придется в ручном режиме изменить путь для каждого файла MajorDoMo). В MajorDoMo ведется контроль над электроприборами, сигнализацией, освещением и температурой;

Интерфейс программного обеспечения MajorDoMo

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

  • «Умный дом 1.0» . На сайтах в ее описании сказано, что утилита управляет «умным домом» или офисом, а вся поступающая информация зашифровывается. Разработано оно было в 2008 году и до сих пор используется ввиду простоты интерфейса. Установка такой утилиты на ПК предусматривает ежедневник, который имеет голосовые напоминания, список заданий, пульт с дистанционным управлением для электроприборов, автоответчик для телефона или факса. Предоставляется доступ к электронной почте на сервере;

Системы контроля Умный дом

  • DIVISION Constructor . Этот редактор создает сценарии (управление работой телевизора, кондиционера или ночника), которые управляются посредством нажатия кнопки или работы датчика. После скачивания и создания схем функционирования директория проекта в автоматическом режиме создает файлы для сервера и клиента (владельца). В них имеются данные для управления «умным домом».


Загрузка...