Home assistant android box

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 с указанием папки, откуда играть. У такого подхода есть существенный минус — при запуске проигрывателя сначала вся папка сканируется и собирается плейлист, что создаёт большую задержку между нажатием кнопки и, собственно, музыкой.

Читайте также:  Как ускорить свой android устройств

Я отказался от такого подхода и решил собрать смарт-плейлисты. Вкратце: смарт-плейлисты в 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

Поскольку у меня пока управлять особо нечем, то режим «кино» подразумевает просто убавление яркости потолочного светильника до минимума. При первой же возможности куплю торшер и переделаю автоматизацию на выключение потолочного светильника и включение торшера. Ну или ещё чего-нибудь.

На этом всё. Шер, лайк, подписки, комментарии. Бложик я веду не ради монетизации, но всё равно приятно знать, что кто-то читает и интересуется.

Читайте также:  All android mobile offer

Источник

Сервер для 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 на свой компьютер)
  • Берем наш папа-папа кабель, соединяем компьютер и приставку
  • Одобряем запрос на отладку, который появится на телевизоре
  • Вводим в терминале:
Читайте также:  Календарь для android с днями рождениями контактов

Все, провод можно отсоединять.

Можно проверить наличие возможности соединения вводом команды:

Где 192.168.1.82 — ip-адрес Вашего ТВ-бокса.

Появится еще одно окно подтверждения разрешения на отладку, после чего будет установлено соединение.

Далее, для интеграции в ХА, настраиваемся по инструкции из документации, пропуская пункт предварительной настройки. Там все четко, ясно и, кхм, рабоче.

Источник

Android TV BOX, интеграция в Home Assistant и Yandex Алису

В тематических чатах по Home Assistant ребята часто спрашивают об одних и тех же интеграциях, на портале есть статьи, но для новичков они написаны очень сложно и не понятно. Вот я и решил написать статью от лица новичка.
У меня Android TV Box ZTE B866 (с прошивкой от МТС).

  1. Нужно настроить ADB (аддон ADB — Android Debug Bridge больше не работает).
  2. Установить кастомный компонент 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».

Если будут вопросы, пишите в комментариях! Спасибо, что дочитали до конца =)

Источник

Оцените статью