Открытие портов 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:

    image

    В статье я опишу, как открыть эти порты, и что для этого потребуется.

    Подготовка


    Не уверен, что можно размещать ссылки на конкретные магазины, поэтому укажу только цены, по которым я купил всё необходимое в Москве. Нам потребуются:

    • Насадка U6 для отвёртки (она же SP6) — 36 руб
    • Конвертер USB-to-TTL на базе CH340 — 84 руб
    • Соединительный кабель мама-папа — нужно минимум 3 штуки, но я взял набор из 40 штук за 110 руб
    • Паяльник — у меня был :)

    Приступаем к самому интересному


    Все дальнейшие действия вы выполняете на свой страх и риск. Вскрытие шлюза лишает вас гарантии.

    Первым делом необходимо снять три резиновых накладки, которые закрывают винты. Накладки не приклеены, просто поддеваем их чем-то тонким: я использовал нож.

    image

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

    image

    К плате шлюза потребуется припаять три кабеля. С двумя точками всё ясно, третья — сбоку на кнопке. Места обозначены на картинке:

    image

    У нас получится нечто такое:



    На следующем этапе необходимо настроить подключение для конвертера. Убираем с конвертера перемычки (при покупке у меня она стояла на 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 проверяем порты. В моём случае они оказались открыты!

    image

    Похожие публикации

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 32

      0
      День добрый.
      Это все, конечно, интересно, но… У меня такой же шлюз спокойненько работает с HA и нужные порты открыты.
      Вы пробовали читать доку тут www.home-assistant.io/integrations/xiaomi_aqara? А этой доке есть сылка на Adding_the_Xiaomi_Gateway_to_Domoticz, где указано как ввести шлюз в режим разработчика.
        +1
        Я не знаю, как дело обстоит сейчас. Но полгода назад было так, что если сначала по воздуху обновить прошивку шлюза, и только потом включить на нём режим разработчика, то он окажется недоступным. И вернуть режим разработчика можно уже можно будет только с помощью UART.
          +2

          Новые ревизии шлюзов (надпись около вилки идёт по кругу) поставляются с последней прошивкой. Там порты изначально закрыты, по-другому их не открыть.
          На старых версиях с этим было проще.

            +1
            Тут всё ещё забавнее стало сейчас. Потому что под именем DGNWG05LM могут продаваться как минимум, две разных модели. Одна из них идентична вашей (только с европейской вилкой) и подключается через uart, другая внешне выглядит точно таким же образом, имеет те же маркировки, но содержит внутри другую плату. И не разблокируется совсем. Можно только перепрошить на сторонний софт, в котором лишь часть вещей поддерживаются. Так что надо быть крайне внимательным при покупке и проверять не только надпись на корпусе, но и идентификацию устройства в Mi Home (будет что-то типа lumi.gateway.mieu01 в неудачном случае). Плата неудачника выглядит так: user-images.githubusercontent.com/39265343/66909562-a2557600-f015-11e9-81fc-6d921247d803.png
              0

              Подозреваю, что у вас не Xiaomi Gateway, а Aqara Gateway. Для Home Assistant подходит только та модель второй версии шлюза, которую я написал в статье.

                0
                А нет, я ошибся. Это шлюз, который в наборе с датчиками для Европы идёт.
          0
          Проверил сейчас свой, режим разработчика активен, открыты только 2 UDP порта, 5353 и 54321.
          0
          Ты крут.
          Даже немного жаль, что я решил стратегически от шлюза отказаться совсем :-)
          но у меня дикая идиосинкразия к постоянной связи с инетом, тем более — с китайскими серверами.
          Думаю, Zigbee-стик — это более перспективное решение.
            0

            Да, стик — штука интересна. Но я пока запланировал только десяток датчиков. С таким количеством шлюз проще.

              0

              Поверьте, шлюз не проще ни с каким количеством датчиков :-)
              Выбросьте эти костыли и попробуйте поднять свою ZigBee сеть, удивитесь как это просто. Простой адаптер стоит 8 евро или 15 евро /> уже прошитый

              . Ну и потом забудете как страшный сон этот проприетарный девайс который иногда из сети вываливается или по-китайски разговаривает по ночам.
                0
                Пока ничего не отваливалось. Да и как ночник с динамиком он мне больше подходит :)
                Посмотрим, может быть когда-нибудь перейду на стик.
                  0
                  Кстати, там вроде появилась возможность смены языка фраз.
                    0

                    Ох, как у вас всё по маркетинговому сладко. А про глюки никто, конечно же, не расскажет. Это у некоторых рукожопов там проблемы, у основной массы нет проблем, да? Имею я стик v1 и v3. Этим штукам для продакшена ещё ой как далеко. Во-первых реакция. С шлюзом сяоми она мгновенная, как механическим разъединителем лампочку включить. У стика задержка примерно 0.25сек, и задержка растёт с количеством девайсов. А внезапные падения? Работает-работает, а потом бац, и ни одного устройства, и все заново спаривать. А что на счёт новых устройств? Ждать пока кто-то добавит месяцами, а потом ждать, пока кто-то исправит косяки у этих добавленных? И ещё куча причин. Столько раз оно меня полводило…
                    Не рекомендую сразу ставить, сначала ставьте для поиграться, а через годок сделаете собственные выводы.

                      0
                      Я не говорил что проблем нет, они есть везде. Просто если говорить о проблемах, то как раз подобные черные ящики как раз куда более проблемные если сравнивать:
                      Во-первых реакция. С шлюзом сяоми она мгновенная, как механическим разъединителем лампочку включить. У стика задержка примерно 0.25сек, и задержка растёт с количеством девайсов.

                      У меня заметной глазом разницы задержки нет. Опять же, с открытой сетью хотя бы поделать можно что-то если сигнал плохой. Например, сменить канал или посмотреть на карте сети где слабые места и принять правильные решения. Если же этот гейтвей заглючил то можно только перезагрузить его разве и надеятся на чудо.
                      А внезапные падения? Работает-работает, а потом бац, и ни одного устройства, и все заново спаривать.

                      Я с таким не сталкивался. Что конкретно за стик у вас? Но я менял канал и переспаривал девайсы — для этого достаточно разрешить пейринг и обойти все девайсы где нажать кнопочку один раз. Все конфиги автоматически обратно цепляются. А вот со шлюзом у меня были такие «бац»: все устройства просто исчезали из прилки mi home, переподключай всё заново. Хуже когда он просто зависает и приходится его из розетки передергивать. Могли бы watchdog сделать что ли. Обновляет прошивку без спроса, потом сиди гадай заработает dev mode там или нет. Меня такое самодурство раздражало страшно.
                      А что на счёт новых устройств? Ждать пока кто-то добавит месяцами, а потом ждать, пока кто-то исправит косяки у этих добавленных?

                      Ну а что мешает самому добавить / поправить? Как минимум есть надежда или возможность что-то починить. Или Xiaomi на любой запрос о проблеме в тот же вечер ответным письмом новую прошивку с исправлениями присылает? =)

                      В общем, у меня тоже негатива хватает, если поскрести по сусекам. Но, ИМХО в открытой самодельной системе как правило можно что-то решить хотя бы. Чего не скажешь про такие закрытые решения.
                        0

                        Сяоми, как правило, добавляет новые устройства ещё до того, как они до меня доедут из Китая, даже если я их на старте продаж куплю. Можно и самому прошивки писать, добавлять все устройства, можно даже самому их делать, но моя жизнь и деятельность не связаны с этими вопросами, а второй параллельной жизни как-то и нет, чтоб её тратить на это. У меня есть сяоми шлюз и иоброкер. Всё работает в этой связке, на малине 3. Потом параллельно построил вторую систему, на такой же малине, но в паре со стиком v1. Позже заменил стик на v3. И вот там, где шлюз сяоми — там вообще ни одной проблемы небыло. А там где стик, я уже два раза все устройства перепривязывал, и пару раз приходилось перезагружать, потому как не реагировал ни один ZigBee девайс, притом wifi девайсы работали. И задержка есть, хоть и очень не значительная, но есть. А на сяоми совсем задержки незаметно, хотя в три раза больше девайсов.

                          0

                          И ещё хотелось бы добавить, что поддержки или каких либо обнов на эти стики нет. Его запилили, выкинули как есть, и забыли. Обнаруженные проблемы никто не исправляет, просто позже выпустят стик другой версии, на другом железе, который можно купить и надеяться что там старые проблемы исправлены и новых не добавили. По этим правилам выпущены уже более трёх версий стиков и одна круглая плата в корпус сяомивского шлюза. Никому не интересно править прошивки, всем интересно новую сырую железку запилить. А сяоми хотябы свои баги лечит.

                            0
                            А что за стики и что за три версии, можно конкретнее? Я сам использую довольно старый CC2530 + dev board без особых проблем. Если вам нужен действительно хороший девайс то можно взять например референс от Texas Instruments за 40 евро который потянет 300 девайсов и не подавится.

                            Сяоми, как правило, добавляет новые устройства ещё до того, как они до меня доедут из Китая, даже если я их на старте продаж куплю.

                            Да, но насколько я помню это всё равно была пляска с бубном, некоторые устройства появлялись только на китайских серверах например, вы таких проблем не испытывали? А некоторые вообще не появлялись ) И если устройство не появлялось на вашем сервере то надо было в прилке сносить весь свой умный дом и настраивать всё заново. И если устройства не было в списке то запейрить его невозможно. Вы считаете это нормальным процессом? =) CC2530 при обновлении прошивки для поддержки новых устройств перепривязки не требует например.

                            По этим правилам выпущены уже более трёх версий стиков и одна круглая плата в корпус сяомивского шлюза.

                            Которая живёт своей жизнью =) Захочет, откроет порты, захочет нет. Вам например удавалось скипнуть обновление прошивки? Кроме того плата не одна, у них есть несколько версий и свои приколы.
                              +1
                              Да, но насколько я помню это всё равно была пляска с бубном, некоторые устройства появлялись только на китайских серверах например, вы таких проблем не испытывали? А некоторые вообще не появлялись )

                              Для Android есть модифицированный Mi Home от Vevs, который показывает все устройства со всех регионов. На регионе «Россия», например, можно даже экзотические стиральные машинки подключить.
                    0
                    У себя сразу поставил стик ConBee 2 + deConz и не было ни одной описанной ниже проблемы.

                    У знакомого позже решили делать через шлюз Xiaomi, и много раз пожалели:
                    — необходимость подключения через UART и открытия портов
                    — не все роутеры нормально умеют multicast, из-за чего шлюз регулярно отваливался
                    — после замены роутера датчики могли залипать и переставали реагировать на раздражители
                    — икеевскую лампу к шлюзу так и не удалось подключить после десятков попыток.

                    Добавлю, что работать через приложение MiHome довольно неудобно.
                    Разница в скорости отклика между шлюзом и стиком незаметна.
                      0
                      Тоже использовал у себя conbee 2 + deconz. Но у меня лампы от Philips Hue, а им для работы вообще не требуется стик — лампы и соответствующий выключатель образовывают группу zigbee, которая может работать автономно. Так что задержек вообще нет.
                      Впрочем, по aqara cube задержка тоже минимальна (если вообще есть).
                  +3

                  В топку этот шлюз, недавно отключил его из своей сети. ZigBee прекрасно работает и заводится с open source шлюза: zigbee2mqtt, поддерживает полтысячи устройств, включая Xiaomi и девайсы от Ikea (которые дешевле и лучше Xiaomi) и много, много других.


                  Список тут: https://www.zigbee2mqtt.io/information/supported_devices.html


                  Я использую CC2530 на сеть из порядка 25 устройств (Ikea и Xiaomi).

                    0
                    а еще есть божественный deconz, который прекрасно интегрируется в тот же HA
                    +1
                    Можно ещё посмотреть в сторону zigbee2mqtt, чтобы вообще обойтись без Xiaomi Gateway. При этом вся связь с «умным домом» будет работать на протоколе MQTT, т.е. можно хоть через консоль общаться с устройствами.
                    UPD: Упс, уже написали про это.
                      0
                      Очень бы хотелось найти подобную инструкцию для открытия портов на шлюзе первого поколения (DGNWG01LM), если это возможно в принципе сделать.
                        0
                        На днях получил шлюз 2й версии с надписями по кругу (вилка китайская). Тоже готовил к «вскрытию». Однако порты открылись без проблем. А вот 3я версия, которую купил изначально это не может. Вобще по ней мало инфы. Если есть у кого — буду благодарен.
                          0

                          Насколько я знаю, она подключается через HomeKit. Но есть проблемы с обновлением набора датчиков. Приходится шлюз перепривязывать каждый раз, когда добавляете/убираете датчик.

                            0
                            Нет, через Mi Home подключилось без проблем, датчики тоже прицепились. С алисой тоже интегрировалось. Но потом решил с Mi home перейти на domoticz и выяснилось, что порты не открыть (по крайней мере я не нашел как).
                              0
                              Я имел в виду, что в Home Assistant третий хаб подключается не как предыдущие (потому что нет режима разработчика), а только через HomeKit. В целом, набор протоколов в нём классный, но вне Mi Home этот шлюз пока бесполезен.
                          0
                          Паять не обязательно, для ввода пары команд можно и руками подержать.
                          вот как-то так



                          А вообще, намучался я с этим шлюзом — то устройства теряются и отваливаются, то сценарии странно приживаются после изменения — когда сразу, когда через какое-то время. Не говоря уже о слабых возможностях этих сценариев. С регионами всё неудобно. Плюс шляпа с разными утечками данных.
                          Вобщем, Orange Pi Zero + USB-стик CC2531 + zigbee2mqtt + Home Assistant — и все работает так, как мне хотелось.
                          Шлюз оставил как сирену и подсветку.
                            0
                            А а одиночный провод точно можно называть кабелем? Что-то мне сомнительно. И вводит в заблуждение.
                              0

                              Об этом способе писали полгода назад на 4pda и community.openhab.com

                                0
                                А можно просто выкинуть оригинальную плату и сделать апгрейд шлюзу на плату от Jager'а.
                                С прошивкой SLS Gateway можно подключать не только Xiaomi устройства, но и других производителей — IKEA, Philips, Trust и прочих. Данные по MQTT сразу отправлять в УД.

                                Заголовок спойлера
                                image
                                image

                                Подробнее о плате тут
                                Подробнее о прошивке тут

                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                Самое читаемое