Продолжим серию статей, в прошлой статье мы говорили о получении root прав у Xiaomi Gateway 2 EU, сегодня я расскажу вам как установить ZESP. Статья будет состоять из двух основных разделов:
- Установка ZESP, используя скрипт (на чистый хаб).
- Установка 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 собрана в чате. Там же можно обсудить проект, написать свои предложения по развитию, а также задать вопросы.
А на китайский шлюз второй версии можно поставить? вот на такой https://gigant-store.ru/goods/xiaomi-gateway-2/?roistat=google7_g_79878199856_406168849363_&roistat_referrer=&roistat_pos=&gclid=CjwKCAiA4rGCBhAQEiwAelVti17-dg8T40giw_CYC-8x1YME_Thccc2AAdOZLaSbRmS5hjYVVJNWNRoCFI0QAvD_BwE&utm_source=google&utm_medium=cpc&utm_campaign=g&utm_term=&utm_content=406168849363">https://gigant-store.ru/goods/...
опечаточка, + не указан в инструкции
А в чем разница по функционалу между первым и вторым методами? Читал, что если ставить на 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?
настройки вифи
То есть либо таким способом файл настроек создать, либо альтернативным?