Tuya в Home Assistant: Unknown error occurred после ввода User Code

Ошибка Unknown error occurred в интеграции Tuya появляется после ввода User Code - кода пользователя Tuya, который интеграция запрашивает при входе. QR-код не появляется, и вход не завершается. Судя по собранным веткам форума, причины сетевые: в одной ветке после обновления потерялись адреса DNS-серверов, и Home Assistant перестал достучаться до облачного адреса Tuya apigw.iotbing.com; в другой причиной назвали IPv6, но это предположение. Помогают включение DNS fallback с публичными серверами и отключение IPv6 - по одному подтверждению на каждое.

Как выглядит проблема

При любом варианте интеграция Tuya сообщает Unknown error occurred, и вход не завершается. В собранных ветках встречаются три сценария:

  • после ввода User Code интеграция показывает Unknown error occurred, QR-код не появляется;
  • повторная авторизация в облаке Tuya падает с Unknown error occurred и ошибкой SSL EOF при обращении к apigw.iotbing.com;
  • после обновления Home Assistant не выходит войти в Tuya: Unknown error occurred после ввода идентификатора пользователя, сервер недоступен.

В логах при этом встречаются такие строки:

Unknown error occurred

urllib3.exceptions.NameResolutionError: HTTPSConnection(host='apigw.iotbing.com', port=443): Failed to resolve 'apigw.iotbing.com' ([Errno -3] Try again)

requests.exceptions.SSLError: HTTPSConnectionPool(host='apigw.iotbing.com', port=443): Max retries exceeded with url: /v1.0/m/life/home-assistant/qrcode/tokens?clientid=XXXXXXX=BaSTWw3&schema=haauthorize (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1000)')))

Строка с Failed to resolve говорит о том, что домен не разрешается (имя не удается превратить в IP-адрес). Строка с SSLEOFError - что защищенное соединение (TLS) с доменом обрывается.

Причины

В собранных ветках причина оба раза была сетевой: одно подтверждение и одно предположение.

ПричинаКак проверитьЧто сделать
После обновления Home Assistant потерялись адреса DNS-серверов. Подтверждено в 1 веткеПосмотреть логи: строка Failed to resolve 'apigw.iotbing.com' указывает, что домен не разрешаетсяВключить DNS fallback, задать публичные DNS-серверы и перезапустить DNS
В обновлении Home Assistant Core что-то изменилось в работе IPv6. Предположение, подтверждений нетПрямой проверки нет: отключают IPv6 и пробуют войти сноваОтключить IPv6 в настройках сети Home Assistant

Что помогло

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

Включить DNS fallback и публичные DNS

У одного пользователя ошибка возникла после обновления Home Assistant: адреса DNS-серверов потерялись, и домен apigw.iotbing.com перестал разрешаться. Помогло включение DNS fallback (резервного разрешения имен) с публичными серверами и перезапуск DNS:

ha dns options --fallback=true
ha dns options --servers dns://8.8.8.8 --servers dns://1.1.1.1
ha dns restart

Отключить IPv6

У одного пользователя помогло отключение IPv6 в настройках сети Home Assistant. Тот же пользователь предположил, что в последнем обновлении Home Assistant Core что-то изменилось в работе IPv6. Это догадка без подтверждений, но само отключение сработало.

Исключить apigw.iotbing.com в Zenarmor

У одного пользователя, у которого вход падал с ошибкой SSL EOF, помогло добавление apigw.iotbing.com в список исключений политики по умолчанию Zenarmor на OPNsense. Если в сети нет OPNsense с Zenarmor, этот пункт можно пропустить.

Переустановить систему

Крайний вариант, который тоже сработал: у одного пользователя помогла полная переустановка - операционной системы, Docker и Home Assistant вместе.

Если не помогло

В собранных ветках нет решений, которые пользователи пробовали и которые не сработали. Осталось одно неподтвержденное: перейти на новый способ подключения интеграции Tuya. В документации интеграции вход описан через QR-код: Scan the QR code displayed on your Home Assistant screen. Один пользователь переключился на этот способ после ошибки, но отчета о результате нет. Общая настройка интеграции и Tuya Local разобраны в гайде по Tuya и Tuya Local.

Частые вопросы

Может ли ошибка возникать из-за неверного User Code?

В собранных ветках - нет: обе найденные причины сетевые. Домен apigw.iotbing.com либо не разрешался после обновления Home Assistant, либо соединение до него обрывалось. Если сомневаетесь в самом коде, перепроверьте его, но при ошибке Unknown error occurred сначала смотрите логи: из них видно, доходит ли запрос до облака Tuya. Где взять код пользователя, разобрано отдельно.

Почему в ошибке упоминается apigw.iotbing.com?

Это облачный адрес Tuya. Судя по пути /v1.0/m/life/home-assistant/qrcode/tokens в тексте ошибки, через него Home Assistant запрашивает QR-код для входа. Когда домен не разрешается или TLS-соединение обрывается, QR-код не выдается, и интеграция показывает Unknown error occurred. Поэтому причину ищут в DNS, IPv6 и, если трафик проходит через OPNsense с Zenarmor, в списке исключений фильтра.

Ошибка появилась после обновления Home Assistant. Это совпадение?

Возможно, связь есть. В одной ветке после обновления Home Assistant потерялись адреса DNS-серверов, и домен Tuya перестал разрешаться. В другой пользователь связал ошибку с изменениями IPv6 в обновлении Home Assistant Core, но это предположение без подтверждений. Поэтому после обновления сначала проверяйте DNS и IPv6, а уже потом ищите проблему в самой интеграции Tuya.

Стоит ли сразу переустанавливать всю систему?

Нет, это крайний вариант. Полная переустановка - операционной системы, Docker и Home Assistant - помогла одному пользователю, но в других ветках ошибка решалась без нее: включением DNS fallback или исключением домена в Zenarmor. Отключение IPv6 помогло в той же ветке, что и переустановка. Начните с этих шагов и переходите к переустановке, только если ничего не сработало.

Андрей Ковалев, редактор. Собирает решения из веток форума Home Assistant и сверяет команды и настройки с официальной документацией.