Stupid House

Подключение AV Receiver Pioneer в Home Assistant


Подключение AV Receiver Pioneer в Home Assistant

Давно вынашивал мысль, что было бы не плохо уменьшить количество телодвижений при включении и переключении режимов на AV ресивере и телевизоре. Изначальная идея была обыграть с помощью универсальной инфракрасной коробки, для чего было приобретено устройство Xiaomi Mijia Universal IR Remote control, но как оказалось у моего ресивера есть некоторые проблемы при взаимодействии с данным устройством. Модель моего ресивера Pioneer VSX-824-k, у него есть ethernet порт, с помощью которого устройство можно подключить к локальной сети, подключить к Home Assistant и управлять им.

AV Receiver Pioneer VSX-824-k Home Assistant

 

Настройка AV Receiver Pioneer

По умолчанию в модели VSX-824-k в режиме ожидания ethernet порт отключается, ресивером можно управлять только если он находится в рабочем состоянии, после выключения, включить можно только с кнопки питания на устройстве или с пульта. Для возможности включения по сети ресивера из режима ожидания необходимо включить функцию Network Standby в Home Menu. Инструкция для Receiver Pioneer VSX-824-k, как войти в Home Menu страница 52, как включить Network Standby страница 55.

 

Подключение AV Receiver Pioneer в Home Assistant

Настройка подключения описана на официальном сайте Home Assistant и не вызывает проблем. В файл конфигурации Home Assistant conguration.yaml вносим:

media_player:
  - platform: pioneer
    name: Pioneer VSX-824
    host: 192.168.10.63
    port: 8102
    sources:
      'CD': '01'
      'Tuner': '02'
      'DVD': '04'
      'TV': '05'
      'Sat/Cbl': '06'
      'Video': '10'
      'DVR/BDR': '15'
      'iPod/USB': '17'
      'HDMI': '19'
      'BD': '25'
      'Adapter': '33'
      'Netradio': '38'
      'Media Server': '44'
      'Favorites': '45'
      'MHL': '48'
      'Game': '49'

где:

  • name - произвольно понятное имя устройства в Home Assistant.
  • host - IP адрес ресивера в домашней сети.
  • port - порт для подключения на ресивере. Стандартный порт 23, но на некоторых моделях изменен на 8102.
  • sources - режимы работы доступные ресиверу. Описывается как Frendly name в кавычках -> двоеточие -> Код режима в устройстве (Записывается в кавычках чтобы не потерять ведущий ноль). Некоторые коды можно посмотреть в таблице ниже в разделе управления через telnet или обратиться к официальной документации Home Assistant.

Сохраняем файл configuration.yaml, в Home Assistant проверяем корректность внесенных изменений Configuration -> Server Controls -> Check configuration, перезагружаем Home Assistant.

После перезагрузки в разделе Configuration -> Entities появится добавленное устройство.

av receiver pioneer home assistant

Как это работает. Для управления на устройстве на порту 23 или 8102 работает telnet, через который можно управлять устройством. Что бы подключиться в командной строке вводим:

$ telnet 192.168.10.63 8102

Команды для управления устройством:

Команда Описание
PO Вкл. питание
PF Откл. питание
?P Узнать текущий статус питания
VU Увеличить громкость
VD Уменьшить громкость
?V Узнать текущий уровень громкости
MO Mute ON выключить звук
MF Mute OFF включить звук
?M Узнать текущий статус отключения звука
00FN PHONO
01FN CD
02FN TUNER
03FN CD-R/TAPE
04FN DVD
05FN TV/SAT
06FN SAT/CBL
10FN VIDEO 1
14FN VIDEO 2
15FN DVR/BDR
17FN iPod/USB
19FN HDMI1
20FN HDMI2
21FN HDMI3
22FN HDMI4
23FN HDMI5
24FN HDMI6
25FN BD
26FN HOME MEDIA GALLERY (Internet Radio)
33FN ADAPTER
38FN NETRADIO
41FN PANDORA
44FN MEDIA SERVER
45FN FAVORITES
48FN MHL
49FN GAME
FU Переход на следующий источник сигнала
FD Переход на предыдущий источник сигнала
?F Узнать текущий источник сигнала

Безопасность! Поскольку пароль на telnet не установлен, то необходимо позаботиться о том, чтобы доступ к устройству был ограничен не только из внешней сети, но и в локальной. Если есть возможность, то все устройства умного дома лучше всего вывести в отдельную подсеть с ограниченным доступом.

 

Панель Lovelace

Виджет для панели Lovelace стандартный Multimedia и с главного экрана позволяет только включить/отключить ресивер, запустить воспроизведение/поставить на паузу контент в определенных режимах и узнать текущий источник сигнала.

av receiver pioneer home assistant lovelace

В подробном режиме настроек больше, добавились регулировка уровня громкости и выбор источника сигнала. На моем ресивере громкость не регулируется ползунком, только кнопками больше/меньше, думаю, это связано с тем, что в управлении через telnet нет команды установить значение уровня громкости.

av receiver pioneer detail lovelace

 

Подключение к AV Receiver Pioneer к Яндекс Алисе (Yandex Smart Home)

Как настроить интеграцию Yandex Smart Home подробно описано в статье: Интеграция Home Assistant и Алисы по фамилии Яндекс.

В конфигурационном файле Home Assistant configuration.yaml, в разделе настроек Yandex Smart Home добавляем:

yandex_smart_home:
  filter:
    include_entities:
      - media_player.pioneer_vsx_824
  entity_config:
    media_player.pioneer_vsx_824:
      name: "Ресивер"
      room: "Комната"
      type: devices.types.media_device.receiver
      relative_volume_only: false
      range:
        max: 70
        min: 1
        precision: 1

Сохраняем файл configuration.yaml, в Home Assistant проверяем корректность внесенных изменений Configuration -> Server Controls -> Check configuration, перезагружаем Home Assistant.

В приложении Яндекс переходим в Устройства -> Управление устройствами, проверяем, что устройство добавилось.

av receiver pioneer home assistant yandex smart home

Теперь ресивером можно управлять голосом: включить/отключить, увеличить/уменьшить громкость, выбрать источник сигнала. С последним в Yandex Smart Home есть небольшая проблема, Яндекс источники сигнала нумерует по порядку с первого по ... (у меня десять) и для смены источника сигнала надо сказать его порядковый номер.

 

Автоматизация

Самое интересное, как всё это подключенное железо можно использовать :)

Управляемое оборудование:

  1. Ресивер.
  2. Старая плазма, к сети не подключается, управлять ей возможно через универсальный пульт ДУ.
  3. Сабвуфер, который не отключается, точнее он уходит в режим энергосбережения, но у него два ярких светодиода показывающих состояние - мешают :)

Необходимое оборудование:

  • Три умных розетки (у меня стоят Xiaomi Wall Smart Socket, Model: QBCZ11LM)
  • Xiaomi Mijia Universal IR Remote control (Model: MJYKQ01CM)

Первая и вторая автоматизации, включаем и отключаем розетку, к которой подключен сабвуфер. Условием для действия будет мощность, потребляемая на розетке, к которой подключен ресивер, считаем, что если потребление менее 15W, то ресивер выключен и сабвуфер можно отключить, если больше, то включаем.

- id: 'subwoofer_socket_turn_off'
  alias: Multimedia - Subwoofer turn off
  trigger:
  - platform: numeric_state
    entity_id: sensor.xiaomi_socket_receiver_power
    below: '15'
  condition:
  - condition: state
    entity_id: switch.xiaomi_socket_subwoofer_switch
    state: 'on'
  action:
  - service: switch.turn_off
    entity_id: switch.xiaomi_socket_subwoofer_switch
    data: {}
  mode: single

- id: 'subwoofer_socket_turn_on'
  alias: Multimedia - Subwoofer turn on
  trigger:
  - platform: numeric_state
    entity_id: sensor.xiaomi_socket_receiver_power
    above: '15'
  condition:
  - condition: state
    entity_id: switch.xiaomi_socket_subwoofer_switch
    state: 'off'
  action:
  - service: switch.turn_on
    entity_id: switch.xiaomi_socket_subwoofer_switch
    data: {}
  mode: single

Следующие две автоматизации срабатывают при переключении на ресивере источника сигнала в DVD (просмотр видео с TV приставки), первая включает розетку телевизора, вторая включает телевизор с помощью Xiaomi Mijia Universal IR Remote control. Как подключить Xiaomi Mijia Universal IR Remote control описано в статье: Шайбу! Шайбу! Подключение и использование Xiaomi Mijia Universal IR Remote control в Home Assistant.

- id: 'receiver_dvd_tv_socket_turn_on'
  alias: Multimedia - Receiver - Set mode DVD - Turn on TV socket
  trigger:
  - platform: state
    entity_id: media_player.pioneer_vsx_824
    attribute: source
    to: DVD
  condition:
  - condition: device
    device_id: 8b926f9738c608abe1fd9949e752db57
    entity_id: switch.xiaomi_socket_tv_switch
    domain: switch
    type: is_off
  action:
  - domain: switch
    device_id: 8b926f9738c608abe1fd9949e752db57
    entity_id: switch.xiaomi_socket_tv_switch
    type: turn_on
  mode: single

- id: 'turn_on_tv_by_socket'
  alias: Multimedia - TV socket turned on - Turn on TV
  trigger:
  - platform: device
    device_id: 8b926f9738c608abe1fd9949e752db57
    entity_id: switch.xiaomi_socket_tv_switch
    domain: switch
    type: turned_on
    for:
      hours: 0
      minutes: 0
      seconds: 1
  condition: []
  action:
  - service: remote.send_command
    command: plasma_on_off
    entity_id: remote.xiaomi_miio_192_168_10_51
    data: {}
  mode: single

Эта автоматизация срабатывает, как и предыдущая, при переключении на ресивере источника сигнала в DVD (просмотр видео с TV приставки), но выполняет действия только если розетка телевизора включена и потребляемая мощность на ней ниже 10W, тогда считаем, что телевизор выключен и включаем его.

- id: 'receiver_dvd_tv_turn_on'
  alias: Multimedia - Receiver - Set mode DVD - Turn on TV
  trigger:
  - platform: state
    entity_id: media_player.pioneer_vsx_824
    attribute: source
    to: DVD
  condition:
    - condition: numeric_state
    entity_id: sensor.xiaomi_socket_tv_power
    below: '10'
  - service: remote.send_command
    command: plasma_on_off
    entity_id: remote.xiaomi_miio_192_168_10_51
    data: {}
  mode: single

Следующая автоматизация отключает телевизор при выключении ресивера, срабатывание происходит, когда потребляемая мощность на розетке ресивера падает менее 15W, а состояние работы телевизора проверяем по потребляемой мощности розетки ТВ.

- id: 'tv_turn_off'
  alias: Multimedia - TV turn off
  trigger:
  - platform: numeric_state
    entity_id: sensor.xiaomi_socket_receiver_power
    below: '15'
  condition:
  - condition: numeric_state
    entity_id: sensor.xiaomi_socket_tv_power
    above: '10'
  action:
  - service: remote.send_command
    command: plasma_on_off
    entity_id: remote.xiaomi_miio_192_168_10_51
    data: {}
  mode: single

Последней автоматизацией будет отключение розетки ТВ при падении потребляемой на ней мощности менее 10W.

- id: 'socket_tv_turn_off'
  alias: Multimedia - Socket TV turn off
  trigger:
  - platform: numeric_state
    entity_id: sensor.xiaomi_socket_tv_power
    below: '10'
  condition:
  - condition: state
    entity_id: switch.xiaomi_socket_room_tv_power
    state: 'on'
  action:
  - service: switch.turn_off
    entity_id: switch.xiaomi_socket_room_tv_power
    data: {}
  mode: single

Выше приведен минимальный список автоматизаций, необходимо добавить/расширить автоматизации при переключении на ресивере на другие источники сигнала. Если звук телевидения выведен на ресивер, то сделать переключение на нужный источник сигнала в телевизоре (например, при подключении кабельного) при переключении ресивера в источник сигнала TV.

Напоследок две бонусных автоматизации для Xiaomi Mi Cube и Aqara Cube. Регулируем громкость на ресивере при вращении куба влево/вправо.

- id: 'receiver_volume_up'
  alias: Multimedia - Mi Cube - Receiver volume up
  trigger:
  - platform: device
    domain: mqtt
    device_id: 800b2fa38e21601fccdc4f289bd49a2b
    type: action
    subtype: rotate_right
    discovery_id: 0x00158d000XXXXXXX action_rotate_right
  condition: []
  action:
  - service: media_player.volume_up
    entity_id: media_player.pioneer_vsx_824
  mode: single

- id: 'receiver_volume_down'
  alias: Multimedia - Mi Cube - Receiver volume down
  trigger:
  - platform: device
    domain: mqtt
    device_id: 800b2fa38e21601fccdc4f289bd49a2b
    type: action
    subtype: rotate_left
    discovery_id: 0x00158d000XXXXXXX action_rotate_left
  condition: []
  action:
  - service: media_player.volume_down
    entity_id: media_player.pioneer_vsx_824
  mode: single

 

Проблемы

За несколько месяцев использования проявилась только одна проблема: периодически отваливается telnet в ресивере, помогает отключение розетки ресивера и включение ее заново.

Автор: muxa, 08.02.2021
Войдите или зарегистрируйтесь, чтобы иметь возможность оставлять комментарии