Создаём медиа-пульт из телефона для Linux'a


    На хабре мелькала уже статья о такой программке, как BluePad. Прочитав ещё тогда эту статью, я загорелся желанием управлять своей системой с телефона (благо, у всех нынешних телефонов есть bluetooth;)

    BluePad использовать у меня не получилось, ибо она рассчитана на более-менее не маленькие экраны. В связи с чем, в мой экранчик на Nokia 3110c она тупо не влазила… Поэтому, я начал искать дальше. И в в процессе поисков наткнулся на такую замечательную программу, как anyRemote. Именно о ней и пойдёт речь.

    Всё, что нам понадобится:
    1) Телефон с bluetooth
    2) Компьютер с Linux’ом на борту 
    3) Bluetooth адаптер для компа.


    1) Настраиваем bluetooth на компе.
    По идее, вполне достаточно для работы anyremote поставить себе bluez-utils (если ставить anyremote из репозиториев в Debian'e, всё, что нужно, само вытянется с зависимостями.) Раньше, многие советовали настраивать автозапрос пина для избавления от проблем, но как это не странно (баг/фича?), приложение на мобилке при подключении к компу ничего не спрашивает (исключение, если задать самой anyremote запрос пароля, но это уже другая история). Т.е. по сути, на этом настройка bluetooth на компьютере и закончена =)

    2) Ставим anyRemote.
    В Debian'e она есть в репозитории. Репозитории для остальных дистрибутивов и ссылки на скачивание можно найти на оф.сайте. Проблем с установкой надеюсь тоже ни у кого не возникнет.

    3) Выбираем скрипт управления.
    В комплекте с самой программой вам поставится ещё и куча готовых скриптов управления — cfg файлов. Каждый для своей задачи: управление amarok’ом (1.4 и 2), управление mplayer’ом, файловый менеджер, управление курсором и многое другое. Более того, на оф.сайте есть ещё вагон и маленькая тележка пользовательских скриптов… НО! anyRemote может работать одновременно только с одним конкретным скриптом.
    Но эта маленькая досадная неприятность исправляется наличием скрипта All-In-One, который пробегается по папке со скриптами и даёт возможность доступа до любого из них (точнее, до тех, в которых есть записи для работы с All-In-one, но таких довольно много среди готовых решений).
    По началу использования, я сам писал пару своих скриптов и переписывал готовые… Но теперь, когда руки перестали чесаться, вполне хватает функционала стандартных скриптов…
    Подробная документация на англ. по написанию скриптов доступна на оф.сайте проекта… Поэтому, если кому-то чего-то не хватает — вперёд и с песней писать свои скрипты, благо, это довольно просто;)

    4) Запускаем.
    Для запуска, нам необходимо указать, какой именно скрипт мы хотим запустить вместе с программой. Ежели ничего не указанно, программа ищет файл скрипта сначала ~/.anyremote.cfg, и если не находит то ./.anyremote.cfg
    Так же, можно с помощью флага -f указать путь до файла конфига. Что я всегда благополучно и делаю.
    Вторая полезная опция: -s, для указания типа подключения… В нашем случае, это -s bluetooth:19 (дефолтная строка для bluetooth'a).
    Третья вполне полезная опция: -password. При наличии этой опции, программа будет запрашивать пароль у java client'a и сравнивать его с указанным в файле ~/.anyRemote/password. Это довольно полезная опция, т.к. как я уже говорил выше, при попытке подключиться к компу java client’ом пин не запрашивается. (к сожалению, у меня с этой опцией подключиться не удалось, т.к. java client тупо вис при попытке подключиться =()
    Таким образом, запуск у меня происходит примерно следущей строкой:
    1. $anyremote -f ~/.anyRemote/All-In-One.cfg -s bluetooth:19
    Команда прописана в автозагрузке, поэтому, после того, как я её один раз давным давно прописал, я о ней больше и не вспоминаю…

    5) Скидываем java client на телефон.
    Взять его можно на оф.сайте. Есть с различными размерами иконок, поэтому, подобрать под свою мобилку — не проблема.

    6) Запускаем java client на телефоне.
    После запуска, всё, что нам нужно сделать — это запустить поиск нашего компьютера. Если поиск завершился удачно — выбираем в списке найденного наш компьютер, и жмём «Connect». Если же поиск ничего не дал, можно просто ввести свой адрес адаптера в виде btspp://00028892D175:19.

    7) Пользуемся!
    Вот и всё. Теперь, у нас полноценный пульт управления различным медиа-софтом и не только. По сути — можно сделать что угодно, с единственным ограничением — кол-во клавиш на телефоне и ваша фантазия при написании собственных скриптов =)

    P.S. Для любителей GUI — есть 2 фронтенда для anyRemote: kanyRemote и ganyRemote. Они позволяют выбирать и менять налету скрипты (сомнительное счастье, при наличии All-In-One), редактировать скрипты (тоже сомнительное удовольствие, ибо есть редакторы куда получше встроенного) и загружать java client'a на телефон (наверное единственное, что действительно может пригодиться, если лень самим кидать его на телефон.)

    P.P.S. Как я уже говорил, утилитка очень мощная. Помимо bluetooth она обладает возможностью управления через ИК, Wi-Fi и через HTTP. Поэтому, всё описанное выше — лишь малая часть её возможностей.

    P.P.P.S. Надеюсь, эта статья кому-нибудь поможет обрести счастье и возможность лёжа на диване переключать серии сериала или же включить музыку с улицы, дабы отомстить соседям за ремонт в 7 утра в воскресенье ;)
    Мне же, эта статья уже принесла счастье в виде приглашения на Хабр ( за что большое спасибо пользователю skobkin.
    Поделиться публикацией

    Комментарии 42

      0
      хороший вариант для «Не смартфонов» ибо для них такого софта полно
      жаль что «Linux only»…
        +1
        Под Windows подобных программ много например Salling Clicker, под Mac OS не знаю.
        Это возожность и для смартфонов тоже особенно если старая или умершая ос как у меня (UIQ3) и новых приложений нет.
        Спасибо автор я слышал об этой программе, все руки не доходили.
        –8
        «из обычного телефона для Linux'a»
        А что специально для линукса выпускают телефоны? И как? Он по ним разговаривает? *сарказм*
        Товарищ, поправьте заголовок чтобы он адекватно читался.
          +1
          Отчасти — да, отчасти нет =)
          1) schoolptor.habrahabr.ru/blog/30502/#comment_821435
          2) Ежели брать в рассчёт смартфоны — то для них есть куча других решений, которые не подойдут для «обычных» телефонов.

          Но всё же истена есть в ваших словах, поэтому подкорректировал… =)
        0
        Через какой профиль bluetooth общается программа?
        Делал для symbian нечто подобное. Работает через SERIAL PORT. Так и не получилось сделать работу через любые дрова windows.
        Хочется сделать универсальную программку для всех win и linux.
          0
          Точно не знаю, и на оф.сайте информации этой тоже не нашёл =(
          +3
          Скажите а для Android есть что нибудь подобное?
            0
            А для IPhone?
              0
              ХЗ, ибо андроида у меня пока нет…
              Но зачем, если там есть полноценный ssh? Это же удобнее, гибче и возможностей управления через него куда больше…
                0
                Лёжа на диване мне легче нажать на кнопочку чем писать команду для увеличения / уменьшения громкости, GUI как никак удобней.
                  0
                  Ну. если говорить именно о готовом лёгком решении, то да… SSH не совсем подходит. =)
                0
                0
                Отличная статья, давно мечтал о таком! За неимением bluetooth адаптера попробую настроить через HTTP, в таком случае можно будет управлять даже на огромном расстоянии.
                  +2
                  можно будет переключить канал за 1км и наблюдать в бинокль))
                    0
                    Да тут идей масса может быть. Включаешь колонки погромче, идешь в город и запускаешь mpd, соседи будут наслаждаться музыкой :D
                      0
                      Настроил соединение через Socket, все работает отлично :) Вспоминается цитата по этому поводу с баша.
                        +1
                        можно замок в дверях установить. И открывать с другого конца планеты его.
                        запускать в гости кого-нибудь, когда я не дома )
                  +3
                  Использую gmote для android, особенно нравится использовать его как тачпад :)
                    0
                    Крутая программа :)
                    Выполняет все свои функции на отлично, пускай через wifi а не bluetooth но не принципиально :)
                    0
                    Классно, а то мы все по старинке через IR-приемник и LIRC
                    А ведь можно вообще написать программку, которая будет по IP подключаться и управлять из любой точки мира!!! :-)
                      0
                      ssh?
                        0
                        Из readme:
                        The overall goal of this project is to provide remote control service on Linux
                        through Bluetooth, InfraRed, Wi-Fi or TCP/IP connection.

                        Так что все есть
                          0
                          А парой ссылок не угостите?.. Понять хочу, хотябы как детектировать сигнал с пульта.
                          0
                          в СЕ такая штука встроена. работает через HID профиль, конфиги есть и готовые и мона легко свой сделать.
                            +1
                            Это кстати по идее решение для любой ОС. Главное поддержка HID, блютус. И можно к другу придти домой и треки переключать. Кстати искал аналоги на java или Symbian — нету) Все производители лезут со своими клиентами…
                              0
                              кстати плюс в сторону СЕ, особенно с учетом того что в других «более продвинутых» трубках такого нет. жаль что не все решения у них были нацелены на потребителей (убогий дизайн, карточки МС, даже кнопки вызов\отбой не сразу сообразили как нужно делать)
                            0
                            2) Компьютер с Lunux’ом на борту? :) Исправьте, пожалуйста.
                              0
                              Спасибо, исправил.
                              0
                              включить музыку с улицы, дабы отомстить соседям за ремонт в 7 утра в воскресенье

                              А что вы делаете на улице в 7 утра в воскресенье?
                                0
                                Это соседи сволочи в 7 утра ремонт начинали… А мстить можно в любое удобное для вас время ;) :-D
                                0
                                Спасибо за статью, Артём ) Сейчас буду пробовать через wi-fi настроить, а то блютуза нет)
                                  0
                                  Есть кстати бот для Jabber, которому пишешь команду, он ее выполняет в консоли и выводит результат. Тоже может быть полезно.
                                    0
                                    Жаль адаптер bt забыл на прошлой работе, приходится извращаться, например при просмотре фильма в виде screen -S, мобильный ssh-клиент, screen -x. Вуаля, управляй. Главное не увлекаться, GPRS дорогой собака, а mplayer в консоль радостно выводит сжирая ненужные килобайты.
                                      0
                                      c нокиа 3110 заработало? а то в списке его нет anyremote.sourceforge.net/devices.html
                                        0
                                        Собственно, у меня NOKIA 3110с =) Работает прекрасно ;)
                                        0
                                        спасибо, благодаря этой статейке завершил работу над медиацентром… правда в ходе накатывания убунты снёс всю свою кино-мульто-сериалобазу ))) сейчас восстанавливаю )))
                                          0
                                          если вам данная программа понравилась, советую еще глянуть в сторону BlueProximity
                                            0
                                            Скажите, а нет ли такого пульта под WM?
                                              0
                                              Может я где-то не там ищу, но не могу найти скрипты вообще :( А при инсталляции ни одного скрипта у меня тоже не появилось
                                                0
                                                Под дебом дефолтные скрипты располагаются в /usr/share/anyRemote/cfg-data
                                                  0
                                                  спасибо! там и у меня

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

                                              Самое читаемое