Перейти к содержимому

Открытие портов в Xiaomi Gateway и интеграция через LAN протокол

Такие посты довольно не типичны для меня и формата блога, но как я писал раньше мы ведем дневничок, а не какой-то журнал определенного формата. Сием постом официально открываю рубрику “умного дома” и постараюсь освещать идеи и темы, которые мне показались интересными.
О полной конфигурации будет как-нибудь отдельный пост, а сейчас статья в стиле “чтоб не забыть”.

Проблема закрытых портов на Xioami Gateway 2 (Lumi.gateway.v3) оказалась серьезным препятствием в автоматизации и создании умного дома (smart home). Так как продукты Xiaomi можно использовать в других системах автоматизации как OpenHub, IoBrocker, Node-Red  или Home Assistant, то наличие открытых портов и активация LAN-протокола являются неотъемлемой частью этого процесса. Сейчас мы рассмотрим все возможные (надеюсь) сценарии, которые могут нам встретиться:

https://img.ewelt.org/pics/upashi/DasHaus2018/SmartHome/HowTo/XiaomiOpenPorts/xiaomi-mi-gateway-2.jpg

 

Как активировать LAN протокол

Настройка putty для работы в режиме serial

Подготовка Xiaomi Gateway для открытия портов

Открываем порты в Xiaomi Gateway 

 

  • Проблема возникает на шлюзах (Gateways) с прошивкой 1.4.1_161.0143 или выше.
  • Gateways с Firmware 1.4.1_159.0143 или ниже работают отлично после активирования LAN протокола.
  • Gateways в которых LAN протокол был активирован до 1.4.1_159.0143, а прошивка обновлена потом, должны и дальше нормально работать.

Последовательность действий при покупке нового шлюза (gateway):

  • Первым делом активируем LAN протокол. MiHome App будет всячески мешать выскакивающими окошками, но не сдавайтесь. как активировать будет чуть ниже.
  • После этого обновляем ПО шлюза
  • Тестируем все ли ок:
    • Сразу в системе автоматизации
    • Командой “nmap -sU GATEWAY_IP -p 9898,4321

Если вы получили в ответ такое сообщение:
PORT STATE SERVICE
4321/udp closed rwhois
9898/udp closed monkeycom
MAC Address: 7C:49:хх:хх:хх:хх (Unknown)

То все плохо и придется немножко потрудиться, чтобы их открыть.

 

Как активировать LAN протокол

Открываем MiHome App. Среди устройств выбираем наш Gateway (в моем случае MiHub.HWR)

https://img.ewelt.org/pics/upashi/DasHaus2018/SmartHome/HowTo/XiaomiOpenPorts/MiHome_overview.jpg

 

 Идем в настройки
https://img.ewelt.org/pics/upashi/DasHaus2018/SmartHome/HowTo/XiaomiOpenPorts/MiHome_Hub_Settings.jpg

 

Дальше в раздел о программе.
https://img.ewelt.org/pics/upashi/DasHaus2018/SmartHome/HowTo/XiaomiOpenPorts/MiHome_About.jpg

 

И там усердно “тапаем” по версии пока не появятся два дополнительных пункта:

  • Wireless communication protocol
  • Hub Info
    https://img.ewelt.org/pics/upashi/DasHaus2018/SmartHome/HowTo/XiaomiOpenPorts/MiHome_Dev_Activate.jpg

 

В Wireless communication protocol активируем единственный чекбокс. Все.
https://img.ewelt.org/pics/upashi/DasHaus2018/SmartHome/HowTo/XiaomiOpenPorts/MiHome_Lan_Dev.jpg

 

Подготовка Xiaomi Gateway для открытия портов

Для начала нам нужно будет разобрать сам девайс. Стоит обратить внимание, что понадобится специальная отвертка в виде рогатули, чтоб открутить шурупы. Как на картинках (нашел всяческие варианты в интернете) ниже находим контакты с которыми нам придется немножко повозиться. Именно к ним нам надо будет подключаться через UART модуль. Я пользовался этим Wingoneer CP2104 seriall Konverter USB 2.0 UART 6PIN

https://img.ewelt.org/pics/upashi/DasHaus2018/SmartHome/HowTo/XiaomiOpenPorts/UARTKonverter.png
Wingoneer CP2104 seriall Konverter USB 2.0 UART 6PIN

Основная задача состоит в подключение UART к контактам шлюза. Я умудрился удержать пальцами контакта и другой рукой ввести команду для открытия порта, кто-то припаивает, а ниже нашелся универсальный способ: приклеить все скотчем. Считаю его просто самым лучшим методом.

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

Дальше очень важно учитывать, что Rх шлюза мы подключаем к Tх UART и Tх шкюза к Rх UART. GND я прицеплял к корпусу или к контактам кнопки сброса. Дальше настраиваем Putty, чтобы мы могли ввести команду для открытия портов. (описание ниже)

После того как все подключено, можно включать все шлюз в сеть и UART в USB.

Разные картинки разобранного шлюза.
https://img.ewelt.org/pics/upashi/DasHaus2018/SmartHome/HowTo/XiaomiOpenPorts/GW1.jpg

 

https://img.ewelt.org/pics/upashi/DasHaus2018/SmartHome/HowTo/XiaomiOpenPorts/GW2.jpg

 

https://img.ewelt.org/pics/upashi/DasHaus2018/SmartHome/HowTo/XiaomiOpenPorts/GW3.jpg

 

Этот метод я имел ввиду.
https://img.ewelt.org/pics/upashi/DasHaus2018/SmartHome/HowTo/XiaomiOpenPorts/GW4.jpg

Настройка putty для работы в режиме serial

По умолчанию у Putty в режиме serial не возможности копировать команды в окно терминала. Для этого в настройка нужно активировать Local echo как на картинке. Дальше в главном окне выбираем serial, COM порт к которому подключен UART.

https://img.ewelt.org/pics/upashi/DasHaus2018/SmartHome/HowTo/XiaomiOpenPorts/Putty-settings.jpg

 

Открываем порты в Xiaomi Gateway 

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

  • В putty в окно терминала вставляем “psm-set network.open_pf 3” и сразу же клавишу ввода. Я для подстраховки повторил это действие несколько раз, так как пару раз мою команду не принял шлюз из-за потока UDP пакетов, которые буквально разрывали на части мою команду.
  • Для проверки проверяем командой: “psm-get network.open_pf”
  • Перезапускаем шлюз и наслаждаемся проделанной работой.

 

Добавить комментарий