Aqara Hub Китай и европейский сервер
Перейти к навигации
Перейти к поиску
Содержание
На данной странице размещена инструкция по доработке китайского Aqara Hub для работы с европейскими серверами.
Обязательно пригодится тем, кто:
- Любит "дешево и сердито";
- Случайно купил Китайскую версию.
Начнем...
Требуются прямые руки
И вдумчивое отношение к инструкции
Мы не несём никакой ответственности за правильное или неправильное применение, или неприменение, и/или неспособность применить данное руководство.
Телефон вызова экстренных служб - 112.
И вдумчивое отношение к инструкции
Мы не несём никакой ответственности за правильное или неправильное применение, или неприменение, и/или неспособность применить данное руководство.
Телефон вызова экстренных служб - 112.
Высокое напряжение
Опасность поражения током
Не повторяйте эти действия, если не обладаете нужными знаниями и природной осторожностью.
Телефон вызова экстренных служб - 112.
Опасность поражения током
Не повторяйте эти действия, если не обладаете нужными знаниями и природной осторожностью.
Телефон вызова экстренных служб - 112.
Что нам понадобится?
- Aqara Hub
- Arduino или TTL-преобразователь (в статье используется Arduino просто потому, что уже была под рукой)
- Канцелярские резинки
- Паяльник
- Компьютер с установленным Putty
Подготовка
- Переводим хаб в режим сопряжения (сбрасываем).
- Удаляем из аккаунтов (если уже подключался к региону Китай).
- Разбираем хаб, снимаем заглушки для болтов и откручиваем (отвертка "2.6"). Очень аккуратно, не порвите провода!
- Перетягиваем резинками (будем подключать к 220В в открытом виде). Собираем согласно схеме справа.
- Подключаем хаб в обесточенный сетевой фильтр. Резинки обеспечивают контакты питания.
- Подключаем Arduino к компьютеру.
- Смотрим, на каком порту обнаружится Arduino.
- Запускаем Putty, выбираем тип подключения Serial, указываем порт Arduino и скорость 115200.
- Открываем сеанс.
Теперь нужно прервать загрузку хаба. Для этого постоянно нажимаем "пробел" - и включаем питание на хабе. Когда всё удастся, терминал остановится на строке '=>'
Изменение конфигурации
Проверяем bootargs
=> printenv baudrate=115200 board_name=EVK board_rev=14X14 bootargs=console=ttymxc0,115200 ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs ...
Добавляем в конец init=/bin/sh
=> editenv bootargs edit: console=ttymxc0,115200 ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs cma=96M mtdparts=gpmi-nand:3m(boot),7m(kernel),1m(dtb),-(rootfs) init=/bin/sh
Заходим в sh:
=> boot NAND read: device 0 offset 0x300000, size 0x700000 7340032 bytes read: OK NAND read: device 0 offset 0xa00000, size 0x100000 1048576 bytes read: OK Kernel image @ 0x80800000 [ 0x000000 - 0x617290 ] ... [2.793281] VFS: Mounted root (ubifs filesystem) readonly on device 0:14. [2.800990] devtmpfs: mounted [2.805094] Freeing unused kernel memory: 540K (80aa1000 - 80b28000) sh: cannot set terminal process group (-1): Inappropriate ioctl for device sh: no job control in this shell sh-4.3#
Устанавливаем пароль пользователю root:
sh-4.3# mount -o remount,rw / sh-4.3# passwd
Отключаем и включаем питание, ничего не нажимаем.
После перезагрузки оказываемся в утилите hkbridge по умолчанию, поэтому нужно ввести:
- exit_factory
- пользователь root
- пароль - тот, который ставили ранее.
Исправляем конфиги: при помощи vim заменяем lumi.gateway.aqhm01 на lumi.gateway.aqhm02
root@Aqara_Hub-1625:~# vi /lumi/conf/device.conf root@Aqara_Hub-1625:~# vi /root/hkbridge/hostap.conf root@Aqara_Hub-1625:~# vi /root/hkbridge/wpa_ap.conf
После применения изменений:
- Запускаем команду reboot. Хаб перезагрузится.
- Добавляем хаб через Aqara Home (через MiHome сразу завести не удалось, но это непринципиально).
- Обновляем устройства в приложении Яндекс.
Ура, всё появилось! Осталось собрать хаб обратно )
Результат
Хаб начал работать через европейский сервер и определяться Алисой (видимо, они не привязываются к MAC-адресу). На удивление к хабу подключаются и китайские и европейские устройства, и успешно приходят и устанавливаются OTA-обновления.
Возможные проблемы
После отключения Arduino хаб отказывался запускаться, при подключении Arduino обратно - запускался успешно.
Проблему решил, запаяв rx и tx на землю (т.е. все три контакта).