Найти в Дзене
Олег & K

Доступ из вне к "умному" дому

Ссылка на предыдущую статью Настраиваем Home Assistant , установка дополнений Одним из важнейших моментов, как мне кажется, в работе "умного" дома, это возможность контролировать систему из вне, т.е. удаленно, это конечно идет в разрез с главным нашим принципом автономности, но как ни странно ему не противоречит. Т.е. автономность, подразумевает бесперебойную работу всех систем умного дома без доступа к интернету, а внешний доступ ни как на эту автономность не влияет, но дает дополнительные возможности, как по управлению так и по контролю за своим домом. Поэтому доступ из вне рассматривается мной как один из приоритетных задач по настройке умного дома. Первое что хотелось бы сказать, если ваш провайдер позволяет получить статический ИП адрес , сделайте это (закажите эту услугу, у разных провайдеров она стоит по разному, но я не думаю, что стоимость на месяц поддержания static IP дороже пачки сигарет), но при этом вы избежите "геморроя" и всяческих нюансов с привязкой динамического а

Ссылка на предыдущую статью Настраиваем Home Assistant , установка дополнений

Одним из важнейших моментов, как мне кажется, в работе "умного" дома, это возможность контролировать систему из вне, т.е. удаленно, это конечно идет в разрез с главным нашим принципом автономности, но как ни странно ему не противоречит. Т.е. автономность, подразумевает бесперебойную работу всех систем умного дома без доступа к интернету, а внешний доступ ни как на эту автономность не влияет, но дает дополнительные возможности, как по управлению так и по контролю за своим домом.

Поэтому доступ из вне рассматривается мной как один из приоритетных задач по настройке умного дома.

Первое что хотелось бы сказать, если ваш провайдер позволяет получить статический ИП адрес , сделайте это (закажите эту услугу, у разных провайдеров она стоит по разному, но я не думаю, что стоимость на месяц поддержания static IP дороже пачки сигарет), но при этом вы избежите "геморроя" и всяческих нюансов с привязкой динамического адреса к домену и много подводных камней.

Второе, сделайте себе домен, и привяжите его к вашему полученному от провайдера статическому внешнему IP адресу, это то же не дорого, на reg.ru вы можете получить домен в зоне .ru за те же 200 р. в год. Согласитесь, это не так дорого.

единственное хочу добавить что лучше сразу прописать субдомен (а не willdcard в виде * ), ну например у меня так, т.е. два субдомена www и smart

-2

Как получить домен и статический адрес я описывать не буду, но если вдруг у вас нет возможности получить статический ИП и свой домен, то есть альтернативный вариант получения домена с динамическим адресом, он не так надежен и требует дополнительных телодвижений, так что если есть хоть какая то возможность идти по первому варианту, то предпочтите его.

Далее будем исходить из того что вы зарегистрировали домен myhome.ru, и прописали в dns субдомен smart.myhome.ru, а также что прошло 2-3 часа и команда

nslookup smart.myhome.ru
или
ping smart.myhome.ru

вам выдает адекватный ответ с вашим статическим адресом выданным вашим провайдером

Если всё хорошо, то далее нам нужно пробросить порты с нашего роутера на наш центральный контролер (Orange Pi)

Для примера, если адрес вашей Orange Pi во внутренней сети 192.168.1.75, то в роутере нужно пробросить на неё порт 80 (временно) и порт 443 (постоянно), например в моем роутере от Mgts (RV6699) это выглядит так

-3

в других моделях роутеров я думаю вы то же без труда найдете данный раздел.

80 порт нам нужен только на время получения SSL ключей, дальше его можно будет закрыть.

Далее через магазин дополнений устанавливаем Let's Encrypt

-4

В конфигурации прописываем свой домен и существующий емайл (не знаю насколько это критично но емайл должен совпадать с тем на который вы регистрировали домен на reg.ru, но это не точно)

domains:
- smart.myhome.ru
email: xxxxx@xxxxx.xxx
keyfile: privkey.pem
certfile: fullchain.pem
challenge: http
dns: {}

Запускаем дополнение Let's Encrypt и смотрим в журнал, вы должны получить что то вроде этого в журнале

[13:21:51] INFO: Selected http verification
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for smart.myhome.ru

Successfully received certificate.
Certificate is saved at: /data/letsencrypt/live/smart.myhome.ru/fullchain.pem
Key is saved at: /data/letsencrypt/live/smart.myhome.ru/privkey.pem
This certificate expires on 2023-11-12.

Как видите мы получили ssl сертиaикат и действителен он в течении 3-х месяцев, т.е. примерно через три месяца вам надо будет перезапустить дополнение Let's Encrypt , что бы обновить сертификаты и ключи (в принципе это можно автоматизировать, но об этом много позже)

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

Следующим шагом нам надо установить дополнение из магазина дополнений - NGINX Home Assistant SSL proxy

-5

Устанавливается стандартно, перед запуском в конфигурации надо прописать только ваш домен (с субдоменом)

-6

Данное дополнение установит нам кэширующий HTTP прокси, кроме того избавит нас от перенаправления портов по SSL протоколу.

В основном файле конфигурации (configuration.yaml) HA добавляем

http:
use_x_forwarded_for: true
trusted_proxies:
- 172.30.33.0/24

Если вы всё сделали корректно, то теперь зайдя с внешнего адреса (проще всего проверить отключив в WiFI в телефоне и в браузере набрать smart.myhome.ru) должно появиться окно входа в Home Assistant.

-7

Ну и раз зашла речь о телефоне, скачайте и установите приложение Home Assistant с Google Play или Apple Store

Ссылка на следующую статью Настраиваем Home Assistant , добавляем Mosquitto MQTT broker и Zigbee2MQTT