- Media Player: управляем SmartTV и Kodi через HomeAssistant
- Подключение приставки на Android (AndroidTV)
- Подключение Kodi
- Плейлисты в Kodi
- Автоматизация на основе контента Kodi
- Сервер для HomeAssistant на бывшей Android TV приставке
- Подключение Mi Box S в Home Assistant
- С места в карьер
- Подготовка
- То, ради чего всё затевалось
- Android TV BOX, интеграция в Home Assistant и Yandex Алису
Media Player: управляем SmartTV и Kodi через HomeAssistant
К сожалению, телевизор у меня не «умный» ни разу, в нём не то, что бы SmartTV, вообще никаких интерфейсов нет. Логичным шагом в своё время стала покупка ТВ-бокса с Android на борту. На бокс был установлен медиа-комбайн Kodi, установленный лончером по умолчанию, кроме которого, в общем-то, запускается только YouTube. Вот такой аскетизм.
И вот пришла пора всем этим рулить из HomeAssistant.
Подключение приставки на Android (AndroidTV)
Для управления медиасистемами в HomeAssistant предусмотрена штатная интеграция Media Player . Тем, у кого, например, Philips или Samsung — повезло больше, поскольку созданы отдельные компоненты под телевизоры этих марок, для всех остальных — есть штатная реализация Media Player под Android TV (которая, в общем-то, работает и с обычным Android).
Первое, что нам нужно для подключения — это знать IP-адрес нашей коробочки. Второе — убедиться, что с сервера, на котором крутится HomeAssistant, наша коробочка доступна и слушается через adb:
Если сервер начнёт ругаться, что не знает команду adb — нужно поставить библиотеки. Для Ubuntu это выглядит так:
sudo apt-get install android-tools-adb
Если соединение прошло успешно — можно настраивать плагин (в configuration.yaml):
media_player:
— platform: androidtv
host: !secret tvbox_ip
adb_server_ip: 127.0.0.1
name: TV BOX
apps:
«kodi»: «Kodi»
«com.liskovsoft.videomanager»: «YouTube»
, здесь tvbox_ip — адрес нашей коробочки, adb_server_ip — адрес сервера, с которого мы подключаемся к боксу через adb, name — название устройства, которое будет отображаться в HomeAssistant, apps — список приложений, названия которых будут отображаться в карточке Media Player (у меня в качестве YouTube используется приложение Smart YouTube TV с телевизионным интерфейсом). Список apps нужен в первую очередь для того, чтобы превратить длинные наименования приложений в короткие и понятные названия, которыми проще будет оперировать при управлении и создании автоматизаций.
После создания конфигурации и перезапуска HomeAssistant можно добавить карточку MediaPlayer к себе на панель управления:
Кроме стандартной карточки проигрывателя есть ещё кастомный плагин Mini Media Player с широкими возможностями. Эти возможности и примеры карточек можно увидеть на странице плагина на GitHub . Я вынес кнопки в отдельную панель и сейчас моя карточка выглядит так:
Подключение Kodi
Интеграция Media Player, кроме управления устройствами, имеет возможность управлять отдельными распространёнными приложениями, : iTunes, Spotify, Plex или Kodi. Все виды интеграций можно посмотреть тут , меня же интересует (пока что) только Kodi .
Чтобы подключить Kodi, нужно активировать в настройках Kodi доступ через веб-интерфейс, а затем прописать доступ в configuration.yaml:
media_player:
— platform: kodi
host: !secret kodi_ip
port: !secret kodi_port
Перезапускаем HomeAssistant и добавляем стандартную карточку:
Или кастомный плагин:
Плейлисты в Kodi
Зачем вообще городить Kodi отдельно от общего Android TV? Плагин для Kodi умеет больше, чем общий плагин для управления боксами — он определяет источник медиа (музыка, сериалы, фильмы), показывает обложки, позволяет синхронизировать медиатеку из HomeAssistant и всякое другое.
Мне в первую очередь от плагина нужен был запуск музыки из панели управления, чтобы не вставать лишний раз в поисках пульта. Делается это с помощью сервиса media_player.play_media.
Поскольку плейлистов у меня организовано никогда не было а музыку я запускал исключительно по исполнителю, то первым моим шагом было создание отдельных папок с исполнителями на диске, откуда играется музыка и вызов сервиса play_media с указанием папки, откуда играть. У такого подхода есть существенный минус — при запуске проигрывателя сначала вся папка сканируется и собирается плейлист, что создаёт большую задержку между нажатием кнопки и, собственно, музыкой.
Я отказался от такого подхода и решил собрать смарт-плейлисты. Вкратце: смарт-плейлисты в Kodi — это фильтры, с помощью которых из всей медиатеки выбирается нужная музыка, например, по исполнителю, по ключевым словам или по любому другому параметру. Недостаток смарт-плейлистов тот же, что и при проигрывании папки с музыкой — чем больше музыки попадает под фильтры, тем больше времени нужно для подготовки плейлиста при каждом запуске.
В итоге я пришёл к старым добрым традиционным плейлистам, в которые я занёс самостоятельно все нужные мне композиции и сохранил в формате m3u.
Подход для запуска любого их вышеперечисленных способов одинаковый: я создал объект input_select c перечнем всех плейлистов и при выборе одного из них передавал название плейлиста в автоматизацию в виде переменной.
Объект input_select создаётся в меню Настройки — Вспомогательное — Выпадающий список:
Задаём название, иконку и добавляем опции — названия плейлистов. Важно! Плейлисты надо задавать именно в том виде, в каком они хранятся в хранилище Kodi. Одна неверная буква или лишний пробел — и плейлист запускаться не будет.
Следующий этап: создать автоматизацию запуска плейлиста при выборе одного из значений (в automations.yaml):
— alias: Играть
platform: state
entity_id: input_select.pleilist
action:
service: media_player.play_media
data_template:
entity_id: media_player.kodi
media_content_type: DIRECTORY
media_content_id: «special://profile/playlists/music/<< states('input_select.pleilist') >>.m3u»
Теперь достаточно добавить на панель в любое удобное место наш выпадающий список:
И готово, при выборе плейлиста он запускается. Аналогичным способом можно запускать любое медиа из файла (подставить нужные пути в media_content_id) или отдельными методами Kodi.
Впрочем, с тех пор как у меня дома поселилась Алиса, я слушаю музыку с Яндекс.Станции, а не через Kodi, так что эта автоматизация у меня тоже теперь закомментирована до лучших времён. Про Алису, разумеется, тоже будет отдельная статья, возможно и не одна.
Автоматизация на основе контента Kodi
Ещё одна причина, по которой стоит отдельно настроить Kodi, если вы его используете — определение типа воспроизведения для создания автоматизации. Например, включение интимного освещения при запуске кино или что-нибудь ещё при включении музыки.
Моя автоматизация для режима «кино» (automations.yaml):
— alias: Время для фильма
trigger:
— platform: state
entity_id: media_player.kodi
to: ‘playing’
condition:
— condition: state
state: ‘below_horizon’
— condition: or
conditions:
— condition: template
value_template: ‘<< states.media_player.kodi.attributes.media_content_type == "tvshow" >>’
— condition: template
value_template: ‘<< states.media_player.kodi.attributes.media_content_type == "movie" >>’
action:
— service: script.cinema
Тут самое сложное — это разобраться с условиями (conditions). Триггер срабатывает, когда состояние media_player.kodi переходит в playing и выполнены условия: солнце за горизонтом (зачем нам свет включать, если и так светло?) и (media_content_type = tvshow или media_content_type = movie). Условия в HomeAssistant записываются именно так, с этим ничего не поделать. Когда срабатывает триггер — запускается action, в моём случае заранее заданный скрипт (scripts.yaml):
sequence:
— service: remote.send_command
data:
entity_id: remote.broadlink
device: Ceiling
command: Darken
num_repeats: 10
Поскольку у меня пока управлять особо нечем, то режим «кино» подразумевает просто убавление яркости потолочного светильника до минимума. При первой же возможности куплю торшер и переделаю автоматизацию на выключение потолочного светильника и включение торшера. Ну или ещё чего-нибудь.
На этом всё. Шер, лайк, подписки, комментарии. Бложик я веду не ради монетизации, но всё равно приятно знать, что кто-то читает и интересуется.
Источник
Сервер для HomeAssistant на бывшей Android TV приставке
Случайно обнаружил данное сообщество.
В силу работы и увлечений, я тоже близок к нему. Почитал все, мало, но понравилось, решил внести свою лепту.
Весь пост будет по части сервера HA.
Когда решил поставить дома IOT, появился вопрос, какой и где будет сервер. Облака сразу отмёл, так как при прекращении инета работа устройств под сомнением, плюс часто, привязка к вендору. Хотя и свои удобства у данного сервера есть.
Читал-читал — остановился на HomeAssistant (в связке с ESPHome). Только по моему мнению — система самая удобная и функциональная.
Правда до сих пор не могу конфигурировать панель для пульта ИК телевизора, но это вопрос времени.
Так как работаю в основном в *NIX системах, привык к их подходу — программа должна выполнять только свою функцию но выполнять ее хорошо.
В связи с подходом — не приобретаю SmartTV. Дома только обычные TV + Smart приставка. Устаревает приставка — меняю на новую, до 4К телевизора — у меня нет контента, что бы регулярно его смотреть, поэтому FullHD телек остается.
К тому времени, как я увлекся IOT, пара приставок, отслуживших свой срок уже валялась, и при выборе сервера для HA, я ими заинтересовался.
Одной из последних, рабочих, оказалась noname X96. В схему особо вписалось, что питание у нее 5В DC.
Так как дома практически везде Linux, на нее был найден и установлен порт armbian. Дальше, по обычному гайду для Debian, установлен HA. Добавлена карта памяти на 64Гб с того же Ali для логов в шатный разъем. Получилось малопотребляющее устройство, при этом, достаточно мощное (для своих целей, нагрузка на процессор не превышает 30%). Дополнительное удобство было в потреблении этой приставкой 5В .
Так как серверу необходимо непрерывное питание, был закуплен на Ali корпус для Powerbank, за 200 руб, на 6 мест 18650, плюс, эти 6*18650*3,4 АЧ. Не помню точную сумму, но не более 2000 руб обошелся мне этот бесперебойник. Запитывается от от зарядника даво почившего смартфона.
Дополнительно, пропилил «крышу» приставки и установил на нее вентилятор от древнего ноута, который подключен прямо к питанию X96.
В такой конфигурации бесперебойника (
20АЧ), «сервер» HA работает более 24 часов без внешнего электричества (задолбался проверять, оставалось 15% на момент прекращения эксперимента, если отключить вентилятор, то и поболее будет).
На данный момент ищу недорогую и хорошую антену для WiFi, что бы подпаять ее вместо встроенной в X96 и использовать именно ее для WiFi IOT. Понятно, что «бесперебойника» хватит на меньшее время, но будет, думаю, правильнее — не надо поддерживать питание внешнего роутера и свича.
Источник
Подключение Mi Box S в Home Assistant
С места в карьер
На Mi Box S нельзя в настройках для разрабочика включить отладку (ADB) по сети. Только по USB.
Отсюда вытекает следующая проблема: нужен кабель USB A с обоими концами типа «папа» для подключения бокса к компьютеру. Пришлось заказать оный кабель (70р на Oзоне).
Подготовка
Чтобы появилось меню настроек для разработчиков, надо:
- Зайти в настройки ТВ-бокса
- Перейти в подменю «Об устройстве»
- Пролистать до пункта с номером сборки
- И, установив выделение на нем, нажать «OK» на пульте несколько раз (точно не помню, раз 5)
То, ради чего всё затевалось
- (устанавливаем ADB на свой компьютер)
- Берем наш папа-папа кабель, соединяем компьютер и приставку
- Одобряем запрос на отладку, который появится на телевизоре
- Вводим в терминале:
Все, провод можно отсоединять.
Можно проверить наличие возможности соединения вводом команды:
Где 192.168.1.82 — ip-адрес Вашего ТВ-бокса.
Появится еще одно окно подтверждения разрешения на отладку, после чего будет установлено соединение.
Далее, для интеграции в ХА, настраиваемся по инструкции из документации, пропуская пункт предварительной настройки. Там все четко, ясно и, кхм, рабоче.
Источник
Android TV BOX, интеграция в Home Assistant и Yandex Алису
В тематических чатах по Home Assistant ребята часто спрашивают об одних и тех же интеграциях, на портале есть статьи, но для новичков они написаны очень сложно и не понятно. Вот я и решил написать статью от лица новичка.
У меня Android TV Box ZTE B866 (с прошивкой от МТС).
- Нужно настроить ADB (аддон ADB — Android Debug Bridge больше не работает).
- Установить кастомный компонент Y andex_smart_home .
Зайдите в Home Assistant configuration.yaml и введите данные медиаплеера.
После того как откроете права разработчика, нужно перезагрузить Home Assistat.
После успешно проделанных действий, у вас на TV BOX появится цифровой отпечаток RSA, ставим галочку «Всегда разрешать отладки.» и нажимаем кнопку ОК.
На этом интеграция Androin TV BOX закончена, осталось привести все в божеский вид и подружиться Yandex Алисой.
Для тех, у кого не настроен «ui-lovelace.yaml», компонент сразу появится во вкладке «Обзор». Для тех, у кого он настроен, его не будет в «Обзоре» и его необходимо добавить.
Ниже будет код на добавление медиаплеера и функциональных кнопок в «ui-lovelace.yaml». Прежде чем добавить, надо настроить скрипт на функциональные кнопки, которые отсутствуют, а именно, кнопка вверх, вниз, влево, вправо и т.д. Все настройки взял на сайте Home Assistant // Android TV.
Основные функции, которые можно добавить в скрипт:
- LEFT
- RIGHT
- CENTER
- BACK
- MENU
Для корректной интеграции в Yandex Алису, осталось добавить то, что не будет отображаться, и то, что будет.
В исключение желательно добавить такие скрипты:
Включение приставки, сон и отключение звука будут уже автоматически добавлены в медиаплеер, не вижу смысла их дублировать.
Добавляем нужное в » configuration.yaml» и перезагружаем Home Assistant.
Последний шаг. Переходим в Yandex Алису и добавляем новые устройства.
Если у вас уже есть интеграция с Home Assistant, то нужно обновить список устройств, если нет — добавляем новые устройства.
После того, как устройства добавились, осталось назначить комнату.
Выше писал, что не стоит добавлять кнопку включения, отключение звука, так как они появились автоматически.
Основные голосовые команды:
- Включи приставку
- Убери звук на приставке
- Включи звук на приставке
- Приостанови приставку
- Сними приставку с паузы
- Увеличь звук на приставке
- Сделай приставку тише
- Включи следующий канал на приставке
В команде слово «приставка» — это то, как вы назвали ваш TV Box.
Для тех, кто обратил внимание на функцию «Источник» и хочет ей воспользоваться, то мой дружеский совет — не стоит. Задумка у разработчиков хорошая, но сама функция неудобная в использовании, а именно, нужно проговаривать большую голосовую команду, чтобы все заработало.
Команды:
- Поставь первый источник сигнала на приставке.
- Поставь второй источник сигнала на приставке.
- Поставь третий источник сигнала на приставке.
И так далее.
Также медиаплеер, в удобном для него порядке, устанавливает источники.
После того, как вы добавили exclude_unnamed_apps в «configuration.yaml», нужно перезагрузить Home Assistant . После перезагрузки необходимо обновить список устройств в Yandex Алиса, функция станет доступной. Также в медиаплеере Home Assistant будет доступен список тех команд, которые вы прописали в «configuration.yaml».
Если будут вопросы, пишите в комментариях! Спасибо, что дочитали до конца =)
Источник