ФОРУМ КУПИТЬ

Последние статьи

ВСЕ СТАТЬИ

Управление домом с iPad

29/09/2011 17:23:06

Возможно, данная статья устарела.
Более актуальная статья про интеграцию Apple HomeKit в общую систему Умного Дома.
Все новые статьи

Вводная часть, необязательная

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

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

Принципиальная схема Умного Дома. Для чайников

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

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

Управляемые элементы - это модули, которые включают свет, отопление, кондиционеры, которые опрашивают выключатели, это температурные и прочие датчики. Все эти устройства могут работать по разным технологиям: 1-wire, ZigBee, Ethernet, CAN и т.д. Это мышцы и нервы дома.

Интерфейсные устройства - это то, посредством чего человек общается с Умным Домом. Это язык и уши Умного Дома, с помощью которых он говорит и слушает пользователя - персональные компьютеры, ноутбуки, планшеты, телефоны, смартфоны. А при чем тут яблоко? Не знаю, осень...

Howto или краткое изложение Санта-Барбары

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

Работает это просто. Мозг дома - обычный персональный компьютер под управлением Linux. Все алгоритмы управления написаны на bash, php, python, perl - наиболее распространенных языках программирования. На Linux установлены всяческие пакеты: ZoneMinder, owfs, pywws, festival, heuy, icecast, и т.д. Вся информация стекается в MySQL-базу и затем отображается в Web-интерфейсе, который работает под управлением Apache. Подробнее можно прочитать в статье "Схема информационного обмена".

Web-интерфейс - это язык HTML, который поддерживается всеми современными устройствами.
Таким образом, мы просто берем первый попавшийся в руки гаджет и управляем домом.

iPad

Конечно, данные, расположенные в БД на сервере - это еще не Web-интерфейс. Его нужно сделать. Я разработал для своего Умного Дома интерфейс, который написан на PHP и использует jQuery/jQuery UI в качестве фреймворка. Подробно о создании подобного интерфейса я написал в статье "Разработка домашнего сайта". Последняя версия Web-интерфейса, которая также доступна в Демо-режиме, была адаптирована для работы на планшетных ПК и телефонах, но до сих пор я обращался к нему преимущественно с компьютеров.
Вообще у меня аллергия на яблоки, но я решил купить себе iPad, чтобы интегрировать его в общую систему Умного Дома. Как говориться, клин клином вышибают.
Как и ожидалось, Web-интерфейс управления прекрасно заработал в браузере Safari, встроенном в iPad

Управление домом с iPad. Web-интерфейс
Управлять домом с помощью iPad и Web-интерфейса, построенного на jQuery UI удобно

Прекрасно заработал. Ну, то, что пришлось специально для Safari слегка допилить таблицы стилей, которые, между прочим, работали в Firefox, IE, Opera и Chrom, это мелочи. Об этом мы говорить не будем. Зато теперь все в порядке. jQuery UI Tabs весьма комфортно позволяет переключаться между страницами. Компоновка и объем информации оптимальны для отображения и использования Web-интерфейса и его возможностей. Прекрасно выводится видео с камер наблюдения посредством ZoneMinder. Конечно, не обошлось и без проблем, которые, впрочем, были заведомо известны. Adobe Flash. Для вывода некоторых графиков, я использовал библиотеку Open Flash Chart. Мобильные устройства от Apple не поддерживают Flash. Выхода два - искать сторонний браузер с поддержкой Flash или применять для построения графиков HTML5. Использование HTML5, учитывая последние заявления Microsoft, в которых говорится, что гигант также планирует отказаться от использования Flash в "восьмерке", является вполне логичным и оправданным шагом. Будем подбирать библиотеку, коих, как оказалось, великое множество.

Управление отоплением с iPad
Графики можно рассмотреть поближе

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

Управление светом с iPad
Управление освещением дома с iPad

Использование  iPad в Умном Доме не ограничивается только лишь Web-интерфейсом. В своем доме я использую Asterisk в качестве программной АТС. iPad может выступать полноценным SIP-клиентом. Для этого необходимо лишь из AppStore установить бесплатное приложение VaxPhone. Теперь iPad становится еще и телефоном. Со стороны Asterisk настройка аккаунта в users.conf совершенно типовая.


Звоним с iPad на домашние и городские номера через Asterisk

Кстати, используя домашний Asterisk и SIP-клиент для iPad можно таким образом звонить на любые номера в зоне Wi-Fi или же через 3G, но используя при этом сотовую связь только для передачи Интернет-трафика.

GoogPlayerЦифровой Дом - не только управление инженерными системами, но и медиа-архив (фотографии, видео, музыка). Стандартное ПО iPad проигрывает MP3 и H.264, но не умеет работать как SAMBA или DLNA клиент и не поддерживает многочисленные видеостандарты и контейнеры (AVI, DivX, MKV и т.д.). Конвертация видео в H.264/MP4, использование iTunes под Windows как медиатеку и синхронизация тяжелого контента с и без того скромной памятью iPad не очень удобно. Но все это поправимо, если установить плеер стороннего разработчика. Медиаплееров для iPad великое множество, среди которых AirPlay, AVPlay, OPlayer, но мне нужен был такой, который полноценно работает с SAMBA-сервером на Linux (не все плееры работают с Linux!) и без задержек проигрывает HD видео до 720. Мне понравился GoodPlayer стоимостью $2.99. Этот плеер достаточно хорошо проигрывает HD (720) и  имеет поддержку SAMBA, CIFS, DLNA, UPnP, FTP, WebDAV.

iPad и Samba на Linux
Доступ с iPad к SAMBA-серверу на Linux

Конечно, Full HD iPad с GoodPlayer не потянул, но это и его задача. Справедливости ради надо сказать, что Full HD проигрывает далеко не каждый нетбук, где есть гораздо больше возможностей установить мощный графический процессор. Мой HP Pavilion dm1, пожалуй, один из немногих недорогих нетбуков, на которых без проблем можно смотреть фильмы в этом формате. В остальном GoodPlayer порадовал. Единственное, чего не хватает этой программе - просмотр JPEG.

AppStore или Web?

Нужно ли создавать специальное приложение iPad для управления Умным Домом? Ведь Web-интерфейс со своими возможностями в целом ничем не уступает специализированной программе, но работает на любой платформе Unix, iOS, MacOS, Windows и т.д. Этот вопрос для меня в данный момент открыт. Такие компании как INSTEON и Control4 выпустили свои приложения для мобильных гаджетов. Скорее, это дань моде, так как функционал этих приложений не вызывает восторга. Зачем в этом приложении медиаплеер мне не понятно. Управление отоплением? Я считаю, что эта та система, которая должна работать исключительно автоматически. Будильник, плейлисты... извините меня. Вот разве что дистанционное управление светом и электроприборами, но есть ли принципиальная разница - запустить специальное приложение или обычный браузер? Не секрет, что загрузить в iPad (нормальный) приложение можно только из AppStore, а значит оно должно быть проверено специалистами Apple. Кроме того, разработчику нужно заплатить $99 за такое, так сказать, право. И дело даже не в деньгах, а в том, что скорее всего приложение для Умного Дома будет привязано к какому-то конкретному оборудованию или даже к конкретной настройке этого оборудования и решать какую-то очень специфическую задачу, что вряд ли понравится "модераторам" из Apple и прочей публике. Можно написать приложение для себя, но очень сложно будет его предложить сообществу. В общем, эта тема для отдельной статьи и обсуждения.

Вместо ЗЫ

Когда я смотрю на прайсы фирм, предлагающих системы Умный Дом, мне смешно. Один только Touch Screen мониторчик с диагональю 7" с убогой графикой, с закрытым или полузакрытым интерфейсом/протоколом может стоить и $2000 и больше. А ведь намного проще купить самый дешевый планшет стоимость $200, чтобы получить универсальное устройство, способное и Домом управлять, и музыку играть и в Интернет ходить. При желании его даже можно вмонтировать в стену, как принято в "классике" Умных Домов. К счастью наиболее продвинутые производители вовремя спохватились и стали предлагать возможность управления своими системами из приложений для iOS и Android или через Web-интерфейс.

Автор: Andrey_B
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.



Добавить комментарий:

(необязательно, не отображается на сайте)


Сортировка комментариев: Последние сверху | Первые сверху

2014-07-31 17:26:13 | Денис
Андрей а сколько стоит весь этот умный дом (себестоимость материалов)


2012-02-06 16:56:55 | артем
в данный момент решаю очень похожую на вашу задачу. с той лишь поправкой, что внедряю систему не в доме,а в небольшой квартирке. не согласен с вами, будильник в умном доме - это вещь прекрасная. с утра плавно включается свет и по возрастающей громкости начинает играть музыка. И все это дело не выключается, пока датчики движения не зафиксируют мое прибывание на кухне.


2012-01-21 23:45:44 | Andrey_B
Спасибо, Игорь!
Как-нибудь обязательно обзаведусь таким чудом.


2012-01-21 12:11:11 | Umnii-dom
Здравствуйте, мы обошли проблему масштабирования на ipad-ных web-интерфейсах к умному дому. Т.е. случайным двойным кликом страница не увеличивается и также нам удалось сделать страницу полностью статичной на экране. Т.е. движением пальца на экране, страница не дергается судорожно вслед за пальцами. Для обратной связи хорошо себя показал AJAX. Кому интересно, могут запросить исходники - предоставляем бесплатно. Работает на ubuntu. Автору сайта большой РЕСПЕКТ и уважение от Казанских коллег.


2012-01-14 02:12:54 | Игорь
Уважаемый Андрей!Вам это,конечно,1000 раз говорили,но спасибо за проделанный труд и отличный сайт!Позвольте,может и я вам подкину одну идею для дальнейшего развития вашего дома (из-за чего я и стал интересоваться этой темой и пришел сюда). Это робот-пылесос. Случайно купили такой (б/у - 10000 руб.) - вещь просто шикарная, очень облегчает жизнь, и именно она послужила мотиватором дальнейшей автоматизации дома. Жаль,что пока нет дешевых контроллеров/датчиков,управляемых по wifi,тогда было бы без проводов все... Еще раз спасибо за сайт и удачи;)


2011-10-03 22:41:11 | Andrey_B
Али, совершенно с вами согласен. Вроде Xcode поставить несложно и даже $99 не жалко, только вот смысла не вижу, задачи подходящей нет. Ведь Web - это 100% устройств, а iOS - ну даже не треть... Но посмотрим.


2011-10-03 19:44:12 | Роман
Не знаю как на планшетнике, но на айфоне приложение закрывается если нет активности через 15 мин (кажется). Нужны костыли чтобы оно не завершилось.


2011-10-03 15:41:16 | Али
Думаю, что спец программа для iPad позволит только более быстро получить информацию о каком-то событии. Но вот это "более быстро" надо наверное разделить на две части. Первое - это скорость реакции интерфейса. То есть насколько быстро мы получаем информацию НЕПОСРЕДСТВЕННО РАБОТАЯ С ИНТЕРФЕЙСОМ. Включили лампочку в туалете. На интерфейсе она зажглась через 1-2 секунды... Критично ли это? Наверное нет. Второе - получение от системы экстренных сообщений. Но в этом варианте как я понимаю это не совсем задача программы-интерфейса, так как все таки большую часть времени iPad закрыт и никто не гарантирует что ваша программа не спит. Вэб-интерфейс и подавно бездействует. В случае экстренной ситуации сервер должен рассылать уведомления всеми доступными способами. И в случае iPad я думаю надо выбрать какой то готовый Messanger и слать на него. Хотя опять таки я не так хорошо знаю iOS и не могу сказать как себя ведут программы в спящем режиме... Есть ли гарантия, что сообщение на него придет вовремя.


2011-10-03 11:09:29 | Andrey_B
Про Qt, конечно, знаю. Для того, чтобы заработало приложение Qt нужно, чтобы на устройстве была установлена эта библиотека. Чтобы скомпилировать приложение, нужны dev-библиотеки Qt. Далеко не во всех Linux, Qt устанавливается по умолчанию. Таким образом в каждом конкретном случае нужно выполнить какие-то действия, чтобы получить доступ к интерфейсу управления домом. В этом смысле Web выгодно отличается, так как ничего, абсолютно ничего делать не нужно. Конечно, у Web меньше возможностей в плане визуализации, но с появлением новых стандартов и фреймворков Web-приложения, пожалуй, могут не уступать своим десктопным собратьям. Поэтому с моей точки зрения Web - основной вектор развития. Специализированные приложения и сервисы нужны, наверное, только в определенных случаях. Например, для iPad - PUSH-уведомления о каком событии.


2011-10-03 10:39:39 | Andrey_B
Роман, я думаю и до Android со временем доберемся. ;)
Sencha Touch видел. Хочется, чтобы интерфейс был удобен и работал на всех платформах. Не знаю возможно ли это в принципе. Вот Sencha Touch, к примеру, не работает в Firefox 7


2011-10-03 10:15:11 | Николай
А Вы не рассматривали qt - /qt.nokia.com/ ссылка на WIKI /ru.wikipedia.org/wiki/Qt
Ведь он позволяет писать ПО как для Windows так и для Linux. Есть примеры написания для iOS. Как результат получаем полноценное ПО которому не важно где будет запускаться - мобильник, КПК с Windows или телефон iPhone (правда с iOS есть определенные танцы с бубном).
Но то, что он поддерживает все необходимое для разработки начиная от работы с SQL и заканчивая OpenGL - несомненно огромный плюс.


2011-10-03 07:22:32 | Роман
Вопрос, почему не андроид? Я так же считаю, что на web интерфейсе лучше, это уже как стандарт (допиливать проще, поддерживать тоже и плюс кросплатформенность).
Кстати не рассматривали фреймворки для мобильных устройств? Например Sencha Touch или jmobile