Duck dns home assistant настройка
Обновление от 05.03.2021: исправлены ошибки, обнаруженные читателями.
Обновление от 08.03.2019: Последняя (0.5.0) версия аддона Nginx Proxy Manager требует явной установки другого официального аддона - MariaDB. Хочется успокоить тех, кто справедливо возмутится необходимостью держать целую базу данных для хранения настроек какого-то мелкого аддона. Дело в том, что предыдущие версии аддона также требовали наличия полноценной реляционной базы данных для работы и устанавливали её незаметно для пользователя в тот же контейнер. В последней версии Frenck, отвечающий за поддержку практически всех Community аддонов Home Assistant, просто вынес эту зависимость наружу, что позволило другим энтузиастам, использующим MariaDB для хранения истории Home Assistant, использовать один экземпляр аддона и тем самым оптимизировать место на диске и затраты процессорного времени.
Настраиваем переадресацию портов на роутере
Пробрасываем входящий трафик на портах 443 и 80 на машину, на которой крутится наш инстанс Home Assistant (адрес в вашей домашней сети). Тут я могу только посоветовать погуглить решение для вашего роутера запросом вида port forwarding имя роутера . В моём роутере настройки выглядят так (192.168.1.62 - внутренний фиксированный адрес Home Assistant в домашней сети):
В поле current ip будет указан ваш внешний IP адрес, определённый сайтом, если он по какой-то причине неправильный (например, вы настраиваете домен из другой сети) - здесь его можно изменить.
Устанавливаем Hass.io аддон Nginx Proxy Manager
Идём в список доступных аддонов Hassio и устанавливаем два аддона: Nginx Proxy Manager и MariaDB.
Для того, чтобы аддон MariaDB запустился, достаточно указать произвольный пароль пользователя homeassistant, он вам понадобится если вы захотите перенастроить компонент recorder, отвечающий за сохранение истории Home Assistant, на хранение данных истории в MariaDB. Крайне рекомендую попробовать, это драматическим образом ускоряет работу разделов Logbook и History в Home Assistant.
После того, как пароль будет прописан, аддон MariaDB должен запуститься без всяких проблем. Теперь можно перейти к Nginx Proxy Manager. Соединение с MariaDB будет установлено автоматически, никаких дополнителных настроек этот аддон не требует, поэтому просто запускаем его командой Start и открываем веб-интерфейс командой Open Web UI:
В разделе Proxy Hosts добавляем наш хост, включив опцию Websockets Support и сохраняем результат:
Аддон самостоятельно позаботится о своевременном обновлении сертификата Let’s Encrypt. Несмотря на то, что соединение защищено, крайне рекомендую настроить двухфакторную аутентификацию. В качестве второго фактора можно использовать любое TOTP приложение для смартфона, например Google Authenticator или Authy.
В прошлой статье я описал как настроить подключение к Home Assistant из любой точки, где есть интернет используя сервис Noip . Как и обещал, опишу еще один способ используя сервис duckdns, который в отличие от предыдущего способа не требует настройки Dynamic DNS в роутере.
В роутере должен быть настроены статический адрес для home assistant и проброс дня него 80 и 443 портов:
После обновления Home Assistant до версии v2021.7.0 при попытке соединиться с умным домом из интернета появилась ошибка: " 400: Bad Request "
Для ее исправления необходимо в файл configuration.yaml добавить следующее:
Если же у Вас, как и у меня portainer не установлен, адрес можно узнать используя командную строку. Для этого я подключился при помощи putty (также можно это сделать локально на сервере с home assistant) и ввел следующие команды:
Далее находим в списке имя компьютера (сервера) с home assistant (у меня это hassio) и добавляем его в команду docker network inspect <network_name>
Находим адрес addon_core_nginx_proxy и прописываем его в configuration.yaml:
После перезапуска Home Assistant доступ из интернета заработал как и прежде.
После очередного обновления и перезагрузки пропал доступ из вне к Home Assistant, из локалки проблем с доступом небыло:
В настройках ошибок не обнаружил, последующие перезапуски Home Assistant результата не принесли. Решилось все перезапуском NGINX Home Assistant SSL proxy. Может кому пригодится:
Итак, я поставил сервер Home Assistant. Находясь в одной WiFi сети я этим сервером я могу на него заходить, включать-выключать свет, смотреть температуру, и делать все то зачем и нужен HA.
Но, если я ушел, то все, — доступа к серверу нет. А хочется иметь возможность удаленно управлять домашним HA. Чтобы можно было из любого места где есть интернет делать все то же самое что можно делать находясь рядом с сервером. Например, задача, удаленно включать обогрев. Чтобы приезжаешь, а уже тепло.
Перед тем как строить удаленный доступ для Home Assistant, я решил выяснить какие вообще есть способы удаленно заходить на сервер HA. Чтобы понять какой способ лучше всего подходит в моей ситуации.
Есть совершенно отличная телеграмм группа про Home Assistant. В этой группе я создал опрос о том кто какой способ использует, вот результаты:
Реальный статический ip адрес
У разных провайдеров разные условия для получения реального статического ip адреса:
- Некоторые провайдеры дают реальный статический адрес бесплатно всем своим клиентам, просто платите за интернет, плюс при этом у вас есть реальный ip адрес
- Другие провайдеры предоставляют услугу "реальный ip адрес" за дополнительную плату
- А есть провайдеры, которые вообще не могут предоставить реальный ip адрес даже за дополнительные деньги
Итого. Если у вас уже есть реальный статический ip адрес, то вполне возможно что лучше всего вам настроить удаленный доступ к HA с помощью этого ip адреса.
Если провайдер ни при каких условиях вам не может выдать реальный статический ip адрес, то вы можете либо сменить провайдера, либо использовать какой-то другой способ для того чтобы настроить удаленный доступ.
Если же сейчас у вас нет реального ip адреса, но провайдер за дополнительные деньги может вам его выдать, то нужно думать, возможно стоит платить, либо использовать какой-то другой вариант.
Реальный динамический ip адрес
Некоторые провайдеры предоставляют своим клиентам реальный ip адрес, но этот адрес иногда меняется. Сегодня у вас реальный ip адрес "74.125.232.228", а завтра уже "74.125.232.4".
Провайдер либо дает реальный динамический ip адрес, либо предоставляет доступ в интернет как-то иначе. Я ни разу не слышал, чтобы можно было дополнительно купить услугу "Динамический реальный ip адрес".
Серый ip адрес — vpn/ssh туннель
В том случае если у вас нет реального ip адреса, то проброска порта на роутере не предоставит вам удаленный доступ в HA.
С сервера на котором у вам работает HA можно прокинуть туннель до виртулаки. Дальше вы будете заходить браузером на порт на виртуалке и при этом будете общаться с вашим сервером HA.
Итого. Если у вас нет реального ip адреса, но у вас есть сервер с реальным ip адресом, то этот вариант может вам подойти.
Серый ip адрес — использование сервиса роутера Keenetic
Если у вас есть роутер Keenetic, то вы можете использовать сервис, который идет вместе с этим роутером. Вы можете получить адрес в домене *.keenetic.pro или *.keenetic.link и настроить чтобы по этому адресу отвечал сервер Home Assistan, который живет у вас дома. Сервис бесплатный и это будет работать даже если у вас нет реального ip адреса (этот способ можно использовать и в том случае если у вас есть реальный ip адрес, но, на мой взгляд, если у вас реальный ip, то лучше использовать другой способ).
Серый ip адрес — использование TOR
Еще один вариант как можно получить доступ к серверу HA это использовать TOR. На сервере с HA нужно поднять и настроить специальный софт.
Как результат вы получите адрес вида "abcdef1234567890.onion" плюс специальный токен. Потом вам нужно установить на мобильный специальный ТОР браузер и после этого вы сможете заходить на ваш сервер удаленно.
Серый ip адрес — использование ZeroTier
Сервис платный, стоит $5 в месяц. Но, насколько я понимаю, какая-то часть этих денег (а может быть и все) идет создателям Home Assistant, так что это хорошая идея поддержать разработчиков HA деньгами, чтобы они и дальше улучшали HA.
Краткое описание:
Система домашней автоматизации Home Assistant.
Описание:
Home Assistant-это open-source платформа для автоматизации, работающая на Python 3. Позволяет отслеживать и контролировать все устройства в доме и автоматизировать действия. Идеально может работать на одноплатном компьютере Raspberry PI. Так же может работать на платформах Windows, Linux. Интерфейс построен через браузер работа возможно на любом устройстве Android, iOS.
Личный опыт:
Свою домашнюю систему я строю на данной платформе. Уже больше полугода система находится в штатном режиме и все функционирует.
Не получается настроить присутствие устройств (членов семьи). Использую компонент device_tracker: Keenetic NDMS2 Routers (У меня Zyxel keenetic lite с прошивкой NDMS 2). Ошибка при загрузке в логе (home-assistant.log):
Denn1982, Приложи файл конфигурации посмотрю что делаешь ни так. У тебя тут жалуется еще на плагин yahoo_finance. В своем случае я настроил с помощью SNMP модуля. HA SNMP
Да не знаю, что тут можно делать не так.
Все как в мануале:
- platform: keenetic_ndms2
host: !secret router_ip
username: !secret router_username
password: !secret router_password
хост в секретах: 192.168.1.1
Еще тут одна проблема нарисовалась, после некоторого времени невозможно подключиться по ssh к апельсинке, причем HASS работает, но например некоторые выключатели не работают.
device_tracker:- platform: keenetic_ndms2
host: !secret router_ip
username: !secret router_username
password: !secret router_password
interval_seconds: 10
consider_home: 180
track_new_devices: yes
Так же смотри после запуска в папке появится known_devices.yaml в нем тоже нужно настроить устройства которые будешь отслеживать. Вот мой пример одного из устройств.
bhughes_nexus6:
name: Phone
mac: AC:CF:85:D4:2B:93
icon: mdi:ninja
track: yes
hide_if_away: no В том то и дело, что файл не появляется автоматически, я его пробовал в ручную создавать, но тоже не прокатило. Еще интересно, что когда вставляю эти строчки в configuration.yaml, судя по логу еще и розетки не может найти, хотя в HASS они работают.
А если удалить секцию device_tracker то лог чистый.
UPD: Не, наврал - с розетками все время такая фигня.
Читайте также: