Проекты
У техногиков обычным делом считается купить умное устройство, вскрыть корпус, подпаяться к плате и…
У техногиков обычным делом считается купить умное устройство, вскрыть корпус, подпаяться к плате и залить на устройство собственную прошивку. И их логика понятна - получить от устройства лучший пользовательский опыт, чем предусмотрел производитель.

ПроектыHome Assistant
У техногиков обычным делом считается купить умное устройство, вскрыть корпус, подпаяться к плате и залить на устройство собственную прошивку. И их логика понятна - получить от устройства лучший пользовательский опыт, чем предусмотрел производитель.
Я же в своих проектах стремлюсь избавить пользователей от этого неприятного шага. SonoffLAN, YandexStation, go2rtc - всё работает с оригинальными прошивками устройств и не требует паяльника. А вот с XiaomiGateway3 вышла довольно затяжная борьба.
Хаб Xiaomi Multimode Gateway начал продаваться в Китае и на Али в далёком 2019 году.
В первых версиях прошивки была возможность открыть доступ к консоли шлюза через обычный протокол Xiaomi, который есть почти на каждом WiFi-устройстве этой фирмы. Команда называлась банально - enable_telnet_service. В июне 2020 года @serrj-sv опубликовал её на форуме HA.
И это была просто находка для любопытного исследователя. Полный доступ к операционной системе нового, универсального и довольно бюджетного устройства. Я тут же заказал шлюз из Китая и уже в августе 2020 выпустил первую версию интеграции для HA. Никаких паяльников и прошивок, всё работает "из коробки".
В ноябре 2020 года вышла европейская версия хаба, из прошивки которой заветную команду удалили. Новые владельцы не могли пользоваться интеграцией.
Через считанные дни тот же @serrj-sv выпустил инструкцию по смене прошивки шлюза через UART. Наступила эра "паяльника", но зато интеграция была снова в строю.
Ещё через пару месяцев в сообществе опубликовали способ выполнить любую команду на шлюзе через дыру в команде настройки WiFi - set_ip_info. Просто указываем определённый набор символов вместо пароля, и у нас снова есть доступ к консоли без всяких паяльников и прошивок!
В июле 2022 года выходит новая версия шлюза - Xiaomi Multimode Gateway 2. В ней всё ещё есть дыра в команде настройки WiFi. Интеграция не теряет актуальности и поддерживает всё больше и больше устройств.
Во второй половине 2023 года компания Xiaomi выпустила обновления прошивок, в которых закрыла заветную дыру. Но мы были к этому готовы! Xiaomi оставила легальный способ выполнить произвольную консольную команду - system_command. Для этого требовался секретный ключ, который хранился в памяти шлюза. Интеграция заранее скачивала этот ключ, пока шлюз работал на "дырявой" прошивке, и использовала его после обновления.
Проблема была только у владельцев, купивших шлюзы уже с новой версией прошивки. Без доступа к памяти ключ получить нельзя. Через какое-то время появились инструкции, как с помощью UART вычитать заветный ключ из памяти обеих версий шлюза. Мы во второй раз вернулись в эру "паяльника".
И вот вчера @oliver-mee нашёл очередную дыру в прошивке шлюза. С помощью команды сбора логов async_device_feedback_log можно скачать со шлюза любые файлы, в том числе и тот, в котором хранится ключ. К сожалению, эта дыра есть только во второй (квадратной) версии шлюза. На первой (круглой) она не работает.
Новая версия интеграции уже всё умеет. Покупаете шлюз, вводите логин/пароль от Xiaomi, и всё работает, без паяльников и смс.
https://github.com/AlexxIT/XiaomiGateway3/releases/tag/v4.3.0