Подключение к системе умного дома Home Assistant используя ESPHome кондиционеров типа:
- TCL TAC-07CHSA/TPG / TAC-09CHSA/TPG / TAC-12CHSA/TPG
-
Daichi AIR20AVQ1/AIR20FV1
Статья по проекту находится в моем канале на Дзене
Оригинальный модуль управления работает в закрытой системе TCL Home, используя облако, что обеспечивает как несуразные задержки в передаче коменд, так и просто невозможность использовать сторонее ПО для управления кондиционером. В настоящее время никому так и не удалось перехватить управление оригинальной системой и включиться в процесс, как это было с более ранним вариантом TCLAC.
Очевидный, в данной ситуации, способ управления кондиционером сторонним ПО- напрямую посылать команды в кондиционер, используя последовательную шину, заменив родной WiFi модуль на свой.
Родной модуль устанавливается под верхней крышкой внутреннего блока кондиционера, рядом с датчиком температуры. Подключается модуль через разъем USB Type A, хотя и не имеет интерфеса USB. Вместо него используется последовательная шина с очень специфическим напряжением подтяжки- 4 вольта на передачу и 3 вольта на прием (стандарт либо 5 вольт, либо 3.3 вольта). Впрочем, это решается использованием цепей на 3.3 вольта, толерантных к 5 вольтам. Кроме особенностей напряжения подтяжки сигналов, питание к модулю подается на контакты, не соответствующие стандарту USB, что чревато для устройств, придерживающихся стандарта. Полагаю, такой ход сделан умышленно.
Сам USB Type A разъем подключен через кабель к разъему CN16 на одной из плат внутреннего блока кондиционера. Около разъема промаркирована последовательность контактов и соответствие сигналов- весьма удобно.
Интерес так же представляет и протокол связи между WiFi модулем и кондиционером- не смотря на некоторую общность с другими моделями кондиционеров TCL, он заметно отличается. Попытки оседлать протокол были сделаны, например, htmltiger, а на основе его работы уже xaxexa. Увы, обе работы демонстрируют неполноценность, в частности, управление кондиционером проходит, в целом, верно, однако не работает управление горизонтальными шторками, которые при любой команде просто уходят до упора влево, отсутствуют полезные функции и т.п.
Особо печально, что в целом, хорошие программисты не смогли правильно разобрать протокол связи и, видимо, забросили работу над проектами. Впрочем, возможно, для иных кондиционеров их имплементация протокола подходящая, не могу сбрасывать это со счетов.
Я- не программист, потому, разобрав протокол в области интересующих меня моментов, я написал/переписал текст конфигурационного файла для ESPHome и кода на этом вашем Си как сумел, однако, реализовав недостающие, на мой взгляд, функции.
Итак, функционал:
- Режимы работы кондиционера
- Режимы работы вентилятора внутреннего блока
- Задание уставки температуры и отображение температуры с внутреннего датчика
- Качание вертикальной, горизонтальной и обеих шторок сразу
- Выведение вертикальной, горизонтальной или обеих сразу шторок в заданную позицию
- Включение/отключение подтверждающего звукового сигнала
- Включение/отключение индикатора уставки температуры на внутреннем блоке кондиционера
- Включение/отключение светодиодной индикации на модуле связи обмена данными с кондиционером
И эдак, известные косяки:
- При отключении индикатора уставки кондиционер уходит в автоматический режим без возможности смены. Все прочее продолжает работать (вероятно, не является косяком как таковым, а, скорее, особенностью работы самого кондиционера, надо глубже разбираться)
- Не считывается состояние индикатора и пищалки, состояние переписывается принудительно при подачи команд из Home Assistant (вытекает отчасти из предыдущего пункта)
- Не считывается состояние заслонок- выбранные режимы качания и фиксации.
Описание
Подключение кондиционеров TCL типа TCL-TAC07CHSA к системе умного дома Home Assistant используя ESPHome