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

- Настройка AV Receiver Pioneer
- Подключение AV Receiver Pioneer в Home Assistant
- Панель Lovelace
- Подключение к AV Receiver Pioneer к Яндекс Алисе (Yandex Smart Home)
- Автоматизация
- Проблемы
Настройка 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 появится добавленное устройство.

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

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

Подключение к AV Receiver Pioneer к Яндекс Алисе (Yandex Smart Home)
Как настроить интеграцию Yandex Smart Home подробно описано в статье: Интеграция Home Assistant и Алисы по фамилии Яндекс.
В конфигурационном файле Home Assistant configuration.yaml, в разделе настроек Yandex Smart Home добавляем:
yandex_smart_home:
filter:
include_entities:
<strong>- media_player.pioneer_vsx_824</strong>
entity_config:
<strong>media_player.pioneer_vsx_824:
name: "Ресивер"
room: "Комната"
type: devices.types.media_device.receiver
relative_volume_only: false
range:
max: 70
min: 1
precision: 1</strong>
Сохраняем файл configuration.yaml, в Home Assistant проверяем корректность внесенных изменений Configuration -> Server Controls -> Check configuration, перезагружаем Home Assistant.
В приложении Яндекс переходим в Устройства -> Управление устройствами, проверяем, что устройство добавилось.

Теперь ресивером можно управлять голосом: включить/отключить, увеличить/уменьшить громкость, выбрать источник сигнала. С последним в Yandex Smart Home есть небольшая проблема, Яндекс источники сигнала нумерует по порядку с первого по ... (у меня десять) и для смены источника сигнала надо сказать его порядковый номер.
Автоматизация
Самое интересное, как всё это подключенное железо можно использовать :)
Управляемое оборудование:
- Ресивер.
- Старая плазма, к сети не подключается, управлять ей возможно через универсальный пульт ДУ.
- Сабвуфер, который не отключается, точнее он уходит в режим энергосбережения, но у него два ярких светодиода показывающих состояние - мешают :)
Необходимое оборудование:
- Три умных розетки (у меня стоят 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 в ресивере, помогает отключение розетки ресивера и включение ее заново.