Найти в Дзене
Smart Home 53

Шлюз Xiaomi lumi.gateway.mieu01 получаем root и устанавливаем OpenWrt

Пришла пора разобрать свой шлюз, посмотреть, как там все устроено, и перепрошить его на альтернативную прошивку.
Оглавление

Еще в сентябре 2020 года очень удачно приобрел пару наборов “Датчиков безопасности Mi”. Первый набор обошелся в 2000 рублей, а второй получилось забрать за 1000 рублей. И датчики из этих наборов очень быстро разошлись по моему “умному дому”.

В наборах нетронутыми лежали лишь европейские zigbee шлюзы от xiaomi. Интегрировать штатными средствами в Home assistant с пробросом zigbee устройств их было нельзя, поэтому они на время остались лежать в коробках. Массовые распродажи таких наборов сильно подстегнули энтузиастов к взлому и прошивке этих шлюзов на альтернативное программное обеспечение. Самый распространенный на данный момент проект это https://openlumi.github.io/ и соответствующий телеграмм-чат.

Пришла пора разобрать свой шлюз, посмотреть, как там все устроено, и перепрошить его на альтернативную прошивку.

Разборка и внешний вид

-2

Вот так выглядит шлюз с его “лицевой стороны”.

-3

С обратной стороны нас встречает европейская вилка, наклейка с моделью и надписью “Сделано в Китае”. Насколько мне известно, для перепрошивки устройства в первый раз его в любом случае придется разобрать и использовать паяльник. Для того чтобы вскрыть устройство, необходимо удалить три матовые резиновые заглушки.

-4

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

-5

Аккуратно снимая верхнюю крышку, нужно не забыть отсоединить разъем динамика и две антенны, нижняя часть так же легко снимается. У нас в руках остается бутерброд из двух плат.

-6

Верхняя - непосредственно та, что нас интересует, тут находится модуль wifi и zigbee и вся логическая часть.

-7

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

Платы можно отделить друг от друга, вот как они выглядят с других сторон.

-8

На блоке питания заметны невооруженным глазом светодиоды, которые отвечают за декоративную и информационную подсветку шлюза.

Получаем root права

Для прошивки нам понадобится USB UART TTL адаптер, программа putty и припаять провода к контактам на плате шлюза.

-9

Куда припаивать контакты понятно из официальной документации проекта openlumi, изображение прикрепляю ниже.

Фото с официальной документации проекта.
Фото с официальной документации проекта.

На USB-UART адаптер нужно подключить другие концы этих проводов, а самого его подключить в USB порт вашего компьютера, шлюз при этом должен быть пока обесточен. А теперь начнем с получением root прав.

Открываем putty и выбираем Serial и скорость в 115200. Номер COM порта нужно посмотреть в диспетчере устройств, в моем случае это COM16.

-11

Далее нажимаем Open. Теперь необходимо наконец подать питание на шлюз или вставить его в розетку. Если все сделать правильно, в консоле появится куча текста во время загрузки шлюза. Прямо в это время нужно нажать любую клавишу, чтобы остановить загрузку шлюза. Не успели? Ничего страшного, отключаем шлюз от питания, подключаем заново и пробуем еще раз. Когда все получится, в консоли вы увидите символ =>

-12

Теперь начнем вводить команды.

setenv bootargs "${bootargs} single rw init=/bin/bash" && boot

После загрузится bash и нужно будет сменить пароль на root:

passwd

Необходимо ввести пароль два раза, но можно оставить его пустым, тогда просто нажмите Enter для подтверждения пустого пароля столько раз, сколько это потребуется.

-13

Теперь у нас есть root права на шлюзе. Необходимо разрешить к нему доступ по ssh. Для этого открываем файл etc/rc.local.

nano /etc/rc.local

Находим в нем в конце строку /home/root/fac/fac_test

И перед ней вставляем строку

/etc/init.d/dropbear start &

После перезагрузки у шлюза будет открыт ssh на 22 порту. Если он ранее был подключен к wi-fi (настроено через mihome, то при подключении увидим следующий результат:

-14

Делаем резервную копию родной прошивки

Чтобы сделать резервную к опию через s sh впишем команду

tar -cvpzf /tmp/lumi_stock.tar.gz -C / . --exclude='./tmp/*' --exclude='./proc/*' --exclude='./sys/*'

После того, как процесс копирования завершится, резервную копию нужно сохранить себе на компьютер. Для этого можно воспользоваться утилитой scp. Я это делал на raspberry pi, как это сделать на windows - нужно разобраться.

Итак, на другом linux компьютере пишем.

scp root@*GATEWAY_IP*:/tmp/lumi_stock.tar.gz .

Где GATEWAY_IP - ip адрес вашего европейского zigbee шлюза.

Устанавливаем OpenWRT

Теперь приступим к виновнице торжества. Устанавливаем OpenWRT одной командой.

echo -e "GET /openlumi/owrt-installer/main/install.sh HTTP/1.0\nHost: raw.githubusercontent.com\n" | openssl s_client -quiet -connect raw.githubusercontent.com:443 2>/dev/null | sed '1,/^\r$/d' | bash

-15

Прошивка займет несколько минут, подключение ssh отвалится и это нормально. После успешной прошивки шлюз поднимает wi-fi сеть с именем OpenWrt и без пароля. При подключении к шлюзу по ip адресу http://192.168.1.1/ будет доступен web интерфейс. Учетная запись root без пароля.

Далее в интерфейсе нужно настроить подключение к вашему wi-fi роутеру, что также достаточно подробно описано в документации.

Остановимся пока на этом. Теперь европейский шлюз xiaomi lumi.gateway.mieu01 отвязан от китайских облаков, но пока ничего не может, кроме того, что подключаться к вашему wi-fi. Далее на него можно установить zigbee2mqtt, Zesp32, Homeassistant и ZHA компонент для работы с zigbee, Domoticz, Node Red и программное обеспечение для управления подсветкой и динамиком шлюза. Также в шлюзе есть bluetooth, его можно прошить как роутер для zigbee сетей. Возможностей много, и все они не поместятся в одну статью. Поэтому подписывайтесь на канал, чтобы не пропустить новые материалы.

А как бы вы использовали данный шлюз? Какой бы софт установили?

#умный дом #home assistant #xiaomi #xiaomi #zesp #zigbee #openwrt #openlumi #технологии #интернет вещей