Aqara Hub Китай и европейский сервер

Материал из База знаний
Перейти к навигации Перейти к поиску



На данной странице размещена инструкция по доработке китайского Aqara Hub для работы с европейскими серверами.

Обязательно пригодится тем, кто:

  • Любит "дешево и сердито";
  • Случайно купил Китайскую версию.

Начнем...

Требуются прямые руки 
И вдумчивое отношение к инструкции
 
Мы не несём никакой ответственности за правильное или неправильное применение, или неприменение, и/или неспособность применить данное руководство.
Телефон вызова экстренных служб - 112.
Высокое напряжение 
Опасность поражения током
 
Не повторяйте эти действия, если не обладаете нужными знаниями и природной осторожностью.
Телефон вызова экстренных служб - 112.


Что нам понадобится?

  • Aqara Hub
  • Arduino или TTL-преобразователь (в статье используется Arduino просто потому, что уже была под рукой)
  • Канцелярские резинки
  • Паяльник
  • Компьютер с установленным Putty


Подготовка

Отвертка
Схема подключения
  1. Переводим хаб в режим сопряжения (сбрасываем).
  2. Удаляем из аккаунтов (если уже подключался к региону Китай).
  3. Разбираем хаб, снимаем заглушки для болтов и откручиваем (отвертка "2.6"). Очень аккуратно, не порвите провода!
  4. Перетягиваем резинками (будем подключать к 220В в открытом виде). Собираем согласно схеме справа.
  5. Подключаем хаб в обесточенный сетевой фильтр. Резинки обеспечивают контакты питания.
  6. Подключаем Arduino к компьютеру.
  7. Смотрим, на каком порту обнаружится Arduino.
  8. Запускаем Putty, выбираем тип подключения Serial, указываем порт Arduino и скорость 115200.
  9. Открываем сеанс.
Теперь нужно прервать загрузку хаба.
Для этого постоянно нажимаем "пробел" - и включаем питание на хабе.
Когда всё удастся, терминал остановится на строке '=>'

Изменение конфигурации

Проверяем 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 на землю (т.е. все три контакта).

Источник — https://wiki.yaboard.com/index.php?title=Aqara_Hub_Китай_и_европейский_сервер&oldid=4167 // MOD ext links // End MOD