Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Программное обеспечение для Linux

Домотика с GNU/Linux, или как послать e-mail лампочке. Часть 3

Оригинал: Home automation in GNU/Linux
Автор: Steven Goodwin
Дата: 3 июля 2008
Перевод: Александр Тарасов aka oioki
Дата перевода: 10 августа 2008

В предыдущих частях рассказывалось об аппаратной и программной основе "умного дома" и способах организации связи и аудио- и видеопроигрывания.

Веб-жизнь

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

Установить домашний сервер легко, ведь нам понадобится лишь веб-сервер Apache с поддержкой одного из "P" языков программирования (Perl, PHP, Python и, эээ, Ruby!). Этими средствами можно получить доступ к Google Calendar, управлять своим списком контактов и писать на домашней доске объявлений. Эти функции доступны в любом месте мира, и с каждого домашнего компьютера.

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

Помимо стандартной установки Apache, было бы очень полезно настроить динамическое обновление DNS так, чтобы можно было обращаться к домашнему серверу по имени, к примеру http://my.homelinux.net. Один из сайтов, предоставляющих такие услуги - это DynDNS. Естественно, хотелось бы, чтобы соединение с домашним сервером было защищено с помощью SSL, в интернете много материала на эту тему. Полезна гибкая настройка, когда внешний трафик шифруется, а локальный - нет. В любом случае, локальные соединения могут происходить только изнутри дома, т.е. взломавший такое соединение хакер уже имеет физический доступ к машине, а значит и холодильнику, и телевизору...

Источники данных

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

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

Программа передач

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

Для живущих в Великобритании я бы порекомендовал программу передач с сайта Bleb. Это замечательный сервис, раздающий подробные данные на следующую неделю в легко обрабатываемом XML-формате. Я настроил автоматическое создание программ передач путем поиска важных для меня ключевых слов в названиях и описаниях передач. Еще эти данные можно использовать в качестве исходных данных для модуля Minerva TV Guide, показанного на рисунке 7. Несомненно, существуют подобные источники и для других стран.


Рисунок 7: Моя личная программа передач

Единственный недостаток этого источника данных - отсутствие канала ITV. Похоже, что BDS (Broadcasting Data Services) решили играть жестко и пытаются помешать распространению программ передач. Очевидные решения - заплатить за лицензию или считывать программу напрямую с сайта ITV. Это удивительно, потому что сам ITV предоставляет программы передач других ТВ-станций!

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

Расписания поездов в реальном времени

Многие железнодорожные станции идут в ногу с 21 веком, предоставляя расписания поездов на своих веб-сайтах. Таким образом можно посылать HTML GET-запросы к их серверу, получая в ответ текущий статус поездов. Если подойти к программированию с умом, можно написать будильник, который бы указывал время подъема, основываясь на точности прибытия поезда. Грег МакКэррол может привести пример.

Погода

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

У меня есть интернет-соединение и RSS-лента Yahoo! Weather. Она ежедневно обновляется, поэтому мне остается лишь отдать простую команду

wget -q http://weather.yahooapis.com/forecastrss?p=UKXX0088 -O cache/weather.xml

и преобразовать полученный XML-файл в простое описание посредством таблицы стилей XSL. Параметр UKXX0088 означает мое физическое размещение, что позволяет получить прогноз погоды конкретно для меня. Этот результирующий текст отображается на моей веб-странице, и произносится (с помощью Festival) из колонок как часть будильника. Весь код находится в свободном доступе как часть пакета Minerva Home Automation suite, однако его легко написать и самому.

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

Аудио-CD

Возможно, кому-то это уже известно, но все же - проект FreeDB содержит списки треков нескольких миллионов аудио-CD. Эти данные тоже можно обернуть в красивый интерфейс. К примеру, веб-интерфейс для модуля CD-плеера позволяет проиграть трек, просто нажав на нем (см. рисунок 8), а не на номере трека. Аналогично, вместо скучного отображения "07", как было в 1980-х годах, можно отображать название трека на веб-страницу, в статусную строку Jabber, Twitter, Facebook и куда вашей душе угодно!


Рисунок 8: Воспроизведение CD через веб-интерфейс

Что дальше?

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

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

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

В интернете множество форумов, магазинов и веб-сайтов, связанных с домотикой. Большую долю знаний можно почерпнуть на сайте Minerva Home Automation. Итак, вперед и успешной вам домотики!



Средняя оценка 5 при 1 голосовавших