У себя в закрома нашел давно валяющиеся без дела умный пульт от Яндекса YNDX-0006, решил его задействовать в умном доме. Это устройство работает через WIFI и облако, я стараюсь не использовать устройства зависящие от облаков. Решил перепрошить его.
Первым делом подключил к компьютеру по USB, но устройство никак не определилось, тогда на тыльной стороне всячески понажимал на кнопку - безрезультатно. Решил разобрать.
Разбор
У YNDX-0006 несколько ревизий.
Пульт состоит из двух половинок на защелках, пластиковой лопаткой проходимся по периметру и располовиниваем.

Внутри нас встречает аккуратная плата с минимум элементов - основной чип это esp8266, флеш память 25q80csig, россыпь IR передатчиков, один IR приёмник и LED рядом с USB.
Детали ближе

Рядом с флеш памятью есть пятачки RX TX - можно было к ним подпаяться, но решил не мучаться с поиском и замыканием ножек (для перехода в режим прошивки), тем более, у меня в наличии есть народный программатор ch341a, им и решил шить "через прищепку".
Прошивка
Обесточиваем пульт, прищепкой цепляемся к флеш памяти (точка на микросхеме это первая нога - на прищепке это красный проводник)
Прищепка в деле

Первым делом сохраняем оригинальную прошивку, я пользовался программой NeoProgrammer - утилита определила чип (может не с первого раза, нужно осторожно переставить прищепку).

Считываем прошивку, потом нажимаем "Сравнить" и сохраняем в виде файла (если захотим вернуться на прошивку от яндекс).
Теперь необходимо сгенерить прошивку "пустышку" EspHome для нашего чипа ESP8266. Запускаем одноименной аддон в HomeAssistant и добавляем новое устройство.
Добавление нового устройства, генерация прошивки



Важно. Создать файл secrets.yaml c ssid и паролем к вашему 2.4 wifi - он будет зашит в прошивку.
Дожидаемся компиляция прошивки в формате bin, выбираем Manual download и скачиваем прошивку на диск. Заливаем новую прошивку программатором на пульт. Отключаем прищепку и подключаем питание через USB. Через сек 10 новое EspHome устройство должно отобразится в списке со статусом Online.

Все, устройство полностью в нашем распоряжении. Это полноценный ES8266 с одним мегабайтом флеш памяти и подпаянными IR приемником и передатчиком и светодиодом. Необходимо определить на каких пинах они сидят.
После прошивки через прищепку, остальные заливки происходят через ОТА по Wifi
Определение пинов
Выписал себе список всех GPIO esp8266, исключив оттуда UART и специфические ножки, написал мини прошивку, для считывания сигналов, отправки и миганием светодиодом. И волшебным методом перебора стал искать пины.
Тестовая прошивка для поиска GPIO
esphome:
  name: yandex-ir
  friendly_name: yandex IR
esp8266:
  board: esp01_1m
# ИК-приёмник
remote_receiver:
  pin: GPIO5  # <-сначала менял это знаение
  dump: raw   # Вывод всех ИК-сигналов в лог
# ИК-передатчик
remote_transmitter:
  pin: GPIO14 # <-потом это знаение
  carrier_duty_percent: 50%  # Рабочий цикл
# Пример для отправки сигнала 
button:
  - platform: template
    name: "Send IR Code"
    on_press:
      - remote_transmitter.transmit_raw:
          code: [1000, -1000, 1000, -1000, 1000, -1000, 1000, -1000, 1000, -1000, 1000, -1000, 1000, -1000, 1000, -1000]  # Длинный RAW-код
          repeat:
            times: 5  # Повторить 25 раз для заметности
            wait_time: 100ms  # Пауза между повторами
output:
  - platform: gpio
    pin: GPIO4  # <-потом это
    id: led_output
interval:
   - interval: 500ms
     then:
       - lambda: |-
           static bool led_state = false;
           led_state = !led_state;
           if (led_state)
             id(led_output).turn_on();
           else
             id(led_output).turn_off();
# Enable logging
logger:
# Enable Home Assistant API
api:
  encryption:
    key: "КОД_СГЕНЕРЕННЫЙ_ПРИ_ГЕНЕРАЦИИ_ПРОШИВКИ"
ota:
  - platform: esphome
    password: "КОД_СГЕНЕРЕННЫЙ_ПРИ_ГЕНЕРАЦИИ_ПРОШИВКИ"
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Yandex-Ir Fallback Hotspot"
    password: "КОД_СГЕНЕРЕННЫЙ_ПРИ_ГЕНЕРАЦИИ_ПРОШИВКИ"
captive_portal:
    Приемник искал выводом дампа данных и направляя пульт от кондиционера и нажимая кнопки; прошивал новую версию меняя GPIO у remote_receiver - пока не поймал данные в логе, им оказался GPIO5, для передатчика написал длинную последовательность сигналов и установил повтор и использовал камеру телефона чтобы увидеть свечение диодов, нашел передатчик это GPIO14 

И самое простое было найти белый светодиод рядом с USB разъемом это GPIO4
Универсальная прошивка
Можно припаять, например, универсальный датчик влажности, температуры, давления BME280 к пинам I2C чипа, проделать отверстие и, кроме универсального пульта, получить погодную станцию для квартиры.
После этого написал универсальную прошивку для пульта (которая явно требует доработки). Я решил не использовать встроенную поддержку remote_receiver и remote_transmitter, а написал свою внешнюю компоненту для использования более универсальной библиотеки IRremoteESP8266 (в ней больше протоколов).
Получился универсальный пульт, который работает в двух режимах: по умолчанию режим отправки сырых данных через сервис HA с указанием протокола - теперь можно эмулировать (наверно) все пульты.

При переключении Learning Mode включается Led светодиод на пульте и начинает работать IR приёмник и декодированные сигналы писать в текстовый сенсор IR Decoded.

Код универсальной прошивки тут.
Нужно скопировать папку ir_controller в /homeassistant/esphome/components, а содержимое yandex-ir.yaml  внутрь своей прошивки (yaml) с сохранением своих password
Я задействовал YNDX-0006 в этом проекте.
Комментарии (12)
 - otchgol16.06.2025 10:34- А оригинальная прошивка нигде не выложена?  - almirus Автор16.06.2025 10:34- Нет, так как прошивка содержит ключ для подключения к API сервиса и логин пароль к wifi (открытым текстом) ¯\_(ツ)_/¯ 
  - NutsUnderline16.06.2025 10:34- яндекситы любителей прошивок называют нехорошими словами и защищаются от этого как могут  - Tomasina16.06.2025 10:34- Судя по легкости манипуляций автора по перепрошивке - не очень-то они и заморачиваются.  - NutsUnderline16.06.2025 10:34- есть свежее видео с php они там доклад делают про это. в более сложных устройствах защита сильнее. и главное - файлик с прошивкой вроде как не лежит на сайте разработчика в отрытом доступе, тем более - в исходниках. - автор прошил совсем другую с 0 и при помощи "лома". Ключи бы он вероятно так просто не выдернул. 
 
 
 
 - ave-131016.06.2025 10:34 - Уважаемый автор, ЧЯДНТ... 
 Лёрнинг мод включается, команды с пульта распознаются...
 А где send_ir_signal?
 Нет возможности отправить команду - almirus Автор16.06.2025 10:34- HA нельзя просто так вывести сенсор для ввода данных, поэтому отправка через сервис: Панель разработчика - Действия - yandex_ir_send_ir_signal, ну и соответственно также в автоматизациях. 
 
 - ave-131016.06.2025 10:34- Огромное, человеческое спасибо! 
 А я пытался найти send_ir_signal через: Панель разработчика -> Состояния... ))
 Я пробовал использовать встроенную поддержку remote_receiver и remote_transmitter, но там совсем скудно с поддержкой оборудования. А эта компонента на IRremoteESP8266 с ходу увидела ВСЕ пульты, которые есть у меня дома. Уверен, что теперь моим кондиционерам, телевизорам, обогревателям и пр. придется подчиняться HA.
 Отличная работа, еще раз спасибо!
 - empenoso16.06.2025 10:34- Немного не по теме вопрос. - Одно время пытался найти устройство которое будет принимать и отправлять команды по 433 МГц для пульта шлагбаума. Такие sonoff выпускают, но там множество ревизий и с последними какая то проблема была купил, но прошить esp так и не смог, уже больше года назад пробовала потом к теме не возвращался. - Может быть кто-то знает какие устройства как базу для работы с 433 МГц?  - almirus Автор16.06.2025 10:34- esp8266 + типа такого https://aliexpress.ru/item/1005007322631857.html - и все тот же EspHome где в тех же remote_receiver и remote_transmitter есть поддержка 433 
 
 
           
 
sintech
А при подключении прищепки и подаче питания программатором, устройство не оживает и не пытается общаться с флеш памятью?
almirus Автор
В данном конкретном случае не оживает, но бывает, например, пытался оживить экран Lytko 103, пока не отпаял, не давал снять\залить прошивку.