Обучение умного ИК-пульта Яндекс кастомным командам
Интеграция бытовой техники с инфракрасным управлением (телевизоры, кондиционеры, аудиосистемы) в умный дом Яндекса позволяет автоматизировать старые приборы без существенных затрат. Однако встроенная база данных ИК-кодов Яндекса содержит пресеты далеко не для всех китайских или редких OEM-брендов. В этом случае единственным решением становится ручное обучение умного ИК-пульта оригинальными командами. Если ваш пульт Яндекса периодически теряет связь с сетью или не реагирует на команды даже для известных брендов, обязательно ознакомьтесь с руководством по решению проблем с ИК-пультами Яндекса.
В этой статье мы подробно разберем физические принципы ИК-кодирования, специфику обучения пульта длинным пакетам кондиционеров и резервные варианты интеграции через ESPHome и Home Assistant.
Как кодируются ИК-команды: физика процесса
Каждое нажатие кнопки на физическом пульте ДУ генерирует пачку инфракрасных импульсов. Передача кодируется изменением длительности импульсов (Marks) и пауз между ними (Spaces) в микросекундах.
Основные протоколы ИК-связи:
- NEC: Наиболее распространенный протокол (частота модуляции 38 кГц). Команда состоит из стартового импульса (9 мс), паузы (4.5 мс) и 32 бит данных (адрес устройства и код клавиши). Такой короткий код легко считывается и воспроизводится пультом Яндекса.
- RC5/RC6: Протоколы компании Philips. Используют манчестерское кодирование, где бит информации определяется направлением перехода сигнала в середине битового интервала.
- Кондиционеры (протокол Air Conditioner Raw): В отличие от телевизоров, пульты кондиционеров не отправляют одиночные коды кнопок. При нажатии «Температура +» пульт передает массивный пакет данных (до 300 бит), содержащий текущую целевую температуру, режим работы (охлаждение/нагрев), скорость вентилятора, положение жалюзи и таймеры. Пульт Яндекса в режиме ручного обучения не всегда способен корректно записать такой длинный пакет из-за жестких ограничений по длине буфера приема.
Несовместимость частоты модуляции (38 кГц против 56 кГц)
Не все инфракрасные приемники работают на стандартной несущей частоте $38\text{ кГц}$. Некоторые типы оборудования (например, спутниковые ресиверы Pace/Humax, используемые операторами НТВ-Плюс и Триколор, старые аудиоресиверы Pioneer, или приставки кабельного ТВ) используют частоту модуляции $56\text{ кГц}$ (или реже $40\text{ кГц}$ и $455\text{ кГц}$).
- Стандартные передатчики умного пульта Яндекса аппаратно спроектированы под длину волны $940\text{ нм}$ и частоту модуляции $38\text{ кГц}$.
- При попытке обучения пульта сигналу $56\text{ кГц}$ приемный ИК-диод пульта Яндекса может считать код, но запишет его с большими фазовыми искажениями. При последующем воспроизведении этого сигнала приемник спутникового ресивера отфильтрует его как высокочастотный шум.
- В таких случаях ручное обучение встроенными средствами Яндекса невозможно. Решением является использование мультичастотных умных пультов (например, некоторых моделей Broadlink RM4 Pro) или самостоятельная сборка передатчика на ESP32 с использованием ИК-диодов, поддерживающих широкий спектр несущих частот.
Проблемы при обучении ИК-пульта Яндекса
Во время записи кастомных команд пользователи часто сталкиваются с ошибками считывания. Главные причины:
- Люминесцентные и светодиодные лампы: Драйверы дешевых ламп пульсируют на частотах 30–50 кГц. Эти пульсации забивают фотоприемник пульта Яндекса помехами, искажая считываемый код оригинального пульта.
- Слишком долгое удержание кнопки: Если удерживать кнопку оригинального пульта дольше 0.5 секунды, он начинает передавать циклическую команду повтора (Repeat Code). Пульт Яндекса запишет этот повтор вместо основного кода, и в результате команда не выполнится или выполнится некорректно.
Создание сложных сценариев с кастомными командами в Алисе
После того как все необходимые кнопки добавлены в качестве кастомных пультов в приложении «Дом с Алисой», их можно объединять в сквозные автоматизации. Например, для сценария «Алиса, включи домашний кинотеатр» можно настроить последовательный запуск:
- Запуск кастомной кнопки «Включить проектор».
- Пауза в сценарии на 5 секунд (время развертывания экрана проектора).
- Отправка команды «Включить AV-ресивер».
- Выбор источника сигнала «HDMI 2» на ресивере через отдельную обученную ИК-команду.
- Установка режима кондиционера на «Бесшумный» с помощью ранее обученного ИК-пакета.
Такая последовательность позволяет реализовать сценарии любой сложности, которые не поддерживаются стандартным голосовым управлением Алисы «из коробки».
Альтернатива: обучение через ESPHome и Home Assistant
Если штатный пульт Яндекса не может обучиться кастомным кодам кондиционера, или вам требуется точечное управление сложным прибором, лучшим техническим решением является использование ИК-передатчика на базе ESP8266/ESP32 под управлением прошивки ESPHome. ESPHome имеет мощный анализатор ИК-сигналов, способный декодировать любые редкие кондиционерные протоколы (Daikin, Mitsubishi, Panasonic).
Пример конфигурации ESPHome для считывания и отправки сырых ИК-команд (raw timings):
remote_receiver:
pin:
number: GPIO14
inverted: true
dump: raw
remote_transmitter:
pin: GPIO12
carrier_frequency: 38kHz
button:
- platform: template
name: "Включить кондиционер кастомно"
on_press:
- remote_transmitter.transmit_raw:
carrier_frequency: 38kHz
code: [8980, -4462, 570, -560, 570, -1670, 570, -560, 570, -560, 570, -1670, 570, -560, 570]
После прошивки платы ESPHome в логах при нажатии кнопки оригинального пульта отобразится точный массив чисел (raw code). Вы можете использовать этот массив для отправки команд. Далее, созданное в Home Assistant устройство (например, переключатель или медиаплеер) пробрасывается в Яндекс Станцию с помощью навыка Yandex Smart Home, обеспечивая 100% стабильность управления.
Инструкция по устранению
Перевод пульта Яндекса в режим обучения
В приложении 'Дом с Алисой' добавьте новое устройство, выберите пульт Яндекса и нажмите кнопку 'Обучить пульт'. Выберите тип создаваемого прибора (ТВ, кондиционер или кастомный пульт).
Считывание ИК-команды с пульта ДУ
Расположите оригинальный пульт от техники напротив умного пульта Яндекса на расстоянии 3–5 см. Нажмите нужную клавишу коротким четким кликом после того, как светодиод на пульте Яндекса начнет мигать.
Проверка записанного сигнала
Направьте умный пульт Яндекса на управляемый прибор и отправьте команду из интерфейса приложения. Если устройство не отреагировало, повторите запись кнопки при выключенном верхнем свете.
Создание сценариев с кастомными кнопками
Назовите записанную кнопку понятным именем на русском языке. Теперь эту команду можно использовать в качестве действия в любых автоматических сценариях Алисы.