Поиск по базе знаний

Проброс пультов Broadlink из Home Assistant в Яндекс Алису

Существует огромное количество бытовой техники, которая исправно работает, но не имеет современных беспроводных модулей управления. Старые телевизоры, кондиционеры, аудиосистемы и проекторы управляются исключительно с помощью инфракрасных (ИК) пультов. Интегрировать такие устройства в современную систему автоматизации помогают умные ИК-пульты Broadlink (линейка RM4 Mini, RM4 Pro). В этой статье мы подробно рассмотрим, как подключить пульт Broadlink к Home Assistant локально, обучить его командам, создать виртуальные кнопки и передать их в Алису для полноценного голосового управления.

Локальная интеграция пульта Broadlink позволяет отказаться от облака Broadlink BroadLink IHC/eControl. Пакеты команд отправляются напрямую по локальной сети, что сводит задержки к минимуму и повышает надежность системы.

Архитектура передачи ИК-кодов в Home Assistant

Инфракрасное управление работает путем модуляции светового сигнала на определенной частоте (обычно 38 кГц). Каждая кнопка пульта генерирует уникальную последовательность вспышек. При обучении пульт Broadlink переходит в режим сканирования, принимает сигнал от физического пульта и оцифровывает его, сохраняя в виде строки Base64 в файлах базы данных Home Assistant.

Для управления техникой Home Assistant использует службу remote.send_command, отправляя эту сохраненную строку на IP-адрес пульта Broadlink, который воспроизводит её через свои ИК-диоды. Для удобного вывода в приложение Яндекс нам потребуется обернуть эти низкоуровневые ИК-команды в виртуальные переключатели.

IMPORTANT

База данных ИК-кодов привязана к конкретному устройству Broadlink. При смене пульта или его переименовании вам потребуется перенести или переобучить ИК-коды. Рекомендуется зарезервировать за пультом постоянный IP-адрес на роутере, чтобы избежать сбоев в отправке команд.

Для работы пульта в локальном режиме выполните следующие шаги:

  1. Подключите пульт к питанию. С помощью официального мобильного приложения Broadlink выполните сопряжение устройства с вашей домашней Wi-Fi сетью. Как только прибор получит IP-адрес, закройте приложение. Не добавляйте пульт в облачный аккаунт приложения, чтобы он оставался доступен для локального управления.
  2. В интерфейсе Home Assistant перейдите в раздел Настройки -> Устройства и службы -> Добавить интеграцию.
  3. Найдите в списке Broadlink и укажите IP-адрес вашего пульта.
  4. Home Assistant автоматически определит модель устройства и создаст сущность пульта вида remote.broadlink_living_room.

Шаг 2. Обучение ИК-командам

Процесс записи кодов с оригинального пульта происходит через встроенные службы разработчика:

  1. Перейдите в меню Панель разработчика -> Службы.
  2. Выберите службу remote.learn_command.
  3. В качестве целевого устройства укажите ваш пульт remote.broadlink_living_room.
  4. В поле Device введите имя управляемого прибора (например, old_tv).
  5. В поле Command укажите имя записываемой кнопки (например, power или volume_up).
  6. Нажмите кнопку Вызвать службу. Светодиод на пульте Broadlink загорится ровным светом.
  7. Направьте физический пульт от телевизора на Broadlink с расстояния 5-10 см и коротко нажмите нужную кнопку. Светодиод погаснет, сигнализируя об успешной записи. Записанные коды будут сохранены в скрытой системной папке .storage.

WARNING

Некоторые пульты используют протоколы с переменным кодом или работают на частоте 433 МГц (радиочастотный диапазон). Модели Broadlink RM Pro поддерживают RF-сигналы, но процесс их обучения требует более точной калибровки частоты несущей в параметрах вызова службы.

Шаг 3. Создание виртуальных переключателей

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

Откройте файл configuration.yaml и создайте шаблон переключателя:

switch:
  - platform: template
    switches:
      tv_power_switch:
        friendly_name: "Телевизор в зале"
        value_template: "{{ is_state('input_boolean.tv_state', 'on') }}"
        turn_on:
          - service: remote.send_command
            target:
              entity_id: remote.broadlink_living_room
            data:
              device: old_tv
              command: power
          - service: input_boolean.turn_on
            target:
              entity_id: input_boolean.tv_state
        turn_off:
          - service: remote.send_command
            target:
              entity_id: remote.broadlink_living_room
            data:
              device: old_tv
              command: power
          - service: input_boolean.turn_off
            target:
              entity_id: input_boolean.tv_state

Для отслеживания состояния телевизора мы используем вспомогательный переключатель input_boolean.tv_state, так как старый телевизор не может сообщить свой реальный статус питания.

Шаг 4. Настройка и проброс в Алису

Теперь добавим наш виртуальный переключатель в интеграцию Яндекса:

  1. В секцию yandex_smart_home добавьте конфигурацию сущности:
yandex_smart_home:
  filter:
    include_entities:
      - switch.tv_power_switch
  entity_config:
    switch.tv_power_switch:
      name: "Телевизор"
      room: "Гостиная"
      type: devices.types.media_device.tv
  1. Перезагрузите конфигурацию YAML и обновите устройства в приложении «Дом с Алисой».
  2. Теперь при команде «Алиса, включи телевизор», Яндекс Станция отправит сигнал на сервер Home Assistant, который мгновенно передаст записанную ИК-команду через локальный пульт Broadlink.

Позиционирование и особенности передачи ИК-сигнала

В отличие от радиоволн, инфракрасный луч имеет строгую направленность. Для качественной передачи сигнала расположите Broadlink в зоне прямой видимости управляемой техники. Встроенные ИК-диоды пульта расположены по кругу под углом 360 градусов, что позволяет сигналу отражаться от стен и потолка, однако наличие физических препятствий (стенки мебели, шторы) заблокирует передачу. При прокладке кабеля питания избегайте перегибов, чтобы не вызвать падение напряжения на плате Broadlink, которое может снизить мощность излучающих светодиодов.

TIP

Для более сложных сценариев (например, переключение каналов или изменение громкости голосом) вы можете создать дополнительные скрипты (script.tv_volume_up) и пробросить их в Яндекс как типы устройств devices.types.media_device.tv с поддержкой голосовых интентов.

Инструкция по настройке

1

Интеграция пульта Broadlink

Выполните первоначальное подключение пульта к локальной Wi-Fi сети и добавьте его в Home Assistant без привязки к облачному аккаунту.

2

Обучение инфракрасным кодам

Запустите службу remote.learn_command в панели разработчика и запишите сигналы с физического пульта вашей старой техники.

3

Создание виртуального переключателя

Напишите шаблон переключателя (template switch) в configuration.yaml, привязав к нему вызовы службы отправки записанных ИК-кодов.

4

Синхронизация с Умным Домом Яндекса

Добавьте виртуальный переключатель в block конфигурации yandex_smart_home, задайте тип устройства как телевизор и обновите приложение Алисы.