Как сбросить шлюз Xiaomi к заводским настройкам

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Cancel Create

xiaomi-gateway-openwrt / README.md

  • Go to file T
  • Go to line L
  • Copy path
  • Copy permalink

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Cannot retrieve contributors at this time
298 lines (210 sloc) 16 KB

  • Open with Desktop
  • View raw
  • Copy raw contents Copy raw contents Copy raw contents

Copy raw contents

Установка альтернативной прошивки OpenWrt на шлюзы DGNWG05LM и ZHWG11LM

Инструкция относится только к европейской версии шлюза от xiaomi mieu01, с европейской вилкой, а также к версии шлюза от Aqara ZHWG11LM с китайской или европейской вилкой. Для версии xiaomi gateway2 с китайской вилкой DGNWG02LM она не подойдёт, в нём установлены другие аппаратные комплектующие.

Как сбросить Xiaomi до заводских настроек/ Hard reset Xiaomi

Данная инструкция подразумевает, что у вас уже есть доступ ssh к шлюзу. Если вы это не сделали, воспользуйтесь инструкцией

Сделайте резервную копию. Если вы решите вернуться на оригинальную прошивку, для восстановления вам потребуется tar.gz с архивом корневой файловой системы.

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

После того, как бэкап сделается, скачайте его на локальный компьютер

или с помощью программы WinScp в режиме scp (dropbear на шлюзе не поддерживает режим sftp)

Если у вас уже есть образ rootfs сделанный через dd, всё равно сделайте архив. На этапе загрузки образа dd обычно возникают ошибки nand flash или ubifs. Вариант с tar.gz лишён этих недостатков, потому что форматирует флеш перед загрузкой.

Прошивка по воздуху

Это наиболее простой метод, который можно использовать даже через ssh. Он не требует дополнительной пайки но работает только на оригинальной операционной системе.

Убедитесь, что у вас нет лишних архивов во временной папке /tmp, потребуется место для скачивания архивов. Также, шлюз должен быть подключён к интернету.

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

Данная команда завершит все процессы на шлюзе (если у вас оборвётся) сеанс ssh, это ожидаемое поведение. Прошивка занимает несколько минут. По окончанию прошивки, шлюз поднимет открытую сеть OpenWrt. Если это произошло, можно сразу переходить к разделу «Использование OpenWrt»

Если по каким-то причинам, у вас не сработал метод прошивки по воздуху, вы почти всегда можете вернуть к жизни шлюз припаяв usb и uart и прошить через mfgtools

Припаяйте usb + uart

Чтобы провести модификацию прошивки вам потребуется произвести аппаратные модификации, припаять 7 проводов к самому шлюзу

  • 3 провода на usb2uart переходник (вы это делали на этапе получения рута)
  • 4 провода на usb разъём или провод с usb штекером на конце. Достаточно припаять 4 провода, +5v, d+, d- и gnd. ID провод не задействуется Проверьте, что d+ и d- не перепутаны местами, иначе устройство не определится

Распиновка UART и USB на шлюзе

Мы подготовили архив с программой mfgtools для загрузки прощивки на шлюз, а также саму прошивку. В архив включена программа для windows и консольное приложение под linux

Подключите шлюз к компьютеру

Нужно подключить шлюз двумя кабелями к компьютеру. UART и USB. USB на данном этапе не будет определяться в компьютере. Чтобы подключиться к консоли шлюза, для windows используйте программу PuTTY и используйте COM-порт, который появился для usb2uart. Для linux используйте любую терминальную программу, например picocom /dev/ttyUSB0 -b 115200

Перевод в режим загрузки через USB

Для того чтобы перевести в режим прошивки, нужно при старте шлюза в консоли на последовательном порту прервать загрузку uboot нажатием любой кнопки. У вас будет 1 секунда на это. Появится приглашение для команд

Далее в командной строке uboot вам надо ввести

bmode usb

И нажать enter. После этого шлюз перейдёт в режим загрузки по usb и mfgtools сможет обновить разделы в памяти шлюза.

Переход в режим загрузки по USB

В случае если у вас Windows, вам может потребоваться установить драйвера, из папки Drivers.

Mfgtools

В случае windows, у вас откроется окно. Если всё припаяно правильно и драйвера установлены верно, то в строке в программе будет написано HID-compliant device

Нужно нажать кнопку Start для начала прошивки.

Talkback Xiaomi что это такое

После окончания прошивки, когда полоска прогресса дойдёт до конца и станет зелёной, нужно нажать Stop. Если этого не сделать, спустя несколько минут программа начнёт прошивку повторно, и это приведёт к ошибке. Если такое случилось, перезагрузите шлюз и повторите процедуру, начиная перевода шлюза в bmode usb .

Перейдите в папку с прошивкой. Запустите консольную утилиту от суперпользователя

sudo ./mfgtoolcli -p 1

В псевдографическом интерфейсе будут отображаться этапы прошивки

Mfgtools

При подключении шлюза и обнаружении hid устройства, программа сразу начнёт процесс прошивки. Если процесс не пошёл, проверьте, что устройство подключено и определилось в выводе команды dmesg

Следить за этапами прошивки можно также и в консоли вывода самого шлюза. По окончанию прошивки в консоли будет выведено

Update Complete!

Update complete

После этого можно перезагружать шлюз. Вытащите его из розетки и воткните обратно. Иногда, шлюз виснет на финальном этапе. Если в течение 5 минут ничего не происходит, то скорее всего прошивка прошла удачно и можно перезагрузить шлюз.

Не забудьте подключить антенны!

Иначе проблемы с подключением к сети обеспечены

После прошивки шлюз поднимает открытую wifi сеть с именем OpenWrt. Чтобы подключить его уже к своему роутеру, вам нужно подключиться к этой сети и зайти на адрес http://192.168.1.1/

По умолчанию вход на шлюз: логин root без пароля.

Перейдите в раздел Network -> Wireless

Go to Wireless

Нажмите кнопку Scan напротив первого интерфейса radio0 Через несколько секунд вы сможете увидеть список сетей. Найдите вашу сеть и нажмите Join Network

Scan

В появившемся окне отметьте галочку «Replace wireless configuration». Ниже укажите пароль от вашей сети

WiFi password

На следующем экране подтвердите параметры, нажмите кнопку Save.

WiFi password-2

Чтобы правильно применить изменения, нужно отключить точку доступа нажав кнопку «Disable» напротив подключения для второго интерфейса.

Disable AP

Шлюз отключит вас от точки доступа и применит изменения сети. После прошивки меняется mac адрес шлюза, потому ip адрес тоже скорее всего поменяется. Проверьте его в роутере или в самом шлюзе.

На шлюзе предустановлены:

  • Графический интерфейс OpenWrt LuCi на 80 порту http
  • командная утилита для прошивки zigbee модуля jn5169

Не включайте на шлюзе одновременно режимы WiFi AP + Station. Драйвер, который используется в системе не может работать в двух режимах одновременно. Если вы поменяли настройки LuCi и после этого шлюз перестал подключаться к сети, зажмите кнопку на шлюзе на 10 секунд. Он промигает жёлтым цветом 3 раза и перейдёт в режим начальной настройки сети, подняв точку доступа AP

Работа с Zigbee

Модуль Zigbee может работать только с одной из систем, потому вам нужно выбрать, какую из программ вы будете использовать. В то же время, можно использовать, например zigbee2mqtt для работы с zigbee и domoticz для других автоматизаций.

  1. Установка Zigbee2mqtt
  2. Установка Zesp32
  3. Установка Domoticz и настройка плагина zigate

Сброс на заводские настройки

Чтобы сбросить все данные на прошивке OpenWrt и вернуться на этап начальной установки (как будто вы только что прошили шлюз), нужно зажать кнопку на 20 секунд. Шлюз промигает красным 3 раза и вернётся к начальной настройке с поднятием точки доступа. Будьте аккуратны со сбросом настроек, все программы и настройки будут стёрты. Используйте его в крайнем случае, когда сброс сети и дальнейшая настройка не помогает.

Возврат на стоковую прошивку

Для возврата на родную прошивку нужно прошить оригинальные ядро, dtb и файловую систему из резервной копии. Ядро и dtb одинаковые на все прошивки, а для работы оригинального приложения xiaomi вам потребуется бекап.

Положите свой бекап с именем lumi_stock.tar.gz в папку Profiles/Linux/OS Firmware/files поверх пустого файла lumi_stock.tar.gz

Дальше переведите шлюз в режим загрузки по usb и через mfgtools прошейте оригинальную прошивку.

gateway_pinout_gpio

opkg update opkg install gpioctl-sysfs opkg install kmod-spi-gpio opkg install kmod-spi-dev opkg install kmod-spi-gpio-custom
echo «69» > /sys/class/gpio/export echo «70» > /sys/class/gpio/export echo «out» > /sys/class/gpio/gpio69/direction echo «out» > /sys/class/gpio/gpio70/direction echo «1» > /sys/class/gpio/gpio70/value echo «0» > /sys/class/gpio/gpio70/value

Номера GPIO в системе. номера контактов начинаются с нижнего на фото и продолжаются вверх. DOWN и UP значит куда подтяжка. Down к GND, UP — 3.3v

№ п/п PULL GPIO
2 DOWN 69
1 DOWN 70
14 DOWN 71
15 DOWN 72
16 UP 73
4 DOWN 74
3 DOWN 75
17 UP 76
6 DOWN 77
5 DOWN 78
18 DOWN 79
20 UP 80
19 DOWN 81
8 DOWN 82
7 DOWN 83
22 DOWN 84
21 DOWN 85
10 DOWN 86
9 DOWN 87
24 DOWN 88
23 DOWN 89
12 DOWN 90
11 DOWN 91
13 DOWN 92
  1. Статья, которая подробно описывает изменения технические модификации: Xiaomi Gateway (eu version — Lumi.gateway.mieu01 ) Hacked
  2. Сборник информации по аппаратному и програмному модингу Xiaomi Gateway https://github.com/T-REX-XP/XiaomiGatewayHack
  3. Телеграм канал с обсуждением модификаций https://t.me/xiaomi_gw_hack
Global и ростест отличия Xiaomi телефон

Источник: github.com

Обновляем шлюз Xiaomi

У меня, собственно, как и у многих, знакомство с zigbee началось именно с шлюза Xiaomi, нескольких кнопок и датчиков. При всех его плюсах быстро обнаружились и недостатки, невозможность добавлять в сеть устройства других производителей, привязка к китайскому облаку и т.д. Поэтому появилась идея сделать модернизацию шлюза, в попытке избавить его от недостатков.

Разборка шлюза не составляет особых проблем при наличии специального инструмента (можно использовать отвертку с прямым шлицем, в котором надо сделать пропил)

Разобранный шлюз выглядит так. Видно две платы, одна с блоком питания и светодиодами, вторая с модулем WiFi+процессор от Marvell, за zigbee отвечает JN5169. Ее и будем менять.

В основе новой схемы лежит модуль ESP32-Wrover-B, со стороны zigbee предусмотрен выбор из нескольких готовых модулей, СС2538+СС2592, E75-2G4M10S, E75-2G4M20S, E18-MS1PA1-PCB. На плате разведен USB-UART на CH340E, который можно использовать как для прошивки ESP32, так и для взаимодействия с модулями zigbee напрямую, выбор осуществляется распайкой перемычек.

Так же на плате есть аудио усилитель SSM2211 для использования штатного динамика. Для построения шлюза в минимальной конфигурации, достаточно распаять только ESP32 и модуль zigbee, прошивку ESP32 можно осуществить внешним USB-UART адаптером через соответствующий разъем. Для прошивки модулей необходимы cc-debugger SmartRF04EB для СС2530 и JTAG программатор для СС2538 Плату проектировал в EasyEDAЗаказывал на jlcpcb (5 плат с доставкой $8)Примерка, с размерами нет проблем.Все направляющие и защелки на своих местах.Первая встреча с оригиналомМожно приступать к пайкеПроверка результатаНа модулях есть антенны на платах и разъемы ipx, если нужно улучшить условия приема/передачи. Удобно использовать антенны такого типа, гибкие на самоклеющейся основе.

Для тестов в плату была загружена прошивка шлюза SLS. Интерфейс с подключенными устройствами выглядит так в текущей версии реализована локальная логика, т.е. можно настроить взаимодействие между устройствами zigbee разных производителей без использования УД.

  • single, lamp_1, state, TOGGLE — Для кнопки, при одиночном нажатии переключает режим lamp_1
  • ON, 0x00158D00007350D9, state, OFF; OFF, 0xABCD, state, ON — Для выключателя, инвертирует режим для реле
  • single, door_lock, state, LOCK; double, door_lock, state, UNLOCK — Закрывает замок при клике, открывает при двойном
  • torsher_lamp — Передает в torsher_lamp текущее состояние
  • 60, humidifier, state, OFF — Для датчика влажности, включает увлажнитель если влажность меньше 40% и выключает если больше 60%

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

Можно оценить качество звука

  • ESP32+zigbee модуль = универсальный шлюз zigbee
  • Модуль zigbee+usb-uart = координатор zigbee для использования с zigbee2mqtt, ioBroker и т.д.
  • ESP32 + усилитель = Интернет-радио, светильник RGB

На текущий момент проверена работа с модулями на чипах СС2538 и СС2530.

Устройство можно обсудить в профильном чате телеграм.

Добавить в избранное Понравилось +119 +209

  • 25 ноября 2019, 11:41
  • автор: Jager
  • просмотры: 28014

Источник: mysku.club

Подключение европейской версии шлюза Xiaomi к HA

Попала мне в руки европейская версия шлюза zigbee Xiaomi (lumi.gateway.mieu01). Шлюз можно подключить к MiHome, но вот в сторонние системы автоматизации, как оказалось, это сделать не так просто. Поискав информацию на поверхности, все как один говорили, что его нельзя подключить ни в каком виде в Home Assistant. Но я люблю разбираться во всём самостоятельно, и вот уже к вечеру того же дня, я нашел информацию, что в шлюз можно подключиться по SSH, сбросив предварительно пароль root. А уже после этого подгрузить в шлюз модифицированные библиотеки и подключить его к Home Assistant. Конечно, этот способ не даёт вам весь набор возможностей, как это реализовано на шлюзе второй версии, но тем не менее, мы будем иметь:

  • управление встроенной светодиодной подсветкой light.miio_gateway;
  • управление звуком media_player.miio_gateway;
  • датчик освещения sensor.miio_gateway_illuminance;
  • сигнализацию и будильник alarm_control_panel.miio_gateway.

А также подключение внешних датчиков (binary_sensor): датчики движения, датчики открытия, датчики протечки, датчики дыма, датчики вибрации и, конечно, кнопки и (sensor): датчики температуры, датчики влажности и датчики давления.

Предупреждаю! Подгрузив в шлюз модифицированные библиотеки, вы утратите доступ к шлюзу через приложение MiHome! При желании всё можно откатить обратно, но действуете вы всегда на свой страх и риск.

Почему Xiaomi mi mix

Приступим. Нам потребуется Паяльник, провода, USB-UART, отвертка для винтов «Spanner», Putty и немного прямых рук. Согласно схеме припаиваем контакты.

Нам потребуется RX, TX и GND. Подключаете все три контакта к UART. Подключите UART к USB разъёму в вашем ПК. Находим в системе номер своего COM-порта. Выставляем скорость передачи 115200. Подключаете шлюз в сеть.

Нажмите Enter.

Если вы видите процесс загрузки HUSH shell, то я Вас поздравляю, у Вас всё получилось!

Если же вы не видите процесс загрузки, то, возможно, вы спутали RX и TX местами.

Сейчас вы в fac_test (тестовая консоль), которая запускается в самом конце процесса загрузки (in /etc/rc.local). Вы можете выйти из этого режима с помощью команды exit_factory. После выхода из консоли тестирования, вы получите приглашение для входа в систему, после чего нам нужно сбросить пароль от root.

Перезагрузите шлюз (например, отключите питание), в процессе загрузки нажмите 0, чтобы прервать загрузку. Введите команду printenv. Найдите в логе строчку, начинающуюся с «bootargs=. » и скопируйте все, что после текста bootargs=, в моём случае это было «console =. «.

Откройте блокнот. Введите текст: setenv bootargs ‘ (Не забудьте кавычку!) Вставьте скопированный текст. Пример в моём случае:

console=ttymxc0,115200 ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs cma=96M mtdparts=gpmi nand:3m(boot),7m(kernel), 1m(dtb),-(rootfs)

После вставленного текста, поставьте одиночный пробел, и ведите текст: single rw init=/bin/bash’ (и снова не забудьте про кавычку!). У вас должно получиться как-то так: setenv bootargs ‘console=. someparams single rw init=/bin/bash’.

Нажмите Enter. Если команда прошла, то в консоле не отразиться ни одного сообщения, будет лишь «=>». Если у Вас что-то пошло по-другому, то скорее всего, вы что-либо не правильно скопировали, или забыли про кавычки и пробелы!

Теперь все готово к сбросу пароля root. Прежде чем вводить команду boot, подготовьтесь к тому, что у вас будет около 5 секунд для смены пароля root. Вы должны установить пароль длиной не менее 8 символов с буквами и цифрами! Подготовьте пароль в блокноте и скопируйте его в буфер обмена. Введите команду boot.

Нажмите Enter. Теперь начнется процесс загрузки, в конце которого вы окажитесь в bash#. Теперь у вас есть 5 секунд. Введите команду passwd, нажмите Enter. Вставьте пароль из буфера обмена, нажмите Enter. Вставьте ещё раз пароль из буфера обмена, нажмите Enter.

В ответ получите «root password change».

Мои поздравления! У Вас всё получилось. Теперь перезагрузите шлюз. Выйдите из тестового режима с помощью команды exit_factory. Введите имя пользователя root и ваш пароль, который вы изменили.

Далее включаем SSH доступ. Вводим команду:

После генерации ключа, у вас появился доступ к шлюзу по SSH. Можете проверить. Но нам необходимо добавить SSH в автозагрузку и для этого мы вводим команду:

В тексте файла перед строчкой «/home/root/fac/fac_test», вписываем строку:

Выходим из nano Ctrl X, подтверждаем, что файл нужно сохранить Y, подтверждаем название файла Enter. Вводим команду «reboot», дожидаемся перезагрузки шлюза, если все прошло нормально, то мы попадаем в тестовый режим и SSH доступен. Если что-то пошло не так, то проверяем всё ли верно написали в файле «nano /etc/rc.local».

В левой части экрана выбираем корневую директорию, создаём в ней папку «hacks», после чего копируем папку «miio_client» в папку «hacks». Выходим из Midnight Commander. Даём необходимые права, выполняя команду:

chmod ug+x /hacks/miio_client/miio_client

Теперь нам нужно добавить модифицированную библиотеку в автозапуск, но при этом нам нужно остановить исходную службу «miio_client».

Внимание! Удалять исходную службу нельзя, так как она участвует в подключении шлюза к сети Wi-Fi!

Всё прошло успешно? Поздравляю! Откладываем шлюз и его терминал и теперь переходим в Home Assistant. Скачиваем плагин из Git. Размещаем его любым доступным способом в директории /custom_components. Например, как описано в инструкции:

Переходим к конфигурации Home Assistant. Открываем configuration.yaml и вносим туда следующие строки:

miio_gateway: host: 192.168.1.13 # IP адрес Вашего шлюза port: 54321 # порт miio_client, по-умолчанию 54321

Перезагружаем HA. В устройствах находим новые устройства miio_gateway. Более подробно о конфигурации и подключении устройств к шлюзу вы можете почитать на странице плагина.

Надеюсь, что моя статья окажется кому-то полезной. На уникальность не претендую. Хорошего всем отпуска на карантине.

Источник: sprut.ai

Рейтинг
( Пока оценок нет )
Загрузка ...
Китай Покупай