СОДЕРЖАНИЕ

"Кондиционер айтишника", моя версия

18.08.2024

Длинная и печальная история настройки устройства "Яндекс-Пульт" для управление климатом.

Статья является отчётом о проделанной работе по следам https://habr.com/ru/articles/473680/

Решил я попробовать пройти путь за "avstepanov" и немного задокументировать свои успехи. Его статья показывает как всё может быть просто! И я понял, что мне нужно именно так просто.

Немного забегая вперёд скажу, что на это "просто" у меня ушло какое-то неимоверное количество времени. И пару раз я уже был готов сдаться окончательно. Но финал моей статьи тоже будет радостным! И рекомендую листать сразу к финалу…

Началась вся история с того, что для реализации очередного проекта умного дома мне понадобилось управление кондиционерами. Все предыдущие разы я решал эту задачу с помощью старого, проверенного средства Zennio IRSC. Устройство себя прекрасно зарекомендовало, самые старые монтажи были больше 14 лет назад и никаких сложностей за это время с ними не было.

Но на 2024 год – есть проблема. Устройство Zennio IRSC можно купить не дешевле, чем за 200 EUR. По текущему курсу это больше 16 000 рублей. Да и то это цены не в России. А в России всё и того хуже.

Но когда в проекте уже есть KNX-инфраструктура – всё немного проще. А вот если KNX нужен только для управления кондиционерами, то становится как-то слишком кучеряво. Для нормального подключения Zennio IRSC нужно ещё к нему в комплекте доставить IP Router (99014 рублей) и блок питания (43470 рублей). Короче, для того, чтобы управлять 5 кондиционерами – бюджет мероприятия получается около 300 тысяч рублей. Понятно, что можно найти всё это немного дешевле, но чуда не случится. 100-200 тысяч потратить точно придётся. И это не вариант.

Поэтому будем двигаться по максимально бюджетному пути. Хотя нет. Максимально бюджетный – это купить модуль ESP и просто подключить к нему диоды. Так делать не хотелось, поскольку итоговый результат слишком плохо выглядит. Нужно что-то чуть менее бюджетное.

Заказал себе на пробу один Яндекс-Пульт (YNDX-0006) на OZON и приступил к экспериментам.

Для начала я его открыл. Крышка прикреплена к корпусу на защёлках, поэтому чем-то тонким и пластиковым проходим по кругу под крышкой, и она открывается.

Дальше стало понятно, что моя модель полностью совпадает с моделью, которую обозревал avstepanov. Это хороший знак. Значит шансы есть.

Моя версия Яндекс-Пульт.

Версия Яндекс-Пульт от avstepanov. Найдите, как говорится, 10 отличий.

Для начала я решил обновить прошивку без пайки. Я хотел поставить для начала около 10 подобных модулей и очень не хотелось 10 раз что-то паять. Возни слишком много. Поэтому для начала я попробовал обойтись утилитой прошивки OTA.

https://github.com/ct-Open-Source/tuya-convert

Она упоминается во всех статьях, где люди собирались перепрошивать tuya-модули. Опущу описание возни вокруг этой утилиты… Я убил на неё в разных вариациях около двух часов. Скажу сразу финал – в 2024 году ни один из Tuya-модулей купленных в магазине – данной утилитой не прошивается. Если у вас откуда-то завалялся дико старый модуль, то, наверное, шанс есть. А так – нет.

Припаялся я к выходам, любезно оставленным производителем. И заодно закоротил GPIO прямо на самой микросхеме. Это я, кстати, сделал зря – порт на лицевой части с названием I00 вёл как раз туда же, поэтому можно было сделать проще. Но это я понял немного позже.

Подключил всё это к USB2Serial конвертеру и начал прошивать.

И, конечно же, ничего у меня почему-то не вышло.

Вообще, ни разу ещё ничего хорошего у меня не получалось с Tuya-устройствами. Они всегда подкупают своей дешевизной, но попытки с ними сделать что-то, что не заложил туда сам производитель – всегда даются с какой-то болью. Это далеко не первое устройство, которое мне сразу не далось.

Дальше было много разных экспериментов. И подача внешнего питания, и перебор программ для прошивки, и перебор компьютеров для прошивки, сбор всей схемы на breadboard, короче часов 5 на это ушло легко.

Ничего не шьётся. Модуль полностью мёртвый. Но если включить его в том виде, как его задумал производитель – с ним всё прекрасно! Ну, значит, я его хотя бы не сжёг…

И тут… И тут я заметил, что основная плата управления (которая с ESP-модулем) имеет другую маркировку! В статье avstepanov это модуль TYWE3S.

А в моём устройстве это CB3S. Я было подумал что это не имеет значения – какая разница-то, если сама плата устройства та же самая? Но немного поискав в сети я обнаружил, что это какой-то принципиально другой модуль. Настолько другой, что прошивка tasmota его не поддерживает даже теоретически! И всё что я делал – не имело смысла.

Да больше того – у этого модуля даже pinout другой! И для его прошивки требуется совершенно другая последовательность действий. И другая программа прошивки. Вот это я удивился.

Сдаваться не хотелось и я продолжил.

Вот здесь https://mysku.club/blog/aliexpress/99292.html добрый человек уже научился прошивать CB3S. И в общем достаточно внятно расписал что нужно сделать. Подтверждаю, что эта последовательность действий работает. Из нюансов – да, для начала прошивки модуля нужно подать кратковременную GND на ногу ENABLE. И вдобавок – для прошивки моего модуля потребовалось внешнее питание (вполне подошло то, которое делал сам "пульт"). В остальном со второй-третьей попытки модуль прошился и показал, что он теперь не Tuya, а OpenBeken!

Что такое OpenBeken (Open Beken?) – я не знаю. Начал смотреть, пытаться разобраться. Что-то сложное. Очень похоже на какой-то геморрой. Насколько tasmota проста и лаконична, настолько же здесь было ничего не понятно. Но с какими-то матами я смог подобрать нужные пины для IR receiver, и это чудо-пульт наконец принял свой первый IR-сигнал.

Принять он его, конечно принял. Но расшифровывать он его не стал. Отдал в двоичном виде и сказал, чтобы я делал с ним всё, что мне заблагорассудится. Но и к этому я был теоретически уже готов. Но когда я с пульта управления кондиционером стал подавать последовательные сигналы с изменением температуры, и когда я увидел что двоичный код, получаемый на приёмнике никак не отличается при изменении этой "температуры" – я признал мысль о том, что здесь ловить нечего. Немного поисков в сети не дали никаких результатов. Это был идеологический тупик. Дальше делать было нечего.

Что же предпринять? Значит нужно как-то найти "умный пульт", который будет собран на старой управляющей плате TYWE3S!

Попробовал на ozon что-то поискать. Но, конечно же, в описании устройства для обычного пользователя – никто не будет писать модель управляющей платы. Ладно, будем пробовать перебором.

https://www.ozon.ru/product/infrakrasnyy-pult-distantsionnogo-upravleniya-tuya-umnyy-dom-umnyy-pult-1416098402/

Интересный пульт. В нём основную микросхему сразу распаяли на плате. Это, наверное, даже логичнее.

Мест для прошивки не оставили совсем. Ну да мне и не нужно – на микросхеме написано BK3271N. Это название я уже запомнил – оно как раз из проекта Open Beken. Так что это снова не тот модуль.

https://www.ozon.ru/product/umnyy-ik-pult-hiper-iot-ir-v2-1338766891/

Интересная модель... Но внутри тот же самый CB3S. Снова мимо.

Не понятно – где искать дальше? И зачем мне склад нелепых разломанных пультов на CB3S?

И тут я наткнулся на комментарий Iamnotauser, https://mysku.club/blog/aliexpress/78336.html#comment4066031, который рассказывает о том, что вообще с Hiper IoT IR2 – всё должно быть нормально, на самом деле. И там должен быть TYWE3S…

Где-то тут меня начало переклинивать и я начал пытаться понять – есть ли отличие "Hiper IoT IR v2", который я купил на озоне, от "Hiper IoT IR2"? Понять толком не удалось, но упаковки у них разные…

IR2 выглядит так.

И продаётся в МВидео.

https://www.mvideo.ru/products/universalnyi-umnyi-pult-hiper-iot-ir-2-hi-ir2-50134864

Это скриншот со страницы товара.

А IRv2, который я купил, выглядит так.

Может быть это знак? Знак того, что в МВидео завалялись старые версии? Те ещё барахольщики…

Ладно, попробую купить там, посмотреть.

Приехала. Из МВидео. Всё равно IRv2, вместо IR2.

Но при этом упаковка другая. И другой номер модели… P/N HP22010000ST, против HP2306000LMD, который был в версии из ozon (которую я уже выкинул). Может случится чудо?

И чудо случилось!!! Внутри этого барахла оказался TYWE3S.

Ну ладно, хотя бы что-то. Хоть какое-то движение вперёд. Начну прошивать. Посмотрим, как дело пойдёт на этот раз.

И дело… не пошло. Три часа я пытался прошить этот модуль. Что я только не пытался сделать, как я не пытался лучше или хуже перепаять контакты, подать внешнее питание, внутреннее. Ничего. Не шьётся и всё тут.

Уже почти сдавшись и приготовившись идти покупать Zennio IRSC, я решил попробовать заменить Serial TTL converter на другой. До этого я шился с помощью HW-597 (на базе CH340G), который (вроде как) считается лучшим. Да и CB3S им нормально прошился…

Но от безысходности решил попробовать другой. Взял CP2102. И… И всё прошилось с первой попытки. Я даже не поверил в это. Перепрошил ещё раз. Ещё раз. Всё заработало. Я не знаю что это было. Но здесь я об этом написал хотя бы для того, чтобы в следующий раз начать сразу с CP2102.

Прошилось. Да, теперь было всё просто, по изначальной инструкции от avstepanov. Добавлю, что в таком варианте прошивки мне даже не понадобилось внешнее питание. Питания TTL converter вполне оказалось достаточно.

Паяемся напрямую к модулю вот по этой схеме и дальше всё случается само собой.

Ну а дальше? А дальше простая и понятная tamota-ir.bin цепляется на mqtt-сервер, и без какой-то помощи начинает туда передавать более чем адекватные команды с IR-приёмника с пульта кондиционера GREE. Выглядит приблизительно так:

{ "IrReceived" : { "Data" : "0x39066050062000B0", "Repeat" : 0, "IRHVAC" : { "iFeel" : "Off", "Turbo" : "Off", "Celsius" : "On", "FanSpeed" : "Max", "Light" : "On", "SwingV" : "Lowest", "Vendor" : "GREE", "Mode" : "Cool", "Clean" : "Off", "Command" : "Control", "SwingH" : "Off", "Filter" : "Off", "Beep" : "Off", "SensorTemp" : null, "Econo" : "Off", "Quiet" : "Off", "Sleep" : -1, "Model" : "YAW1F", "Temp" : 22, "Power" : "On" }, "Bits" : 64, "Protocol" : "GREE" } }

А для того, чтобы что-то послать в кондиционер – даём команду похожую на это:

send_mqtt_message.pl "dirty:tasmota/tasmota_F7D397/cmnd/irhvac" '{"Vendor":"GREE","Model":"YAW1F","Command":"Control","Mode":"Cool","Power":"On","Celsius":"On","Temp":20,"FanSpeed":"Max","SwingV":"High","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"On","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}'

И о чудо! Кондиционер включается и делает именно то, что написано в команде.

Осталось сделать нормальное внешнее питание для пульта "Hiper IoT IR v2", и пожелать ему долгой и счастливой жизни.

DC-DC converter 12 -> 5VDC, плюс магнит для фиксации.