16 марта 2020 г.

Подключение Xiaomi Gateway (Aqara) к Home Assistant

Установка home assistant
Я выбрал вариант для докера (установил docker и portainer (очень удобный веб интерфейс для управления контейнерами). Установка home-assistant описана тут: https://www.home-assistant.io/docs/installation/docker/ .

Режим разработчика или DIY Xiaomi Gateway (Aqara)
Устанавливаем приложение Mi Home на телефон IOS или Android, добавляем шлюз средствами программы. Активируем режим разработчика (внимание, на данный момент поддерживаются только хабы Aqara версии v2, в дригух пока такого режима нет. В версии 3 можно использовать через Apple Home, гуглите).
Заходим в хаб, нажимаем Сведения (About) в меню, нажимаем пять раз на версию приложения пока не появятся дополнительные меню на английском (нам нужно меню wireless communication protocol, в нем вы увидите пароль для хаба).

Привязываем хаб Xiaomi Gateway (Aqara) к home assistant
Для привязки одного хаба пишем в configuration.yaml:
#yum install sysbench
# You can leave MAC empty if you only have one gateway.
xiaomi_aqara:
  discovery_retry: 5
  gateways:
    - key: xxxxxxxxxxxxxxxx

Хаб найдется через мультикаст запрос, можно прописать ip хаба. Для привязки нескольких configuration.yaml:
#yum install sysbench
# 12 characters MAC can be obtained from the gateway.
xiaomi_aqara:
  gateways:
    - mac: xxxxxxxxxxxx
      key: xxxxxxxxxxxxxxxx
    - mac: xxxxxxxxxxxx
      key: xxxxxxxxxxxxxxxx

Перезапускаем сервер из веб приложения home assistant (настройки - сервер - перезапустить). И получаем.. ничего :) Ошибка:

Проверяем порт Xiaomi Gateway (Aqara)
Что бы HA подключился к хабу, нужны открытые UDP порты 4321/9898 на хабе. Говорят, в последних партиях хабов эти порты закрыты по умолчанию (Новые ревизии шлюзов (надпись около вилки идёт по кругу) поставляются с последней прошивкой). Узнаем ip адрес хаба в приложении MI Home (About -> Hub info). Тестируем порты:
#  nmap -sU 192.168.1.109 -p 5353,9898,4321
PORT     STATE         SERVICE
4321/udp open|filtered rwhois
5353/udp open|filtered zeroconf
9898/udp open          monkeycom

Если у вас порты закрыты - прочитайте статью.
У меня была определенная проблема в том что, сеть докера была в bridge mode и multicast дискаверинг не срабатывал. Переключаем докер в host mode. Открываем порт 8123 на файерволе, а так же прохождение мультикаст пакетов (на хосте с докером), если необходимо. Получаем результат:

Комментариев нет:

Отправить комментарий