Stupid House

Xiaomi Gateway 2 включение режима управления LAN, открытие порта 9898


Шлюз Xiaomi Gateway v.2 позволяет подключать различные устройства и датчики компании по протоколу ZigBee. Когда функционала устройств или возможности автоматизаций, предоставляемых системой Mi Home, начинает не хватать шлюз можно подключить к альтернативной системе управления, при этом данные датчиков и управление устройствами будут доступны как в Mi Home, так и из подключенной системы управления.

 

 

Включение режима разработчика

UPD - 12.2020: В Mi Home v5.9.19 обновился плагин для шлюза, из которого похоже вырезали доступ к режиму разработчика. Для включения доступа управления по Lan необходима версия Mi Home ниже v5.9.19, в которой плагин шлюза предыдущей версии. В версии Mi Home v.5.8.40 плагин шлюза версии v.2.77.1, для включения режима разработчика и получения сведений он нам сгодится.

Для подключения Xiaomi Gateway к системам Home Assistant, OpenHAB, Domoticz или другим на шлюзе необходимо включить управление по LAN (раньше назывался режим разработчика).

  • Скачиваем и устанавливаем Mi Home v5.8.40 для Android. Если есть второе устройство, то лучше все операции делать на нем, иначе придется удалить текущую версию Mi Home
  • Запускаем установленное приложение Mi Home
  • Авторизуемся в приложении Mi Home
  • Открываем плагин шлюза Xiaomi Mi Gateway 2 [Рис. 1]
  • Нажимаем три точки в правом верхнем углу [Рис. 2]
  • В появившемся меню выбираем Сведения (About) [Рис. 3]
  • Протокол связи локальной сети (Wireless communication protocol) [Рис. 4], если пункты меню «Протокол связи локальной сети» и «Информация о шлюзе» отсутствуют, то пять раз нажимаем на пункт Версия плагина: 2.XX.X пока не появятся указанные пункты меню.
  • Включаем управление, записываем пароль и нажимаем OK [Рис. 5]
xiaomi gateway lan access mi home

Рис. 1

xiaomi gateway developer mode mi home

Рис. 2

xiaomi gateway home assistant

Рис. 3

xiaomi gateway openhab

Рис. 4

xiaomi gateway domoticz

Рис. 5

 

Для подключения в выбранную систему нам понадобится IP адрес и пароль от шлюза, из-за особенностей протокола ZigBee устройства и датчики, подключенные к шлюзу, появятся в системе не сразу и этот процесс может растянуться по времени до 30 - 40 минут.

Важно!

 

  • Управление по LAN можно включить только на шлюзах версии v.1 и v.2 предназначенных для китайского рынка. Шлюзы Xiaomi Air Conditioning Companion, все Aqara Gateway, Xiaomi Gateway v.2 c евровилкой, Xiaomi Gateway v.3 с поддержкой ZigBee и BLE в одном не имеют режима управления по LAN (UPD: Появилась возможность интеграции Xiaomi Gateway 3 с Home Assistant, подробнее описано в статье: Xiaomi Gateway 3 - подключение к Home Assistant). Хотя многие пользователи еще питают надежду о появлении режима управления, но с вероятностью 99.9% он не появится, это связано с тем, что устройства Xiaomi могут управляться через HomeKit, а компания Apple запрещает сторонние доступы в устройства.
  • Xiaomi Gateway v.2 имеет две версии v.2 и v.3, модель на обоих устройствах написана одинаковая, внешне изменений никаких, функционал одинаковый, изменения скорее всего в начинке и у третьей версии закрыт порт 9898, через который происходит управление.
  • Не все устройства, подключенные к шлюзу, могут управляться сторонними системами и некоторые устройства в сторонних системах не имеет весь функционал. Из личной практики двухканальные реле Aqara подключенные к шлюзу не поддерживаются сторонними системами и у выключателей размыкающие электрическую линию не поддерживается режим беспроводных клавиш.

 

Открываем порт 9898

Управление шлюзом, а через него и устройствами подключенным к шлюзу осуществляется через порт 9898, который должен быть открыт на шлюзе. На Xiaomi Gateway 2 v.3 порт 9898 может быть закрыт firewall'ом на уровне программного обеспечения шлюза. Если при активации режима разработчика устройство не появилось в системе управления Home Assistent, OpenHAB или любой другой то стоит проверить данный порт. На Linux/Unix системах проверить можно с помощью программы nmap, выполните следующую команду:

sudo nmap -sU -p 5353,54321,9898 your_gateway_ip_address

Если результат следующий:

PORT      STATE         SERVICE
5353/udp  open|filtered zeroconf
9898/udp  open          monkeycom
54321/udp open|filtered bo2k

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

Если в результате указано следующее:

9898/udp <strong>closed </strong>monkeycom

значит придется придется поработать паяльником.

ВНИМАНИЕ! Автор статьи не несет никакой ответственности за последствия, которые могут произойти при выполнении действий, описанных в данной статье! Всё что вы делаете, вы делаете только на свой страх и риск!

Для открытия порта понадобится сам шлюз, паяльник, usb адаптер UART-TTL, провода для подключения адаптера, компьютер и программа PuTTY.

Переворачиваем шлюз и вынимаем резиновые заглушки скрывающие болты [Рис. 1], раскручиваем устройство (понадобится соответствующий инструмент) [Рис. 2], разбираем шлюз [Рис. 3].

xiaomi gateway разборка

Рис. 1

xiaomi gateway порт 9898

Рис. 2

xiaomi gateway disassemble open port 9898

Рис. 3

Подпаиваем провода к техническим контактам TX (P4) и RX (P2), землю можно взять с кнопки управления или припаять провод к контакту (P3) между контактами TX и RX.

xiaomi gateway доступ к альтернативным системам

На адаптере UART нам понадобятся три контакта TX (TXD), RX (RXD) и GND, все остальные подключенные провода и перемычки на адаптере нужно отключить. Подключаем его к компьютеру в порт USB 2.0. В Windows 10 драйвера установятся автоматически. Открываем диспетчер устройств и находим порт, на который подключился адаптер.

xiaomi gateway device list uart usb-to-ttl

Подключаем провод шлюза TX к проводу RX адаптера и провода GND шлюза и адаптера. Провод шлюза RX НЕ ПОДКЛЮЧАЕМ!

Включаем шлюз в розетку. Открываем программу PuTTY, выбираем тип подключения Serial, выставляем COM порт на котором подключен адаптер UART (COM7 из примера выше), скорость подключения 115200. Нажимаем кнопку Open.

xiaomi gateway putty seral port connect

Дожидаемся полной загрузки шлюза. Подключаем провод шлюза RX к проводу адаптера TX. На экране будут бежать читаемые сообщения. Вводим команду:

psm-set network.open_pf 3

команду лучше скопировать и вставлять, после ввода нажимать Enter. Вводим пока не увидим ответ:

psm-get network.open_pf=3

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

sudo nmap -sU -p 5353,54321,9898 your_gateway_ip_address

Мы должны получить следующий результат:

PORT      STATE         SERVICE
5353/udp  open|filtered zeroconf
9898/udp  open          monkeycom
54321/udp open|filtered bo2k

Если порт 9898 закрыт, то повторяем описанное выше заново пока не получим нужный нам результат.

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

Файлы для скачивания

Mi Home v5.8.40 - Формирование ссылки...

Автор: muxa, 10.07.2020
Войдите или зарегистрируйтесь, чтобы иметь возможность оставлять комментарии

Комментарии


Сделал всё по инструкции. Подключился, пишу:

#psm-set network.open_pf 3 

# psm-get network.open_pf 

Получаю ответ:

network.open_pf = 3 (1 bytes)

Перезагружаю шлюз, проверяю порты - закрыты. Переподключаюсь, пишу:

# psm-get network.open_pf

Получаю:

network.open_pf = 1 (1 bytes)

Есть какие-то идеи?

Шлюз подключен к MiHome? Включен ли режим разработчика на шлюзе?

Попробуй выполнить: psm-set network.open_pf 3 и не перегружая шлюза просканировать порты. Но у меня подозрение что всё же на шлюзе не включен режим разработчика.

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