Подключение 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 в ресивере, помогает отключение розетки ресивера и включение ее заново.