Открыть порт 9898 xiaomi gateway: Открытие портов 4321 и 9898 на шлюзе Xiaomi Gateway 2 / Хабр
|Содержание
Открытие портов 4321 и 9898 на шлюзе Xiaomi Gateway 2 / Хабр
Введение
Отдыхая на новогодних праздниках, я загорелся идеей создания «Умного дома». Среди «народных» экосистем наиболее популярным в силу дешевизны и обилия всевозможных подключаемых устройств мне сразу показалось решение от Xiaomi. Сразу отказавшись от управления своим домом через китайские сервера (возможные задержки, безопасность и привязка к устройствам одного производителя), я принялся изучать всевозможные системы управления умным домом и подбирать для них совместимое оборудование.
После часов поисков я решил, что мне подходит Home Assistant. Строить всё на начальном этапе я решил с использованием Raspberry Pi 4 Model B (2GB) и датчиков от Xiaomi. Купив шлюз (нужна версия с артикулом DGNWG02LM) и включив протокол связи локальной сети, я столкнулся с тем, что порты 4321 и 9898, необходимые для интеграции в Home Assistant, по-прежнему остались закрытыми.
Убедиться в этом можно было через Nmap при помощи команды nmap -sU -Pn <IP ШЛЮЗА> -p 9898,4321,54321:
В статье я опишу, как открыть эти порты, и что для этого потребуется.
Подготовка
Не уверен, что можно размещать ссылки на конкретные магазины, поэтому укажу только цены, по которым я купил всё необходимое в Москве. Нам потребуются:
- Насадка U6 для отвёртки (она же SP6) — 36 руб
- Конвертер USB-to-TTL на базе Ch440 — 84 руб
- Соединительный кабель мама-папа — нужно минимум 3 штуки, но я взял набор из 40 штук за 110 руб
- Паяльник — у меня был 🙂
Приступаем к самому интересному
Все дальнейшие действия вы выполняете на свой страх и риск. Вскрытие шлюза лишает вас гарантии.
Первым делом необходимо снять три резиновых накладки, которые закрывают винты. Накладки не приклеены, просто поддеваем их чем-то тонким: я использовал нож.
Под одной из накладок будет гарантийная пломба. Это точка невозврата.
Открутив винты, аккуратно открываем шлюз. В верхней его части находится динамик, подключенный проводами к плате на нижней части. Отсоединяем провода, чтобы ничего не мешало.
К плате шлюза потребуется припаять три кабеля. С двумя точками всё ясно, третья — сбоку на кнопке. Места обозначены на картинке:
У нас получится нечто такое:
На следующем этапе необходимо настроить подключение для конвертера. Убираем с конвертера перемычки (при покупке у меня она стояла на VCC и 3V3), подключаем его к порту USB 2.0.
На Windows 10 драйвера загрузились сами, в диспетчере устройств появилось подключение по порту COM3 (запомните его, в дальнейшем пригодится).
В свойствах нашего устройства переходим во вкладку «Параметры порта» и меняем значения:
- «Бит в секунду» на 115200
- «Управление потоком» на Нет
На всякий случай можно свериться со скриншотом:
С настройкой конвертера мы закончили, вытаскиваем его из USB-порта. Переходим к подключению шлюза: соединяем его TX с RX конвертера, а GND с GND. RX шлюза пока не подключаем.
Включаем шлюз в розетку. Если всё сделали правильно, он начнёт мигать синим. Дожидаемся полной загрузки (мигания прекратятся) и подключаем конвертер в тот же USB-порт, что и на этапе настройки.
Запускаем PuTTY от имени администратора. В разделе «Session» меняем «Connection type» на Serial. В полях «Serial line» и «Speed» указываем порт, который мы запоминали ранее (в моём случае — COM3), и 115200:
В разделе «Serial» проверяем, чтобы был указан наш COM-порт, «Speed (baud)» — 115200 и «Flow control» — None.
Возвращаемся в раздел «Session» и подключаемся к шлюзу. Если всё сделали правильно, в консоли появится читаемый текст. У меня он выглядел вот так:
Далее необходимо подключить RX шлюза к TX конвертера. Ошибок в консоли быть не должно. У меня продолжил появляться читаемый текст — на этот раз в формате JSON.
Вводим команду psm-set network.open_pf 3 и нажимаем Enter.
В некоторых видео и статьях, которым я следовал, написано, что в консоли должен появиться какой-то ответ. После ввода команды я подождал около минуты, но ответа не последовало. В консоли лишь изредка мелькали новые записи. Поэтому, на всякий случай, попробовал три других варианта команды:
- psm-get network open_pf 3 (пробел вместо точки)
- #psm-get network.open_pf 3 (после любой записи в консоли нажимаем Enter, чтобы появилась #, и пишем команду)
- #psm-get network open_pf 3 (аналог предыдущей, но с пробелом)
После четырёх попыток ответа я не дождался и решил проверить, не открылись ли порты. Для этого нужно отключить конвертер и перезагрузить шлюз, вытащив его из розетки. Не подключая конвертер к компьютеру, включаем шлюз и дожидаемся загрузки. После этого командой nmap -sU -Pn <IP ШЛЮЗА> -p 9898,4321,54321 проверяем порты. В моём случае они оказались открыты!
Открытие портов в Xiaomi Gateway и интеграция через LAN протокол
Такие посты довольно не типичны для меня и формата блога, но как я писал раньше мы ведем дневничок, а не какой-то журнал определенного формата. Сием постом официально открываю рубрику “умного дома” и постараюсь освещать идеи и темы, которые мне показались интересными.
О полной конфигурации будет как-нибудь отдельный пост, а сейчас статья в стиле “чтоб не забыть”.
Проблема закрытых портов на Xioami Gateway 2 (Lumi.gateway.v3) оказалась серьезным препятствием в автоматизации и создании умного дома (smart home). Так как продукты Xiaomi можно использовать в других системах автоматизации как OpenHub, IoBrocker, Node-Red или Home Assistant, то наличие открытых портов и активация LAN-протокола являются неотъемлемой частью этого процесса. Сейчас мы рассмотрим все возможные (надеюсь) сценарии, которые могут нам встретиться:
Как активировать 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)
Идем в настройки
Дальше в раздел о программе.
И там усердно “тапаем” по версии пока не появятся два дополнительных пункта:
- Wireless communication protocol
- Hub Info
В Wireless communication protocol активируем единственный чекбокс. Все.
Подготовка Xiaomi Gateway для открытия портов
Для начала нам нужно будет разобрать сам девайс. Стоит обратить внимание, что понадобится специальная отвертка в виде рогатули, чтоб открутить шурупы. Как на картинках (нашел всяческие варианты в интернете) ниже находим контакты с которыми нам придется немножко повозиться. Именно к ним нам надо будет подключаться через UART модуль. Я пользовался этим Wingoneer CP2104 seriall Konverter USB 2.0 UART 6PIN
Wingoneer CP2104 seriall Konverter USB 2.0 UART 6PIN
Основная задача состоит в подключение UART к контактам шлюза. Я умудрился удержать пальцами контакта и другой рукой ввести команду для открытия порта, кто-то припаивает, а ниже нашелся универсальный способ: приклеить все скотчем. Считаю его просто самым лучшим методом.
Обязательно все нужно делать при выключенном шлюзе и UART конвертере.
Дальше очень важно учитывать, что Rх шлюза мы подключаем к Tх UART и Tх шкюза к Rх UART. GND я прицеплял к корпусу или к контактам кнопки сброса. Дальше настраиваем Putty, чтобы мы могли ввести команду для открытия портов. (описание ниже)
После того как все подключено, можно включать все шлюз в сеть и UART в USB.
Разные картинки разобранного шлюза.
Этот метод я имел ввиду.
Настройка putty для работы в режиме serial
По умолчанию у Putty в режиме serial не возможности копировать команды в окно терминала. Для этого в настройка нужно активировать Local echo как на картинке. Дальше в главном окне выбираем serial, COM порт к которому подключен UART.
Открываем порты в Xiaomi Gateway
После того как шлюз включили нужно подождать пока он полностью включится. После этого выполняем следующею последовательность действий:
- В putty в окно терминала вставляем “psm-set network.open_pf 3” и сразу же клавишу ввода. Я для подстраховки повторил это действие несколько раз, так как пару раз мою команду не принял шлюз из-за потока UDP пакетов, которые буквально разрывали на части мою команду.
- Для проверки проверяем командой: “psm-get network.open_pf”
- Перезапускаем шлюз и наслаждаемся проделанной работой.
Понравилось это:
Нравится Загрузка…
Xiaomi Mi Mijia Gateway V3 ZNDMWG03LM попытаться открыть порт 9898 — xiaomibinding
coupeaze
(Ответ)
#1
У меня проблема с открытием порта для нового Xiaomi Mi Gateway 3.
В конце хотелось подключить шлюз к моему Iobroker без облака xiaomi.
Я уже пробовал кое-что…
- Я выполнил несколько различных шагов, как описано в следующей теме:
«[РЕШЕНО] Openhab2 — Xiaomi Mi Gateway — не отвечает» - Я подключил GW, как показано на рисунке ниже… (без VCC+ (желтый))
2.1 Скорость последовательного канала составляет 38400Xiaomi mijia Gateway V3 ZDMWG03LM_Binding_2004041422×1079 150 КБ
- Итак, я могу прочитать и получить несколько команд, но не могу передать ни одной
- Кто-нибудь знает, что мне делать, может @Ingo1977 ?
купе
(Ответ)
#2
… и здесь раздел записанных данных:
=== Прошивка rootfs ===
Продукт = AQARA-RTL8197-GATEWAY
Филиал = Разработка
Версия = 1. 4.4_0003
779
. версия = 1.4.4_0003
== 10 == заводской тест не пройден, не удается запустить приложения!!!
== 9 == заводской тест не пройден, приложения не запускаются!!!
factory_test Время сборки: 20:16:38 15 ноября 2019 г.
== 8 == заводской тест не пройден, приложения не запускаются!!!
file=/var/device_config,did=xxxxxxxx //изменено
key=xxxxxxxxxxxxxxxx //изменено
mac=00:00:00:00:00:00
7
vendor38 model=lumi.gateway.mgl03
проверка сделала xxxxxxxx //изменено
*cat: не удается открыть ‘/device.conf’: нет такого файла или каталога *
cp: невозможно создать ‘/device. conf’: файловая система только для чтения
get_factory_result=1
размер gobal_cmd_list 4804
factory_dir:/data/factory!
miio_dir:/data/miio!conf_dir:/data/conf!
файл_версии:/etc/rootfs_fw_info!
порт ble uart: 1
порт zigbee uart: 2
порт homekit i2c: 1
factory udp_init!
Ввод cmd: [ 10. 660000] store_tty0_enable buf=disable
[ 10.660000] , count=8
Ким_Андерсен
(Ким Андерсен)
#3
Вы читали эту тему:
Фото из интернета, это не мое фото, но связь та же. Данные с моего устройства:
Номер версии: 272
网关ID:131875487
Zigbee通道:25
网关信息:
{«жизнь»:486863,»cfg_time»:0,»токен»:»9b5e8d7b5fb46b9afc5eab5572d2cb99″,»mac»:»04:CF:8C:8F:B1:CD»,»fw_ver»:»1.4.1_175″,» hw_ver»: «MW300», «модель»: «lumi.gateway.v3», «mcu_fw_ver»: «0220», «wifi_fw_ver»: «SD878x-14.76.36.p84-702.1.0-WM», «ap» :{«rssi»:-65,»ssid»:»грибы»,»bssid»:»C4:6E:1F:99:B9:91″},»netif»:{«localIp»:»192.168.1.127″,»маска»:»255.255.255.0″,»…
Кажется, существуют разные платы шлюза V. 3.
Виктор Романчук
(Виктор Романчук)
#4
Наверное я тупой, но эта тема началась в 2018 году про обновленную версию Xiaomi miija, такую же как у меня 🙁
Ingo1977
(Инго1977)
#5
@coupeaze Думаю, пока никому не удалось открыть порт 9898 на этом многорежимном шлюзе. Кстати. спасибо за открытие этой новой темы. Вы добились успеха за это время?
Кто-нибудь еще может здесь поддержать?
Инго1977
(Инго1977)
#6
Может ли кто-нибудь помочь нам со шлюзом?
Инго1977
(Инго1977)
#7
@Victor_Romanchuk Это новый шлюз Xiaomi, поддерживающий также устройства Zigbee 3. Но пока мы с @coupeaze не можем открыть порт 9898 для связи. Не могли бы вы помочь или поддержать?
Виктор Романчук
(Виктор Романчук)
#8
Насколько я понимаю, это апгрейд, но второй версии. Я купил его давно. К сожалению, я не нашел решения, выкинул это устройство и успешно установил флешку CC2531 с помощью mqtt2zigbee. Это работает и полезно
Ingo1977
(Инго1977)
#9
У этого устройства есть большое преимущество, и это его диапазон! Поэтому я хочу использовать его локально и отключить интернет-соединение. Кроме того, он поддерживает устройства Zigbee 3.0, что также является большим плюсом. Нам просто нужно идентифицировать контакт RX, и тогда мы, вероятно, сможем найти решение, используя это устройство.
Инго1977
(Инго1977)
#10
@coupeaze Можешь выложить фото и с другой стороны латины?
Можете ли вы посмотреть, какие микросхемы (имена) используются, и перечислить их здесь?
Затем мы можем поискать информацию в Интернете…
marcel_verpaalen
(Марсель)
#11
Виктор Романчук:
Насколько я понимаю, это апгрейд, но второй версии. Я купил его давно. К сожалению решения не нашел, выкинул этот девайс
Если есть кто-то, кто не может сейчас использовать его шлюз и не против поэкспериментировать
, я хотел бы попробовать, может ли он общаться с протоколом miio.
Просто для ясности: это будет означать либо отправку вашего устройства, либо совместное использование его в micloud. (или разрешите мне удаленный доступ к OH karaf ssh, который может «видеть» шлюз, не обязательно должен быть «производственным»)
Примечание: моя цель — установить с ним связь без необходимости вскрытия/пайки.
купе
(Ответ)
#12
До сих пор мне не удавалось. Я могу читать только информацию через Putty, вот и все.
Ниже вы можете увидеть другую сторону доски.
Шлюз Xiaomi mijia V3 ZDMWG03LM_Platine Draufsicht_2003312016×1512 455 КБ
1 Нравится
система
(система)
закрыто
№13
Эта тема была автоматически закрыта через 41 день после последнего ответа. Новые ответы больше не допускаются.
node-red-contrib-xiaomi-devices (node) — Node-RED
Набор узлов для управления некоторыми популярными датчиками Xiaomi, которые подключены к шлюзу Xiaomi.
npm install node-red-contrib-xiaomi-devices
Этот модуль содержит следующие узлы, обеспечивающие простую интеграцию устройств Xiaomi в узел-красный.
В настоящее время поддерживаются следующие устройства:
- Датчик температуры/влажности
- Магнитный переключатель
- Кнопочный переключатель
- Датчик движения
- Вилка питания (зигби)
- Вилка питания (Wi-Fi)
Подготовка
Чтобы получать json-сообщения шлюза в вашей сети, вам необходимо включить режим разработчика, он же режим LAN в шлюзе.
Входной узел UDP необходим для получения сообщений json. Выходной узел UDP для отправки команд шлюзу.
Для управления Wifi-Plug широко используется библиотека miio, созданная Андреасом Хольстенсоном. Обязательно проверьте его страницу на наличие совместимых устройств.
Установить
cd ~\.node-red npm установить node-red-contrib-xiaomi-devices
Использование
На экране конфигуратора Xiaomi добавьте различные устройства, выбрав тип устройства и удобочитаемое описание. Читаемое описание используется на другом экране редактирования узлов, чтобы легко выбрать устройство, которое вы связываете с узлом.
Обратите внимание, что разъем питания Wi-Fi не настраивается через конфигуратор, так как он не подключен к шлюзу.
Простой в использовании экран конфигуратора Xiaomi для настройки различных устройств.
Совет: используйте конфигуратор на боковой панели (гамбургер-меню, узлы конфигурации) для управления вашими устройствами. Node-red не обновляет базовые экраны редактирования, если панель конфигурации открывается/закрывается с экрана редактирования узла. (Если вы это сделаете, вам нужно сначала закрыть экран редактирования узла и снова открыть его, дважды щелкнув узел, для которого вы хотите изменить свойства.)
Для получения/отправки сообщений json UDP с/на шлюз необходимо включить режим локальной сети на шлюзе. Чтобы получать json-сообщения UDP в узле-красном, вам необходимо добавить udp-узел с правильной конфигурацией:
Слушать: многоадресные сообщения Группа: 224.0.0.50 Локальный IP: <пусто> На порту: 9898 ipv4 Выход: строка
Если вы хотите отправлять сообщения на шлюз, вам необходимо добавить отправителя UDP, вот пример конфигурации:
Отправить: UDP-сообщение на порт: 9898 Адрес:ipv4
Эта конфигурация работала для меня, однако я видел людей, использующих другую конфигурацию для работы UDP.
Вот пример использования различных узлов.
Дорожная карта
-
Поддержка других устройств, таких как смарт-розетка WiFiГотово! - Импорт (новых) устройств напрямую из шлюза
Информация об узле
Версия: 1.0.14
Обновлено 5 лет, 5 месяцев назад
Лицензия: MIT
Рейтинг: еще не оценен
Посмотреть на NPM
View на GitHub
Действия
Скачания
12 В последней неделе
- 449008
сяоми-магнит
сяоми-движение
xiaomi-переключатель
сяоми-вилка
xiaomi-plug-wifi
xiaomi-конфигуратор
сяоми-HT
Ключевые слова
- Xiaomi
- узел-красный
Обслуживающий персонал
- hrietman
Сообщить об этом модуле
Если вас беспокоит содержимое этого модуля, сообщите нам об этом.