Статья

#2 Xiaomi Gateway EU: установка ZESP, OpenWRT + ZESP

Продолжим серию статей, в прошлой статье мы говорили о получении root прав у Xiaomi Gateway 2 EU, сегодня я расскажу вам как установить ZESP. Статья будет состоять из двух основных разделов:

  1. Установка ZESP, используя скрипт (на чистый хаб).
  2. Установка OpenWRT.
  • Установка ZESP

Установка ZESP на чистый хаб

Данный метод подойдет для тех, у кого новый хаб и на нем не установлено никакое альтернативное ПО. Установка осуществляется при помощи скрипта. Для выполнения данного скрипта, необходимо подключиться по SSH, процесс получения root описан в моей прошлой статье. Еще раз напоминаю про бекап заводской прошивки.

Внимание! Установка только на новый хаб, если на хабе установлен OpenWRT, ниже будет приведен второй способ установки.

echo -e "GET /divanikus/zesp32-installer/master/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

После выполнения скрипта, перезагружаем устройство и пробуем перейти по ссылке: http://ip_адрес_хаба:8081/

Установка OpenWRT

Сразу хочу обратить внимание, что данный метод подойдет только для тех, у кого чистый хаб. Если вы уже установили ZESP, ищите инструкцию как установить OpenWRT поверх ZESP.

Установка OpenWRT осуществляется также через bash скрипт. Еще раз проверяем, нет ли архива нашего бекапа в папке /tmp/, если есть - удаляем. Шлюз должен быть подключен к интернету, а это значит, необходимо подключить пигтейл антенны.

Подключаемся по SSH к хабу и вводим единственную команду:

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

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

Первичная настройка OpenWRT

Нам необходимо настроить Wi-Fi подключение. Подключаемся к Wi-Fi сети OpenWRT, переходим по адресу: http://192.168.1.1/.

Логин: rootПароль: (без пароля)

Без с большой буквы - шутка =)

Отрываем раздел Network -> Wireless.

  • Нажимаем Scan у интерфейса radio0.
  • Подключаемся к сети "Join Network".
  • Ставим галочку "Replace wireless configuration".
  • Вводим пароль.
  • Подтверждаем свои действия.
  • На следующей странице нажимаем кнопку "Save".

Теперь нам необходимо отключить точку доступа OpenWRT, для этого у последнего интерфейса нажимаем кнопку "Disable". После чего устройство автоматически перезагрузится и подключится к нашему роутреру.

После прошивки изменился MAC адрес устройства, а это значит, что роутер присвоит нам новый IP.

По итогу нам доступно:

  • Графический интерфейс OpenWrt LuCi на 80-м порту.
  • Утилита для прошивки модуля zigbee jn5169.
  • Веб-плагин для LuCi.

Установка ZESP поверх OpenWRT

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

Установка nodejs и ZESP32

Добавляем репозиторий:

[ -f /lib/libustream-ssl.so ] && echo "libustream already installed" || opkg install libustream-mbedtls (! grep -q openlumi /etc/opkg/customfeeds.conf) && ( wget -q https://openlumi.github.io/openwrt-packages/public.key -O /tmp/public.key && opkg-key add /tmp/public.key && rm /tmp/public.key && echo 'src/gz openlumi https://openlumi.github.io/openwrt-packages/packages/19.07/arm_cortex-a9_neon' >> /etc/opkg/customfeeds.conf && echo "Feed added successfully!" ) || echo "Feed added already. Skip."

После чего устанавливаем все необходимые пакеты на шлюз:

opkg update opkg install node node-npm cd /tmp wget http://82.146.46.112/fw/ZESPowrt.tar.gz wget http://82.146.46.112/fw/update.tar.gz tar -xzvf ZESPowrt.tar.gz -C / tar -xzvf update.tar.gz -C / wget https://raw.githubusercontent.com/openlumi/openlumi.github.io/master/files/zesp32.init -O /etc/init.d/zesp32 chmod x /etc/init.d/zesp32 wget https://raw.githubusercontent.com/openlumi/openlumi.github.io/master/files/zesp32-package.json -O /opt/app/package.json /etc/init.d/zesp32 enable /etc/init.d/zesp32 start

Прошивка Zigbee модуля

Останавливаем ZESP:

killall node

Для прошивки модуля ZigBee, вводим следующие команды:

jnflash /opt/app/util/Zigbee.bin jntool erase_pdm

Возобновляем работу ZESP:

/etc/init.d/zesp32 restart

Интерфейс ZESP32 также будет доступен по адресу: http://ip_адрес_хаба:8081/

Итог

В этой статье мы научились устанавливать ZESP на Xiaomi Gateway EU несколькими способами. Для себя я выбрал второй вариант, он более гибкий и имеет более широкий спектр возможностей, хоть при этом и немного сложнее в установке.

Вся информация по проекту ZESP собрана в чате. Там же можно обсудить проект, написать свои предложения по развитию, а также задать вопросы.


опечаточка, + не указан в инструкции


chmod +x /etc/init.d/zesp32

А в чем разница по функционалу между первым и вторым методами? Читал, что если ставить на OpenWRT, то можно использовать как блютуз хаб? К сожалению прочел это после того, как прошил по первому методу, через скрипт. А как теперь поставить OpenWRT и сверху Зесп не нашёл...

Интересно будет ли с ним работать Xiaomi Mijia Bluetooth Hygrothermograph 2 ?

прошить заводскую прошивку и потом поновой залить openwrt 

Если бы еще был

бекап родной прошивки =)))

по факту бекап нужнн чтобы вернуть в заводскую прошивку. если нужен опенврт, подойдет и чужой архив

zesp это программа, а не прошивка. И вот эта фраза сбивает с толку.  


>> Если вы уже установили ZESP, ищите инструкцию как установить OpenWRT поверх ZESP. 



По первому методу у вас просто он установился в opt и добавлен в автозагрузку. У вас все так же чистая система. 


Чтобы хватило места для прошивки удалите его из /opt/ и из /etc/rc.local можно убрать запуск. Плюс перезагрузиться чтобы убить процесс


Дальше просто ставьте скриптом OpenWrt


Про BLE можно почитать вот здесь https://habr.com/ru/post/549058/">https://habr.com/ru/post/54905...

одна команда - одна строка...долбаебы

Еще одна опечатка в команде прошивки на 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 -servername raw.githubusercontent.com 2>/dev/null | sed '1,/^\r$/d' | bash

Я вот не понял, зачем надо было в первой статье подключать шлюз к MiHome?

настройки вифи

То есть либо таким способом файл настроек создать, либо альтернативным?

- zesp32 не добавлен в автозагрузку
- chmod +x /etc/init.d/zesp32 - '+' пропущен

Вернуться назад

Устройства


Xiaomi

Xiaomi Gateway EU

(1 отзыв)

Вернуться назад