
Удаленный доступ Home Assistant Duck DNS
При динамическом IP адресе удаленный доступ к Home Assistant настроить не получится. Для этого необходим статический IP адрес или DDNS сервис. На этом примере покажем как быстро подключить Duck DNS.
Ранее мы рассказывали, как настроить удаленный доступ Home Assistant со статическим IP. Если у вас статический IP адрес, то рекомендуем воспользоваться другой статьей. В ней нет сторонних интеграций. И все что вам нужно — открыть порт для подключения к Home Assistant.
Duck DNS — сервис для получения домена, который будет указывать на ваш динамический адрес. Которой в свою очередь не меняется, и вы всегда сможете получить доступ.
Существует несколько способов подключения:
- Через настройку роутера
- Напрямую в Home Assistant
В этом материале будем рассматривать второй. Так как не все роутеры поддерживают технологию DDNS. Нет необходимости открывать полный доступ к сети через домен, если у вас всего одно устройство. Это может быть не безопасно.
Регистрация в сервисе
Для начала зарегистрируем аккаунт в сервисе. Для этого переходим по ссылке https://www.duckdns.org/ и в шапке сайта выбираем удобный для вас способ входа.

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

В появившейся форме вводим домен в удобном для вас формате. И нажимаем «add domain»

Теперь со страницы копируем token и домен, который только что добавили. И переходим в Home Assistant.

Настройка Duck DNS Home Assistant
Отрываем файл конфигурации configuration.yaml и добавляем строчки, заменяя на свои данные. Для редактирования воспользуемся интеграцией File Editor или FTP сервером.
duckdns:
domain: YOUR_SUBDOMAIN # без .duckdns.org
access_token: YOUR_ACCESS_TOKEN

На этом настройка завершена, если вы все сделали по инструкции, то Home Assistant будет доступен по адресу вашего домена. Не забудьте указать порт, без него будет ошибка 403.
Вот что примерно должно получиться:
http://io-home-ddns.duckdns.org:8123/
Давайте проверим, переходим по нему в браузере.

Теперь вы можете указать этот адрес в мобильном приложении. И управлять умным домом удаленно.
В коде пишите duckdns:
# без .duckdns.org
А в примере далее:
Вот что примерно должно получиться:
http://io-home-ddns.duckdns.org:8123/
Так с доменом писать или без?
В конфиге необходимо указать без .duckdns.org. Пример заполнение можно посмотреть чуть ниже на скриншоте.
А вот когда вы хотите зайти с браузера, то тогда необходимо указать полный адрес.
Очень интересней и простой способ, но к сожалению у меня не работает. В чем может быть причина? Дополнение Duck DNS точно не надо ставить в Home Assistant?
Вы когда изменяете configuration.yaml и перезагружаете Home Assistant, появляются ли какие-то ошибки?
Дополнение ставить не нужно так как в новых версиях duckdns оно встроено в Home Assistant.
Ошибок, нет. Изменения в configuration.yaml внес как у вас описано.
у меня сервер не одно устройство в сети, может на роутере надо пробросить порт?
Попробуйте открыть 8123 порт. Если у вас Keenetic, то можете воспользоваться инструкцией из статьи Удаленный доступ Home Assistant со статическим IP, а именно в разделе «Переадресация портов».
Если Вы находитесь за провайдерским NATом, ни какой DuckDNS Вам не поможет! Чтобы это понять посмотрите на роутере в WAN подключении какой Вы получили IP адрес от провайдера и посмотрите свой глобальный IP адрес в сети Интернет, например на странице internet.yandex.ru, если они не совпадают, значит можете не стараться, все равно у Вас ни чего не получится.
Да, вы правы, но как правило можно попросить отключить NAT. У моего провайдера (DOM.RU) можно самому в личном кабинете включать/выключать NAT
Приветствую, коллеги по увлечению. А вот как раз сегодня и проверю, кто таки прав. Потому, что есть опыт получения через кинетиковский сервис прямого доступа в домашнюю сеть…. Но там Ростелеком, а сейчас Истранет. Самое интересное, что у РТ адрес на соединении выглядит как белый динамический, но снаружи видится совсем другой. И вот через этот непонятный маскарад кинетик пробивается. У Истранета адрес вида 192.168.х.х. Вот и проверим…
Почему то даже выключив NAT в личном кабинете дом ру адрес все равно остается за NATно при этом все мои устройства имеют один и то же ip. duckdns не помогает. запускаю трассировку до меня из вне и проходя через lag-3-438.bgw01.nn.ertelecom.ru упирается в dynamicip-95-79-151-150.pppoe.nn.ertelecom.ru. что я не понимаю ил иделаю не так? или все же у меня серый ip и простыми методами удаленное подключение не настроить? PS: естественно роутер и подключение перезапускал через некоторое время после отключения NAt в личном кабинете.
Приветствую.
Попытки добраться до НА извне. Прошелся по статье для статического ip — не помогло (хотя доступ к имеющейся простецкой камере есть извне — механизм проброса портов работает).
Решил попробовать подход с DDNS — настроил. К той же камере доступ есть через duckdns.org, а вот к HA … облом, хотя порт проброшен.
Менял в configuration.yaml по-разному, 1)с просто имя поддомена и 2)полный url типа http://mydomen.duckdns.org:8123/
Не помогает. В сетевом доступе изве (в настройках самого НА) доступ открыт.
НА запущен на OrangePI3, который внутри домашней сетке.
На что еще можно посмотреть?
И что это за такой случай — доступ через какое-то мобильное приложение (когда в configuration.yaml указывается не полный url)?
Заранее спасибо
Спасибо за статью!
Благодаря комментариям о NAT позвонил провайдеру и его отключили. Кстати, это Белтелеком Беларусь (возможно кто-то из земляков будет читать).
Также у меня без открытия порта 8123 на роутере не заработало.
А еще мне кажется, в статье было бы полезно описать как DuckDNS должен получать информацию о смене динамического IP. Пока не знаю ответа на этот вопрос, но предполагаю, что аддон DuckDNS для HA как раз для этой задачи.
Также в статье не описано, как DuckDNS будет получать данные об обновлении динамического
аддон DuckDNS проверяет твой IP раз в 300сек по умолчанию, как и указано в конфигурации к DuckDNS add-on
Если там же в конфигурации выставить accept_terms: true то установиться SSL сертификат, который нужно прописать в configuration.yaml:
http:
ssl_certificate: /ssl/fullchain.pem
ssl_key: /ssl/privkey.pem
Пока не получилось. В duckdns напротив моего домена указан текущий IP адрес, который совпадет с тем что показывает https://yandex.ru/internet/
В админке роутера, в разделе DDNS есть сообщение «Беспроводной роутер использует приватный WAN IP адрес. Этот роутер находится в NAT окружении и служба DDNS работать не может» Это то о чем писал Максим выше?