Случилось такое, что через DuckDNS перестало работать управление с помощью Алисы. Отвалился, грубо говоря, навык. В телеграме автора интеграции уже второй день шло обсуждение - чего, да как, да почему. Итог у всех один - переходили на другой dns-провайдер. Ну, видимо, и мне надо - без Алисы-то уже никак.
В общем, необходимость перехода понятна, а желание было уже давно, поскольку у меня роутер Keenetic, и он поддерживает свой сервиc DNS - KeenDNS, причём, вроде бы, без танцев с сертификатами.
Ну и поехали тогда.
Настройка Keenetic
Первое, что нам нужно - создать точку входа. Заходим в панель управления Keenetic - Сетевые правила - Доменное имя:
Регистрируем себе доменное имя третьего уровня:
Готово. Сертификат уже в наличии. Теперь можно по этому адресу ходить на свой роутер извне. Но нам надо не это, нам надо ходить в Home Assistant. А потому создём веб-приложение:
Здесь homeassistant - домен четвёртого уровня, по которому мы будем ходить в Home Assistant. Доступ из интернета - свободный, авторизованный или отсутствует. Свободный - это просто доступ сразу к окну логина-пароля HomeAssistant. Авторизованный - это надо сначала зайти под учёткой Keenetic, а потом уже под учёткой HA. Без доступа - значит вообще никак не зайти.
Сразу ставим протокол HTTPS и указываем порт назначения 8123.
Настройка Home Assistant
Теперь надо настроить сертификаты в HomeAssistant и вписать доверенный домен. В configuration.yaml вписываем (или меняем, если там уже был duckdns, например):
И последнее - выпускаем сертификаты Let's Encrypt для нашего домена четвёртого уровня. Если у вас уже был сертификат, сгенерированный через certbot или аддон let's encrypt - вы уже знаете что делать. У меня после переезда в docker на домене duckdns необходимость в аддоне Let's Encrypt отпала, поэтому мне пришлось его переустановить и выключить аддон DuckDns. В аддоне (или в certbot) указываем наш домен, генерируем сертификаты, перезапускаем Home Assistant и - готово!
Настройка диалога Яндекс
Идём в настройки своего диалога и меняем свой старый адрес *.duckdns.org на новый *.*.keenetic.link (или pro, или какой там у вас). Чего там и как я уже описывал ранее.
После настройки их нужно сохранить и можно проверить работу по новому домену на вкладке "Тестирование" на черновике:
Будет доступен эмулятор приложения, их которого можно запустить обновление устройств и в случае ошибок увидеть их в логе запросов:
Если же всё ок, то черновик можно опублиовать, дождаться публикации и повторить привязку в настоящем приложении.
Лично у меня после этих манипуляций голосовое управление умным домом заработало, чего и вам желаю.