Прошивка ИК пульта Tuya — добавляем поддержку MQTT
Процесс прошивки популярного ИК-пульта Tuya Smart Life (купить можно здесь) прошивкой Tasmota, добавляющей поддержку протокола MQTT.
Для выполнения нижеописанных действий понадобится USB-UART/TTL адаптер с уровнями напряжения 3.3v (можно использовать, например, такой).
1. Разбираем устройство (используя гитарный медиатор, аккуратно поддеваем защелки по периметру стыка двух половинок корпуса).
2. Припаиваем провода или 2.54/PLS разъем к UART интерфейсу.
3. Подключаем соответствующие выводы к USB адаптеру.
4. Скачиваем программу Tasmota PyFlasher и файл прошивки sonoff-basic.bin.
5. Прошиваем наш шлюз и перезагружаем его. В итоге, если все сделано правильно, он должен начать раздавать Wi-Fi сеть с названием sonoff-xxxx (где xxxx — цифры). На данном этапе можно уже отключить провода от UART интерфейса и собрать устройство обратно в корпус.
6. Подключаемся к Wi-Fi сети шлюза с помощью мобильника или ноутбука и открываем в браузере адрес http://192.168.4.1/. Здесь необходимо ввести имя и пароль от точки доступа вашего роутера. Дальнейшую работу с шлюзом будем производить уже из вашей домашней Wi-Fi сети (новый IP адрес шлюза можно узнать из админки роутера).
7. Скачиваем файл sonoff-minimal.bin и используя веб-интерфейс шлюза, зашиваем его в устройство.
8. Выполняем тоже самое, но уже с файлом sonoff-ir.bin. Это последний этап прошивки. В дальнейшем, при выходе новых версий, достаточно будет зашивать только этот файл, используя все тот же веб-интерфейс.
9. Осталось только выполнить настройку. Выставляем такие же параметры как на скрине. После прописываем параметры подключения к MQTT серверу.
10. Готово! Реакцию шлюза на команды пульта можно посмотреть в его консоли (находится в веб-интерфейсе). Более подробно о приеме/отправке ИК сигналов можно почитать в официальной вики проекта.
UPD1. Для подключения к MQTT брокеру без авторизации необходимо ввести в консоли следующие команды:
MqttUser 0 MqttPassword 0
UPD2. Для отправки ранее принятого ИК-пакета по каналу MQTT необходимо отправить его в топик cmnd/ir-remote/irsend, где ir-remote - значение %topic% из настроек пульта. Пример пакета данных (команда кнопки включения/выключения для телевизора LG 42LA644V-ZA):
{"Protocol":"NEC","Bits":32,"Data":"0x20DF10EF","DataLSB":"0x04FB08F7","Repeat":0}
Полезные ссылки:
- Официальный GitHub проекта Tasmota
- Фото внутренностей хаба из вики Tasmot`ы
- Статья на Хабре «Кондиционер айтишника. Часть II»
- Обзор пульта на MySKU (клон Gocomma R9)
P.S. С оригинальной прошивкой можно подключить данный хаб к Алисе как родной пульт от Яндекса. Так что подумайте, точно ли вам нужен MQTT?
Обсуждение