Блог

Телевизор в Homekit через Нome Assistant. Способ изящный - используем платформу Universal и Scripts.

 

 

undefined

Подготовительный этап

Начинаем с создания списка входов, которые мы хотим видеть в нашем будущем плеере. Для этого создаем input_select в файле configuration.yaml. Я добавил лишь физические входы, но ни что не мешает вам добавить сюда ваши любимые ТВ каналы или даже комбинацию действий.

 

 

#input options input_select: tv_sources: name: TV Source options: - 'TV' - 'HDMI 1' - 'HDMI 2' - 'HDMI 3' - 'HDMI 4' # initial: 'TV' icon: mdi:television

 

 

undefined

# Different TV sources source_tv: alias: Source TV sequence: - service: broadlink.send data: host: 192.168.0.22 packet: "JgBGAJSTEjgSOBI4EhMSExITEhMSExI4EjgSNxMTEhQRFBEUERQRORE4EhQSExITEhMSOBITEhMSExI4EjgSOBI4EhMSOBIADQUAAA==" source_hdmi1: alias: Source HDMI 1 sequence: - service: broadlink.send data: host: 192.168.0.22 packet: "JgBGAJGWETkRORI4ERQRFBAVERQRFBE5ETkROREUEBURFBEUERQQOxA6EBUPOw8WDxYQFRA6DxYQFRA6EBUPOxA6ETkRFBEADQUAAA==" source_hdmi2: alias: Source HDMI 2 sequence: - service: broadlink.send data: host: 192.168.0.22 packet: "JgBGAJOUETkRORA6ERQQFRAVERQRFBA6ETkROhAVDxYQFQ8WEBUQFQ87EDoRORA6DzsQFRA6DzsPFhAVDxYQFRAVEDoQFRAADQUAAA==" source_hdmi3: alias: Source HDMI 3 sequence: - service: broadlink.send data: host: 192.168.0.22 packet: "JgBGAJOUEDoRORE5ERQRFRAUERQRFBE5EDsQOhAVEBUPFg8WDxYPFhA6EBUPFg8WEBUROQ87EDoQFQ87EDoQOhA6EBUPFhAADQUAAA==" source_hdmi4: alias: Source HDMI 4 sequence: - service: broadlink.send data: host: 192.168.0.22 packet: "JgBGAJOVETgRORE6DxYQFQ8WDxYPFhA6EDoQOhAVDxYQFQ8WDxYPOw8WEDoQFRAVDxYPOxA6EBUQOhAVEDoQOhA6EBUPFhAADQUAAA=="

 

 

undefined

switch: - platform: template switches: livingroom_tv_switch: friendly_name: "TV" value_template: "{{ is_state('media_player.samsung_tv', 'on') }}" turn_on: service: media_player.turn_on data: entity_id: media_player.apple_tv turn_off: service: media_player.turn_off data: entity_id: media_player.samsung_tv, media_player.apple_tv icon_template: >- {% if is_state('media_player.samsung_tv', 'on') %} mdi:television {% else %} mdi:television-off {% endif %}

Собираем мозаику

Теперь осталось лишь прописать все нужные действия в наш universal media player. Пример моего кода из configuration.yaml прилагается. Из children плеер будет брать статус, там прописываем наш Samsung TV. Далее команды на включение, выключение, громкость и mute, все задается стандартными сервисами, ничего сложного. В select_source прописываем все наши вводы и запуск с помощью сервиса script.turn_on

 

 

media_player: #Universal player - platform: universal name: Universal TV children: - media_player.samsung_tv commands: turn_on: service: media_player.turn_on data: entity_id: media_player.apple_tv turn_off: service: switch.turn_off data: entity_id: switch.livingroom_tv_switch volume_up: service: media_player.volume_up data: entity_id: media_player.samsung_tv volume_down: service: media_player.volume_down data: entity_id: media_player.samsung_tv volume_mute: service: media_player.volume_mute data: entity_id: media_player.samsung_tv select_source: service: script.turn_on data_template: entity_id: > {% if source == 'TV' %} script.source_tv {% elif source == 'HDMI 1' %} script.source_hdmi1 {% elif source == 'HDMI 2' %} script.source_hdmi2 {% elif source == 'HDMI 3' %} script.source_hdmi3 {% elif source == 'HDMI 4' %} script.source_hdmi4 {% endif %} attributes: is_volume_muted: media_player.samsung_tv|is_volume_muted volume_level: media_player.samsung_tv|volume_level # source: input_select.tv_sources source_list: input_select.tv_sources|options

 

 

undefined

media_player.universal_tv: device_class: tv friendly_name: Living Room TV source_list: [TV,HDMI 1,HDMI 2,HDMI 3,HDMI 4]

 

undefined

homekit: filter: include_entities: - media_player.universal_tv

 

undefined

 

 

undefined

Вот супер. Но самое обидное, что есть ИК «шайба» от Xiaomi.

С ней такое можно «провернуть»?

Скорее всего можно. Во первых https://github.com/smartHomeHub/SmartIR/blob/master/docs/MEDIA_PLAYER.md">SmartIr поддерживает эту шайбу. Вот https://sprut.ai/client/blog/1362">тут я описал как сделать ТВ на его основе. Ну а во вторых вы можете создать команды на переключение входов и сделать как описано выше с платформой Universal, просто посмотрите как отсылать команды с помощью Xiaomi пульта.

как вызывается remote? что бы громкостью управлять?



Нижний свайп и потом на пультик жмёшь 


1000x_image.jpeg?1563523239

спасибо!

вообще что б этот пультик там появился, сначала надо его добавить через настройки Control Center, он называется Apple TV Remote.

причем что самое страное что если открываешь просто аппу Remote, управление TV там нет :\

после выхода ios 13 universal перестал работать на девайсах с ios 12 (на девайсах с ios 13 работает нормально)


Вернуться назад
Вернуться назад