Управление media-устройствами по локальной сети. Поддерживает ресиверы Yamaha и телевизоры Samsung до 2016г выпуска (работа через socket).
Программный код управления Yamaha взят отсюда - https://github.com/synox/yamaha_avr_api
Доступные команды для Yamaha можно найти здесь https://github.com/PSeitz/yamaha-nodejs
Программный код управления Samsung - см.файл tv_control.cpp
Команды описаны в конфигурационном файле и могут быть расширены.
Программа может работать с несколькими одинаковыми устройствами, подключенными по сети. Главное, чтобы у них имена в конф-файле были разные.
Как собрать.
-
Клонируйте репозиторий с библиотеками (используется 2):
git clone https://github.com/Ymedox/functions
В тот же каталог, куда клонирован functions, клонируем и исходники lanremote:
git clone https://github.com/Ymedox/lanremote
-
Сборка (требуется наличие glib2.0 и curl):
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release .. (Или Debug для отладочной версии)
make
-
Корректировка конфигурационного файла. Минимально: указать адреса своих устройств. При этом Yamaha может быть найдена по mdns, Samsung - нет. Кроме этого, на период отладки рекомендуется установить уровень логирования level=DEBUG и запускать программу с ключом -l, чтобы видеть не экране вывод.
-
Использование: ./lanremote [-v] [-l] [-c path_to_conf_file] Device Command Device Command ...
-v - выводит версию программы.
-l - включает вывод лога на экран, а не только в файл
-с path_to_conf_file - если конфигурационный файл лежит где-то в стороне от исполняемого файла Device Command - пары Имя_Устройства Команда_Устройству. Описано в конфигурационном файле. Таких пар может быть несколько одновременно, последовательно отработают все.
Данную программу можно использовать вместе с голосовым шлюзом https://github.com/Ymedox/ya_hub. Примеры описаний устройств можно найти в файле devices.txt. Кроме этого, удобно использовать скрипт для сценария подготовки к просмотру кино (в примере на Кинопоиске), см. файл cinema.sh, а также пример виртуального пульта в devices.txt.