1. Название и модель
Репозиторий JanM321/esphome-lg-controller делает проводной пульт для внутренних блоков, которые понимают PREMTB100 или PREMTA200. Список проверенных блоков лежит в wiki репозитория. Облако ThinQ для этого не нужно. Штатный пульт может остаться на шине как второй контроллер, тогда один из них master, второй slave. Датчик комнаты у slave блок игнорирует.
Протокол, который реализован здесь, — 13 байт. Контроллер шлёт статус примерно раз в 20 секунд, блок отвечает своим кадром примерно раз в минуту. Старый протокол из 6 байт — это другой репозиторий, Flameeyes/esphome-lg-pqrcuds0. Скорость около 104 бод. Кабель трёхжильный: красный 12 В, жёлтый сигнал, чёрный земля. Разъём на плате блока — CN-REMO, зелёный JST-XH на три контакта.
Жёлтый провод на GPIO не сажают. Нужен приёмопередатчик LIN без функции TXD Dominant Timeout: длинный бит на 104 бод этот таймаут срывает и портит кадр. Автор ставит TLIN1027DRQ1. Питание 12 В с блока понижают до 3,3 В, у него на плате стоит TSRN 1-2433. Пины в esphome/base.yaml — для этой платы: TX GPIO25, RX GPIO26, у обоих allow_other_uses. На FeatherS3 в комментариях того же файла TX GPIO18 и RX GPIO17. Ревизия платы 20250519, по issue 156, выпущена без конденсатора 22 мкФ на выходе стабилизатора. Ревизия 20270717 этот комментарий уже не повторяет. USB и ногу 3,3 В на FeatherS3 одновременно не соединяют.
GPIO25 и GPIO26 — это стороны ESP на плате автора. К блоку идёт разъём трансивера, не эти ноги.
2. Что даёт перепрошивка
- Климат LG без ThinQ и без писка на каждую команду с телефона
- Температуру комнаты можно подменить сенсором Home Assistant
- Штатный пульт на той же шине остаётся, если выставлены master и slave
3. Что теряется
- Нужна своя плата или повторение схемы, готового донгла в репозитории нет
- Не каждый пункт ThinQ доходит до проводного протокола
- 12 В с CN-REMO на ESP без трансивера и стабилизатора плату убьют
4. Что понадобится
- ESP32 DevKitC, у автора ESP32-DevKitC-32E, либо FeatherS3 на новой плате
- Трансивер LIN без таймаута TXD и понижающий стабилизатор с 12 В
- Кабель JST-XH, автор брал Adafruit 4873
5. Разборка и пины
Программатор USB–UART подключают к модулю, который прошивают, крест-накрест:
- Земля переходника (GND) — на землю платы. Этот провод обязателен.
- TX переходника — на RX модуля. На плате площадка часто подписана RX, RXD или RXD0.
- RX переходника — на TX модуля. На плате это TX, TXD или TXD0.
- Питание логики — 3,3 В. Пять вольт на эти площадки не подают. Если плату уже кормит её блок, линию 3,3 В с переходника не подключают вторым источником.
- Для входа в загрузчик ESP8266 и ESP32 площадку GPIO0 (IO0, BOOT) замыкают на землю и в этот момент подают питание. После старта записи землю с GPIO0 снимают.
Если у этой модели в тексте ниже другие имена площадок, прямой порядок TX–TX или прошивка по USB, делайте как написано там. Общая схема выше — для обычного модульного UART.
Нижнюю крышку внутреннего блока снимают, чтобы дойти до CN-REMO. Красный, жёлтый и чёрный идут на плату контроллера, не на гребёнку ESP. Блок перед этим обесточивают.
6. Прошивка
Готового файла «прошивка именно этой модели» на этом сайте нет. Её собирает ESPHome из текстового конфига YAML: туда входят Wi-Fi, пины и команды второго чипа. Чужой .bin из интернета почти наверняка собран с чужим паролем сети.
Какую программу ставить
- ESPHome Dashboard — дополнение в Home Assistant или программа на компьютере. В ней пишут YAML, нажимают Install, и она сама собирает прошивку. Установка: дополнение для Home Assistant или команда
pip install esphome. - ESPHome Web, сайт web.esphome.io, — загрузчик в браузере Chrome или Edge. Им записывают уже собранный
.binна ESP8266 и ESP32 через USB–UART. На BK72xx он не рассчитан. - esptool — программа Espressif, чтобы снять заводскую копию флеша и записать
.bin, если браузер порт не видит. Репозиторий: espressif/esptool. - ltchiptool — то же самое для чипов Beken BK72xx (модули WB3S, WBR3, CB3S и похожие). ESPHome для них собирается через LibreTiny. Программа: libretiny-eu/ltchiptool, описание платы: компонент bk72xx.
Как собрать конфиг
- В Dashboard нажмите New Device и выберите чип, который стоит на плате: ESP8266, ESP32 или BK72xx. Имя — латиницей, без пробелов.
- Пароль Wi-Fi уберите в файл
secrets.yamlрядом с конфигом. В YAML оставьтеssid: !secret wifi_ssidиpassword: !secret wifi_password. - Блок UART, модель и скорости из раздела ниже вставьте в этот файл. Полный пример, если он длинный, берите по ссылке в источниках внизу страницы, а не из гайда соседней модели.
- Строки
api:иota:оставьте. Безapi:Home Assistant устройство не увидит. Ключ шифрования Dashboard предлагает сам, его потом спросит интеграция ESPHome.
Как залить первый раз
- Подключите USB–UART, как в разделе «Разборка и пины»: земля переходника на землю платы, TX переходника на RX модуля, RX переходника на TX модуля. Логика 3,3 В. Имена площадок на конкретной плате — там же.
- Для ESP8266 и ESP32 замкните GPIO0 (IO0, BOOT) на землю и в этот момент подайте питание. Для BK72xx ltchiptool сам просит перезапустить чип, обычно кратким отключением земли.
- В Dashboard: Install → Plug into this computer, выберите порт переходника. Либо Install → Manual download, сохраните
.binи откройте его на web.esphome.io. Из терминала то же самое делаетesphome run имя-устройства.yaml. - Когда в логе появится IP-адрес, GPIO0 от земли отпустите, провода можно отпаять. Следующие обновления идут по Wi-Fi, пункт OTA, паяльник больше не нужен.
Дальше — только то, чем эта модель отличается от общей схемы.
ESP прошивают по USB до установки в блок. Компонент лежит в esphome/components репозитория. В базовом конфиге сущность sensor.room_temperature — заглушка вместо подстановки из template.yaml. Её заменяют на свой сенсор комнаты. Поля fahrenheit и is_slave_controller в полном файле тоже есть, в короткий фрагмент они не входили.
Базовый конфиг этой модели с карточки или из репозитория компонента. Wi-Fi, пароль и OTA задайте как в общем разделе выше. Пароли из исходника сюда не перенесены.
esp32:
board: esp32dev
framework:
type: esp-idf
logger:
baud_rate: 0
uart:
- id: ac_serial
tx_pin: GPIO25
rx_pin:
number: GPIO26
allow_other_uses: true
baud_rate: 104
external_components:
- source: github://JanM321/esphome-lg-controller/esphome@main
components: [lg_controller]
sensor:
- platform: homeassistant
id: temp_sensor
entity_id: sensor.room_temperature
internal: true
climate:
- platform: lg_controller
name: LG
uart_id: ac_serial
temperature_sensor: temp_sensor
rx_pin:
number: GPIO26
allow_other_uses: true
7. Настройка в Home Assistant
Климат и код ошибки приходят через API. Температура с сенсора HA в протоколе округляется до 0,5 °C, это написано в README.
8. Известные баги и как их обойти
- Жёлтый провод на GPIO
- Трансивер с TXD Dominant Timeout, кадр рвётся
- Пины FeatherS3 вписаны в DevKitC
- USB и 3,3 В на FeatherS3 подключены вместе
9. Источники
- GitHub JanM321/esphome-lg-controller https://github.com/JanM321/esphome-lg-controller
- GitHub esphome/base.yaml https://github.com/JanM321/esphome-lg-controller/blob/main/esphome/base.yaml
- GitHub Протокол 13 байт https://github.com/JanM321/esphome-lg-controller/blob/main/protocol.md