Тема «Умный дом» уже у всех на слуху. Про неё говорят, в неё вкладывают, её развивают… По этой теме к таким гигантам как Siemens, General Electric и др. присоединились, казалось бы, не совсем профильные компании, такие как Microsoft, Google, Apple.
Единого стандарта по теме нет, равно как нет инструкции, мол, «делай так и вот так», поэтому теоретически построить свой умный дом может каждый и именно так, как ему захочется и потому эту тему я не смог пропустить и активно к ней подключился. Не скажу, что с умными домами я собаку съел… нет, скорее так, понадкусывал, но тем не менее, на основе свое опыта и своих наблюдений попробую выложить развёрнутый… ммм… How-To? Нет, не потянет. Обзор? Тоже не то… Скорее это будет напутствие или некий набор советов.
Театр начинается с вешалки, а я начну с того, что сразу расставлю все точки над «И», чтобы у читателей не возникало в процессе чтения необоснованного негатива или просто какого-то недопонимания.
Самое главное — это то, что статья рассчитана на людей, которые толком ещё не поняли, нужен ли им вообще этот самый «Умный дом» и нужно ли влезать в эту тему?
Теперь термин.
Будем честны, «Умный дом» — это не только такая система с искусственным интеллектом, которая разговаривает с Вами по утрам в ванной (пока вы бреетесь) и готовит Вам ужин пока вы едете домой. Не нужно путать систему с женой.
Умный дом — это любая система автоматизации/автоматики (или комплекс систем автоматизации/автоматики), которая хоть как-то, хоть на мельчайшую долю, но облегчает Ваш быт. Не важно что это: автоматическое выключение света в туалете после выхода оттуда человека и закрытия двери, или система, которая сама поливает домашние цветы, кормит любимую кошку и перекрывает протекающую трубу водоснабжения, если вы задержались на работе допоздна. Если в Вашем доме что-то срабатывает на основе какого-то алгоритма, значит это уже можно назвать системой «Умный дом», только с ограниченным функционалом.
Так же «Умный дом» — это не только особняк, напичканный электроникой, но и квартира, в которой работает Ваша система автоматизации и/или управления, т.е. «Умная квартира» — это тоже «Умный дом» и дальше по тексту мы будем пользоваться именно этим термином.
Вообще излишнее занудство человеку ни к чему, а вдаваться в полемику по вопросу насколько умным оказался «Умный дом», который сделал студент Коля — я считаю, неуважение труда того самого Коли. Он это сделал? Оно работает и чем-то управляет? Великолепно, молодец! Пусть дальше растёт над собой.
Возвращаемся к теме.
Мы хотим построить наш «Умный дом», с чего начать? С покупки, строительства? Нет, в этом деле, как и во всех инженерных задачах, начинать нужно с бумаги, а точнее — с проекта. Будет ли это жеванная бумажка с понятными только Вам схемами и чертежами или это будет что-то нарисованное в *CAD… главное, чтобы было понятно хотя бы Вам что же там изображено.
Не бойтесь описывать «далёкие планы», записывайте и продумывайте всё, даже то, что сможете сделать в очень далёкой перспективе. Лучше всё продумать сейчас ибо потом будет уже поздно. Это опыт оплаченный кровью многих инженеров, наступивших на многочисленные грабли.
На что следует обратить внимание?
1. Пользователи
Подумайте, как с вводимой вами системой будут обращаться пользователи, т.е. жильцы Вашего дома или члены Вашей семьи. Смогут ли этим пользоваться не подкованные в техническом плане люди (старики, дети или жена — не важно кто именно). Сценарий типа: «Дорогая, свет в туалете сейчас включиться, сейчас я только прошивку в Ардуину долью.» не подходит. Представьте, что Вы сдаёте свою систему богатому «быдловатому» бандиту, который видя Ваши выключатели со светодиодной подсветкой скажет Вам: «Эта… слыш, а чо эта за хрень? Куда тут чо жать?«. То, что очевидно Вам может быть абсолютно не понятно остальным.
2. Технология
Проводная или беспроводная. Если проводная, значит нужно строить планы прокладки всех необходимых кабелей (и лучше с большим запасом). Где штробить стены, где размещать розетки и элементы автоматизации — всё должно быть на схеме. Если система беспроводная, то продумайте где будут стоять передатчики/приёмники, где будут размещены повторители сигналов.
Сейчас Вы это помните, через месяц, когда информации будет очень много, в голове будет каша и что-то будет забываться.
3. Исполнитель
Кто будет всё это делать? Вы сами или нанятая специализирующаяся по теме фирма? Самостоятельно будет дешевле, но потребуется от Вас глубокого погружения в вопрос. Мы всё же будем полагаться на самостоятельное развёртывание, ведь категория статьи «Сделай сам», не так ли?
4. Автономность
Продумывая функционал и возможности умного дома всегда рассчитывайте на то, что в доме не будет Интернета. Конечно, многие умные дядьки возразят мне, мол, нужно продумывать возможность сопряжения с чем-то во внешнем мире… продумывайте, закладывайте, ни кто не спорит, но Ваш умный дом должен работать исправно в режиме полной автономности/изоляции. Человеку, живущему в мегаполисе, возможно будет трудно понять, как так, чтоб совсем не было Интернета… GPRS, ADSL, хоть что-то же должно быть резервное? Нет, нет и ещё раз нет! Ничего может и не быть, но работать должно
Вот пример:
Вы соорудили забавную систему: говорите «Нафаня, включи мультиварку/свет в туалете» и система выключает мультиварку или свет в туалете, попутно произнося «Включаю». Но вдруг из-за злобных хакеров Аль-Каеды сеть Вашего провайдера отвались, а за ней посыпалась и сеть Вашего мобильного оператора «Рупор», который обеспечивает Вас резервным LTE каналом. Естественно Google TTS, в основе которого и лежала Ваша система голосового управления, отвалился и умный дом в мгновение ока превратился в немого тупицу, который не может ничего включить. Сделайте возможность ручного управления, а ещё лучше, сделайте систему так, чтобы она могла, например, зачитывать вслух погоду без голосового сервиса Google. Сложно, но можно. Никто не говорил, что развернуть «Умный дом» — это как MS Office установить.
Второй пример:
Вы сделали управление умным домом через приложение на Android, но после описанной выше злобной атаки хакеров ваш смартфон не смог обратиться на облачный сервис и дать команду умному дому выключить забытый утюг. Напишите своё приложение, которое сможет работать удалённо через 2G-сеть мобильного оператора или по Wi-Fi, если вы находитесь в зоне покрытия Вашей домашней точки доступа.
5. Следующий момент, который нужно помнить при проектировании, вытекает из предыдущего: «Ядро» Вашей системы автоматизации.
В Вашем доме может быть роутер (ADSL, LTE или ещё какой), свитч или ещё какое-то сетевое коммутирующее устройство, но умным домом должно управлять «ядро» — отдельное и самостоятельное устройство. Ни в коем случае не объединяйте управление сетевым трафиком и управлением домом в одной железке. Сейчас много роутеров, на которые можно установить прошивки с миниатюрной копией Linux, а многие знакомящиеся с этой темой люди пытаются на такие роутеры навешать всё что в голову приходит. Лично я люблю такие роутеры, в которых можно подстроить более точно всё то, что мне нужно, но я не считаю верным установку средств управления на устройство, изначально не рассчитанное на это.
6. Размещение ядра
Под всю эту котовасию с роутером, свитчем, ядром системы управления, системам резервного питания и т.п. нужно выделить отдельное место: шкаф, чулан, закрытая ниша/антресоль. Что угодно, где есть вентиляция (оборудование будет греться и нужно подумать об охлаждении) и где это не будет мешаться/попадать на глаза. Ваша система не должна портить общего вида жилья и вносить негативных изменений в домашний уют.
Если у Вас есть подвал, то лучше Ваш «центр управления полётами» развернуть там.
7. Расходы
Возможно это нужно было вставить где-то ближе к началу, но если предыдущие пункты до конца не проработаны, то до расходов дело может и не дойти.
Самое главное что нужно знать, это то, что «Умный дом» — чертовски дорогая затея. Вы можете делать что-то самостоятельно (травить платы, программировать микроконтроллеры), но это только уменьшит Ваши расходы, а не исключит их совсем.
Следующее по важности, что в этом пункте нужно учесть — дубликация. Закупку всякого оборудования и исполнителей закладывайте в двойном размере и всегда округляйте в бОльшую сторону. В Вашем доме на каждого исполнителя (выключатели, датчики и т.п.) должен лежать в загашнике дублёр (если, конечно, обслуживанием Вашего дома не занимается сторонняя организация). Не рассчитывайте на то, что если что-то сломается, то Вы поедете в магазин и купите.
Пример:
Скакнуло напряжение. Защита хоть и сработала, но часть встроенных выключателей света сгорело, я Вы вчера заболели и лежите дома с температурой 39,2 градуса. Допустим, что Вы мужчина мужественный (вот ведь каламбур получился), и, наплевав на своё здоровье, решили подняться с постели и заменить все выключатели самостоятельно, но… чем? Дублёром.
Решили перед входом разместить камеру? Закупайте две. Прикинули, что по дому Вам нужно 12 «умных» выключателей? Закупайте 24. Думаете не бывает так, что вылетят сразу все 12? Бывает, к сожалению и самое первое, что у Вас должно быть продублировано — ядро системы.
Итог
Я описал ничтожно малую часть начала такого большого и интересного для большинства «технарей» проекта, как «Умный дом». Эта тема затрагивает почти все сферы в IT: сети, программирование, администрирование, автоматизация, электрика и электроника… и от этого она является темой сложной, требующей особого подхода. Это видно из того, что я написал выше, ну а если не видно, значит писатель во мне так и не созрел.
Запихать весь текст в одну статью никак не получится, я и так достаточно насокращал, потому будет, как минимум, ещё одна часть материала, которая, в принципе, будет содержать в себе советы/рекомендации по выбору программной и аппаратной части. Звучит немного странно, мол, такое разнообразие технологий, какие тут могут быть советы? Тем не менее, советы и рекомендации есть даже в такой ситуации.
Ссылка на вторую часть (когда она будет готова) вставлю в конце первой, чтобы было проще искать.
Спасибо всем за внимание, и тем, кто дочитал все это до конца.
Продолжение: Умный дом (Самое начало) — ч.2
habr.com
Хочу поделиться своим опытом («тестовый проект»).
Постройка собственного дома (особенно, если еще и своими силами) — крайне объемный кусок информации, поэтому я свое повествование буду вести больше про ИТ-системы (мы же все-таки сейчас на Хабре, а не на ФХ, хотя там тема тоже есть).
Начались долгие и кропотливые поиски подходящего участка (это вообще отдельная тема — столько нюансов), но «кто ищет, тот всегда найдет». Нашли (25 соток, ЛПХ, 3 фазы (15кВт)). Купили.
И вот тут началось…
Купить и оставить участок «как есть» — это не про нас. Начали его осваивать потихоньку — удалили лишние деревья, организовали въезд, построили забор (все своими силами, денег-то не осталось после покупки участка)…
Сразу было понятно, чтобы строить дом — нужно продать таунхаус. Процесс продажи — очень небыстрый (загородная недвижимость — это очень сложно).
Чтобы было «не скучно» решили построить небольшой гостевой домик, который в дальнейшем можно было бы использовать вместо съемной квартиры на время строительства основного дома и после постройки дома как «кабинет вне дома со всеми удобствами» (ну и как гостевой дом тоже, конечно:)). Заодно на нем опробовать технологии строительства и сделать «тестовый» умный дом.
Выбор технологии строительства был сделан на основании двух гипотез: «быстро» и «дешево».
Постулат «быстро» — да, правда (при условии достаточного финансирования), а вот «дешево» — совсем не оправдался («хорошо дешево не бывает» — если все делать правильно по технологии и «для себя», то получается совсем недешево).
Сегодня домик выглядит вот так:
Цоколь еще не доделали — вот снег растает и все подсохнет, тогда и займемся им.
Кратко про инженерные системы домика:
Если интресует сам процесс стройки — вот моя тема на ФХ.
По своему (уже состоявшемуся) опыту — продумывайте все свои системы на несколько итераций вперед, чтобы не забыть сделать все нужные «закладки» («гильзы» для ввода кабелей, продумывайте где будет стоять различное оборудование и сколько его будет; прикидывыйте, как пройдут трассы и т.п. — это потом существенно облегчит жизнь, когда дело дойдет до инженерных систем). Подумать о «плане Б» — тоже не помешает (лучше иметь 1-2 запасных варианта, чтобы в случае чего можно было оперативно переиграть решение).
Маленький (тестовый) домик позволил реализовать и опробовать тот подход, который сложился в голове за последние 6-8 лет жизни в таунхаусе (где застройщик фактически все инженерные системы сделал за меня, и это накладывало определенные ограничения на систему «умного дома» (УД), которую я медленно, но верно испытывал на своей «прекрасной половине»):
— Перестань издеваться надо мной: я не знаю, как пользоваться выключателями — они разные на разных этажах — тут надо нажать, а тут — прислонить палец.Поскольку тут у меня уже не было никаких ограничений (в виде застройщика) — все системы делались так, как считал необходимым.
— Если свет еще раз ночью зажжется, я вырву что-нибудь с корнем!
— Ты меняешь выключатели быстрее, чем я успеваю к ним привыкнуть!
— Зачем нам голосовое управление? Я этим пользоваться не буду!
В результате вся электрика была сделана слегка нетрадиционным образом: в доме нет ни одного «классического» выключателя и вся проводка сделана «звездой» с центром в электрическом щитке.
Выглядит это вот таким образом:
Кровь, кишки…Щиток — «маленький», всего-то на установку 120 стандартных модулей (и это для домика, общая площадь которого — около 30м2).Но после установки всего необходимого оборудования он уже совсем не кажется избыточным по объему:
Конечно, не все нагрузки требуется коммутировать через управляемые модули. Часть оборудования идет через обычные «автоматы» (холодильник, плита, «серверная» (ага, мы же не будем «стрелять себе в ногу»), стиральная машина и т.п.)
Пока шла стройка и занимались отделкой — с электрического ящика снял дверцу и банально пальцем тыкал в нужную кнопочку чтобы включить ту или иную цепь.
Вообще, если честно, то я несколько излишне усложнил систему — сейчас, после нескольких месяцев эксплуатации, вижу, что можно было сделать чуть-чуть проще (некоторых потребителей, которых я разделил для возможности раздельного управления — объединить в группы), но в целом — подход себя полностью оправдал и позволил решить все возникающие задачи.
Когда уже почти все было готово — дома начала разворачиваться настоящая ИТ-инфраструктура:
А вот тут уже начинается «ум» дома.
Все перечислять — будет очень долго, но суть везде одна и та же — система «сама» обнаруживает и реагирует на какие-то события/параметры без участия человека. Приведу некоторые очевидные (и не очень) сценарии, которые подверглись автоматизации:
Кто-то может сказать, ну и зачем тут городить «умный дом» — достаточно накупить в леруа мерлен (оби, кодин терра, к-раута — нужное подчеркнуть) датчиков движения, термостатов и т.п. — и решить те же задачи (пусть и не так изящно). И в чем-то будет прав, но если делать по-умному, то возможно «двойное» использование одних и тех же вещей. К примеру, датчик движения в прихожей можеть быть «активатором» ночника, когда хозяева дома и «датчиком движения» для охранной системы (когда хозяев нет). Да и «аппетит приходит во время еды» — я уверен, что еще далеко не все возможные сценарии выявлены и автоматизированы.
Кстати, «прекрасная половина» теперь является активным «паровозом» в процессах автоматизации, причем, уже в формулировках:
— А почему у нас до сих пор автоматически не… (далее следует словесное описание какого-то сценария) ?
И происходит это потому, что свет можно включить следующими способами:
Естественно, все работает как локально (внутри дома), так и удаленно (главное, чтобы интернет был).
Google Assistant и Amazon Alexa — на текущий момент не владеют «великим и могучим», но вот со стороны Google ситуация, думаю, скоро изменится — в «бета-режиме» колонка уже довольно сносно распознавала русский и говорила на нем, правда, на русском не работало управление умным домом, но это наверняка временные трудности.
Так эту ситуацию я оставить не мог.
Придумалось следующее решение: у Synology в системе видеонаблюдения не так давно появилась возможность использовать запросы во «внешние» системы.
Настроил простое правило «если потеряно соединение с целевой камерой — отправить запрос в систему умного дома, чтобы последний перезапустил камеру по питанию» (банально передернул питание PoE-инжектора с помощью «умной розетки»).
Вуаля! Работает! Регулярную самостоятельную перезагрузку камеры — заблокировал за ненадобностью.
Правильнее было бы конечно…… поменять PoE-инжектор на нормальный PoE-коммутатор и там задать правила, по которому запустить «Power Cycle» для конкретного порта, но это будет позже…
В этой задаче уже «умный дом» (на основании geo-данных) определяет, есть ли кто из домочадцев «поблизости» и если это так — инициирует переход системы видеонаблюдения в «Home Mode», при котором часть камер отключается.
К примеру, в какой-то момент в домике обнаружилась одна неприятная вещь — низ окон начинал «потеть», конденсат обнаружился и на торце входной двери (обильный конденсат). Стали искать причину — поиск по форумам, применение каких-то превентивных мер — не давали результата. А оказалось все просто — достаточно было глянуть на показания датчика влажности в комнате — влажность в какой-то момент повысилась процентов на 10-15 от обычного состояния. С новыми данными решение искать стало проще — на ФХ в теме про вентиляцию предположили, что это последствия наличия «перетекания» воздуха внутри блока рекуператора, которое приводило к превышению «приточки» над «вытяжкой». Другая возможная причина этого — засорившийся фильтр внутри системы вентиляции.
Оказалось, что это именно так: замена фильтров и проклейка пары критичных мест уплотнительной лентой в блоке рекуператора полностью решили нашу проблему — конденсат везде пропал (и влажность вернулась к обычным значениям).
Так же интересно смотреть на реакцию системы при изменении параметров автоматизации: например, как скажется изменение значения термостата в контуре теплого пола на его электрическое потребление?
Но, к сожалению, на текущий момент времени на анализ практически нет, но данные копятся…
Если честно, то уже хочется какие-то вот такие вещи отдать на откуп ИИ 😉 — пусть анализирует и подсказывает наиболее оптимальные значения.
Жаль, что пока это только из области фантастики.
Для меня в «умном доме» важны следующие вещи:
Для меня «умный дом» — это когда находится какая-то проблемная область в обычной домашней жизни, для нее делается какое-то решение, которое начинает работать без участия человека и позволяет забыть эту проблемную область как минимум надолго, а в идеале — навсегда.мое мнение не поменялась. Принцип остался прежним, просто системы стали более сложными и интересными, аппаратное обеспечение поменялось (несколько раз), сфера влияния и зона ответственности «умного дома» увеличились.
P.S. а таунхаус мы продали и готовимся к стройке основного дома…
habr.com
Выбор был сделан на 99% в сторону проводных устройств, плюс все устройства должны быть максимально бюджетные. Изначально планировал делать все на микроконтроллерах, но узнав о существовании Arduino выбор пал именно на нее, т.к. упрощалось изготовление конечных устройств, не нужно было изготавливать платы самостоятельно.
На этапе ремонта была проложена витая пара по всем возможным направлениям — освещение, окна, двери, радиаторы, водосчетчики, теплосчетчики, электросчетчик, домофон, телевизор, компьютер, проектор, кондиционер, подъездный щиток, датчики движения, балкон, ко всем выключателям и розеткам…
Была переделана силовая проводка. Я отказался от распредкоробок, и вся проводка от каждой люстры, выключателя, розетки стянуты вместо установки электрощита. Дополнительно силовая проводка протянута к каждому окну, для питания контроллеров и питания электроприводов рулонных штор. Всего на двухкомнатную квартиру ушло около 1 километра различных проводов.
В каждом окне стоит комнатный контроллер построенный на Arduino UNO + Ethernet Shield W5100 каждый из них собирает следующую информацию:
Контроллер в оконной рамеЧасть вторая — Счетчик посетителей ванной комнаты
habr.com
Если пересказать коротко, то меня уже давно заинтересовала возможность построения у себя умного дома. Нынче это модный тренд, но раньше это было настоящей темой для отпетых гиков.
Расскажу что есть у меня сейчас из оборудования:
Вот так симпатично это выглядит в коробках (заранее извиняюсь за качество, сделано в процессе установки на мобильный телефон без всяких заморочек с фоном, заваленным горизонтом и т.п.):
Так выглядит донгл для передачи команд силовым блокам:
А вот так для приема:
Да-да! Именно для приема команд! Это та недостающая часть Noolite, которой лично мне не хватало для того, чтобы использовать эти устройства у себя. Информации об этом почему-то нигде, кроме официального сайта нет.
Почему он так важен? Если вы читали про Noolite раньше, то знаете, что силовые модули (то, что включает/выключает нагрузку) имеют только приемник сигналов, а передатчика нет. Это существенно ограничивало (лично для меня) применение такого оборудования в умном доме. Производитель решил проблему костылем оригинальным решением — выпустили отдельный приемник сигналов от самих передатчиков (радиовыключателей). Единственная проблема этого девайса — очень маленький радиус приема. Возможно тут накладывает свои ограничения сам радиовыключатель, т.к. у него достаточно слабая антенна, да и ставились они как правило на места бывших выключателей (чтобы скрыть дыры в стенах :)) — возможно, какие-то наводки.
Собственно, вот один из моментов процесса установки, взамен старого выключателя:
Как можно видеть, старые силовые провода закорачиваются в клеммнике, сверху ставится сам радиовыключатель.
Силовой блок в объектив телефона по каким-то причинам не попал 🙂 Результат его подключения:
Силовой блок в состоянии выключенной нагрузки приятно светит зеленым светодиодом. Ночью получается этакий дежурный свет.
Привязывается и отвязывается все очень просто и быстро, инструкция очень подробная и понятная. Единственное что не понравилось — это софт, идущий в коробке. Он явно написан на коленке, без всяких изысков и иногда плюется ошибками. Но мне он и не нужен — использовался только один раз, чтобы удостовериться в корректной работе купленных девайсов, почле чего был безжалостно выпилен.
Теперь можно поговорить об умной части дома. Железки — это хорошо и интересно, но должна быть и практическая часть. Расскажу пример своего утра.
Если сегодня не выходные и не праздники, то в 6.00 начинает разгораться ночник, установленный с моей стороны кровати — световой будильник.
Около 6.45 терминал умного дома (планшет на Андроиде, висящий рядом с кроватью) получает команду от головного сервера на включение будильника (да, я понимаю, что можно было бы просто включить будильник на планшете :)) — проигрывается приятный шум утреннего леса, под который я и продолжаю просыпаться.
Одновременно с этим включается свет в коридоре, на кухне, в ванной и туалете.
Когда я наконец выползаю в коридор датчики присутствия определяют мою сонную тушку и синтезированный голос гугло-женщины приветствует меня. Одновременно с этим умный дом открывает клапаны на подачу воды (есть у меня такая фобия — залить соседей).
После всяких туалетных процедур я заползаю в душ. Датчик присутствия в ванной определят что я уже тут и местный терминал спрашивает, хочу ли я узнать последние новости. Тут я волен ответить да или нет (принимаются видоизменненые ответы) — работает распознавание голоса от того же Гугла + нейронные сети Wit.AI.
(К слову сказать, пока голосовое общение в процессе разработки — говорить нужно четко и громко, принимается речь не всегда с первого раза, да и распознавание и реакция системы занимает некоторое время (от 2 до 5 секунд в среднем))
Дальше я выхожу из ванной, сам себе включаю чайник и наливаю чай (ага, недоработка :)). Если я задерживаюсь и система видит меня своими датчиками (присутствия + датчик на входной двери не отработал) — меня подгоняют голосовыми сообщениями.
Ухожу, закрываю дверь — свет везде автоматически выключается.
Это конкретно мой пример. Тут возможны нюансы — встанет жена, у меня отпуск и т.д. Но в целом сценарий для меня подходит в 90% случаев.
Немного о софте. Сама система умного дома реализована из трех компонентов. Это ядро системы, которое, собственно, всем и управляет. Веб-интерфейс на Play Framework 1.2.7, на котором в будущем будет реализовано челвеко-дружелюбное управление системами умного дома. И андроид-приложение, которое служит терминалом умного дома.
Софт опубликован на Github’e, конкретная реализация вышеописанного в нем пока отсутствует, т.к. много страшного кода, который я привожу в порядок, но в общем функции присутствуют.
Написана система на Java и на данный момент не имеет человеческо-удобного интерфейса, кроме как некоторое подобие REST’а. Сейчас система не готова для простого пользователя и находится в глобочайшей альфе. Некоторые функции, которые я использую у себя еще нет в общедоступном репозитарии, но это дело времени.
Основной целью данного топика является привлечение разработчиков-энтузиастов умного дома. Я этого не скрываю 🙂
Собственно, ссылка на репозитарий основного модуля (остальные лежат там же: github.com/Neuronix2/IRISv2)
Пожелания, конструктивная критика и вопросы приветствуются.
habr.com
Для начала приведу неполный список того, что умеет моя система (и примеры, для чего это используется):
Самой сложной задачей, на первый взгляд, казалось решение задачи: “Есть ли кто дома?”
Ведь если есть, но спят, то никакой датчик движения ничего не определит, а включать свет тогда при входе нежелательно, так же как отключать отопление. Долго я ломал над этим голову, начиная с вариантов подсчета входящих/выходящих и заканчивая определением всех перемещений по квартире (конечная точка — дверь, значит никого, кровать, значит спят).
Но как говориться, все гениальное — просто, обратил внимание на закономерность, вошедшую в привычку:
Архитектура системы
В системе есть следующие сущности:
Сенсоры делятся на пять групп:
min(abs(FRONTDOOR_KEY),
-FRONTDOOR_LATCH_KEY,
FRONTDOOR_LOCK_LOWER_KEY,
FRONTDOOR_LOCK_UPPER_KEY)
Триггеры умеют делать следующее:
Контролы делятся на три группы:
Разберем эту схему на примере упрощенного варианта управления теплым полом.
К примеру, у нас есть следующие задачи:
Изобразим схему взаимодействия на диаграмме:
Вот такая вот нехитрая архитектура позволяет задавать большинство необходимых мне действий. Есть, конечно, и более сложные ситуации. В таких случаях я просто пишу кастомный контрол. Например, для включения/выключения вентиляции нужна более сложная логика чем просто включить/выключить канальный вентилятор, нужно еще по определенным правилам заслонку перекрывать.
Стороние проекты
Вся моя система написана на Python и крутится на сервере под управлением Ubuntu. В качестве БД используется MySQL. Для подключение к 1-wire используется библиотека owpython.
Но разумеется, писать все самому смысла нет, чаще легче взять готовые решения.
Для видеонаблюдения я не стал изобретать велосипедов и воспользовался OpenSource системой ZoneMinder, тем более, что она имеет весьма неплохой API позволяющий, к примеру, включать/выключать запись по нужным мне правилам. Или наоборот, повесить свою обработку событий при появлении движения в охраняемой зоне. Так же она может отдавать изображение с камеры.
Пользовательский интерфейс
У системы есть три основных интерфейса управления:
Поскольку, во время написания Android приложения, я был увлечен сериалом Star Trek, то и тему оформления сделал под стиль терминалов из этой культовой ленты.
Терминал имеет главное окно, на котором отображается общее состояние системы:
Слева — общее состояние.
Посередине — план квартиры, с отображением состояния основных контролов и сенсоров
Вверху — общая для всего приложения информационная панель.
Справа — основные кнопки (выключить все, монитор уличных датчиков, настройки)
Окна для каждой из комнат. Собственно, в каждой комнате, где висит планшет, открыто окно именно этой комнаты и включение/выключение освещения осуществляется одним касанием по довольно большой кнопке, что совершенно не доставляет неудобств
Так же в каждой комнате можно посмотреть различную информацию по датчикам, например, график температуры
Я не дизайнер и не верстальщик фронтендер поэтому вебинтерфейс у меня простой, корявый и минималистский.
Верхние блоки — мониторинг
Слева — управление контролами и триггерами
В центре — видеонаблюдение
Справа — справочная информация не связанная непосредственно с «умным домом».
Изначально предполагалось в качестве основного интерфейса в местах обитания детей использовать классические выключатели на стенах, а там где взрослые, вместо выключателей монтировать Android планшеты, но жизнь, похоже, внесет свои коррективы. Так, оказалось, что детям гораздо интереснее по планшету тыкать, а жене больше по душе обычные кнопки.
UP:
Продолжение тут Умный дом, как я до такого докатился. Часть 3-я
habr.com
Фантастика? Под хабракатом я хочу поделиться своими успехами в построении подобной системы у себя дома.
Небольшой экскурс в том, что сейчас называют «умный дом». Вот что скажет нам википедия:
«У́мный дом (англ. digital home) — жилой автоматизированный дом современного типа, организованный для удобства проживания людей при помощи высокотехнологичных устройств. Под «умным домом» следует понимать систему, которая должна уметь распознавать конкретные ситуации, происходящие в здании, и соответствующим образом на них реагировать: одна из систем может управлять поведением других по заранее выработанным алгоритмам. Основной особенностью интеллектуального здания является объединение отдельных подсистем в единый управляемый комплекс.
Важной особенностью и свойством „Умного дома“ отличающим его от других способов организации жизненного пространства является то, что это наиболее прогрессивная концепция взаимодействия человека с жилым пространством, когда человек одной командой задает желаемую обстановку, а уже автоматика в соответствии с внешними и внутренними условиями задает и отслеживает режимы работы всех инженерных систем и электроприборов.
В этом случае исключается необходимость пользоваться несколькими пультами при просмотре ТВ, десятками выключателей при управлении освещением, отдельными блоками при управлении вентиляционными и отопительными системами, системами видеонаблюдения и сигнализации, воротами и прочим. В доме оборудованном системой „Умный дом“ достаточно одним нажатием на настенной клавише (или пульте ДУ, сенсорной панели и т. д.) выбрать один из сценариев. Дом сам настроит работу всех систем в соответствии с Вашим пожеланием, временем суток, Вашим положением в доме, погодой, внешней освещённостью и т. д. для обеспечения комфортного состояния внутри дома.»
В моем случае, я расскажу как организовать управление нагрузкой (розетки, лампы накаливания, etc) при помощи распознавания голосовых команд и озвучить все это неплохим русским голосом.
Для начала нам, конечно же, необходимо определиться с технологиями управления электропитанием устройств. На текущий момент таких имеется множество. Самая, пожалуй, простая, популярная и недорогая в реализации, это 1-wire от компании Maxim/Dallas. Технология 1-wire далеко не нова и известна уже около 10 лет. 1-wire широко применяется как в быту, так и в промышленных системах.
Дело все в том, что устройства с точки зрения организации обмена данными пассивные элементы цепи. Компоненты 1-wire не могут без специального запроса посылать в сеть данные. Таким образом устройства не могут общаться друг с другом без «активного» ведущего. Элементы сети являются всегда ведомыми. Мастер в сети 1-wire только один. Именно он инициирует, контролирует и управляет работой сети и подключенных к сети устройств. В зависимости от используемого программного обеспечения, мастер 1-wire линии может по-разному работать со своими подопечными, но только он в конечном итоге может опросить состояние конкретного элемента, а также послать запроса на получение от этого элемента какой-либо информации. Например, если нам необходимо в режиме реального времени выводить значение температуры с множества датчиков, то мастер сети в цикле будет по очереди опрашивать эти датчики. Отвечать мастеру по сети может только одно устройство. В качестве мастера может выступать МК (микроконтроллер), который может при соответствующем ПО напрямую включаться в сеть 1-wire к одному из своих портов ввода-вывода. Мастером может выступать также ПК (персональный компьютер), использующий специальные элементы сопряжения, позволяющие соединять 1-wire с COM-портом или USB-портом компьютера, такие как DS9097 или DS9490.
Собственно, работа ПК в качестве контроллера нас и интересует. Специальный элемент сопряжения выглядит примерно так:
Как видно, это небольшой переходник, имеющий с одной стороны USB, с другой — разъем RJ-11 для подключения элементов сети 1-wire (элементы 1-wire мы можем вешать на стандартный телефонный кабель — дешево и сердито).
Другая технология под названием Х10 использует для передачи данных метод частотного уплотнения в обычной электросети квартиры.
Плюсы:
Минусы:
Х10 подойдет ленивым и тем, кто не желает по каким-то причинам тянуть дополнительные кабеля. Я попал в ту и другую категорию, поэтому мой выбор остановился на Х10 =)
Будем считать, что с технологией управления электропитанием мы определились.
В первую очередь — компьютер. Он будет ядром, головой нашей системы «умный дом». Именно к нему мы подключим управление электропитанием наших домашних устройств посредством мастера сети 1-wire или Х10, к нему же мы подключим и камеры видеонаблюдения. В моем случае, я выбрал обычные простые web-камеры среднего качества. Подключаться все будет через USB. Ограничение на длину кабеля в 5 м, обходилось мной в виде покупки длинных активных USB кабелей, где возможно, и связкой кабелей через USB-хабы с внешним питанием (возможно, кто-то предложит другое решение — буду рад услышать). У меня вышло в итоге 4 веб-камеры для всех помещений квартиры.
upd: Часть 2. Видеонаблюдение
habr.com
Лучше поздно, чем никогда. Я наконец понял свою ошибку, и теперь начну с того, с чего обычно начинаются все книги — с оглавления.
Структурное представление умного дома:
Туалет:
Тут тот же самый комнатный контроллер, плюс датчик протечки (прямо за контроллером), справа от аккумулятора плата его автоподзарядки, слева хитрая система противовесов, перекрывающая воду.
Клемника комнатного контроллера тут не видно, его закрывает стенка.
habr.com