- Переходим на KeenDNS и перевозим Алису.
- Настройка Keenetic
- Настройка Home Assistant
- Настройка диалога Яндекс
- Способы настройки удаленного доступа к Home Assistant
- Реальный статический ip адрес
- Реальный динамический ip адрес
- Серый ip адрес — vpn/ssh туннель
- Серый ip адрес — использование сервиса роутера Keenetic
- Серый ip адрес — использование TOR
- Серый ip адрес — использование ZeroTier
- Серый ip адрес — nabucasa.com
- Saved searches
- Use saved searches to filter your results more quickly
- License
- white777777/HomeAssistant-keenetic-entware
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
Переходим на KeenDNS и перевозим Алису.
Случилось такое, что через 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, или какой там у вас). Чего там и как я уже описывал ранее .
После настройки их нужно сохранить и можно проверить работу по новому домену на вкладке «Тестирование» на черновике:
Будет доступен эмулятор приложения, их которого можно запустить обновление устройств и в случае ошибок увидеть их в логе запросов:
Если же всё ок, то черновик можно опублиовать, дождаться публикации и повторить привязку в настоящем приложении.
Лично у меня после этих манипуляций голосовое управление умным домом заработало, чего и вам желаю.
Способы настройки удаленного доступа к Home Assistant
Итак, я поставил сервер Home Assistant. Находясь в одной WiFi сети я этим сервером я могу на него заходить, включать-выключать свет, смотреть температуру, и делать все то зачем и нужен HA.
Но, если я ушел, то все, — доступа к серверу нет. А хочется иметь возможность удаленно управлять домашним HA. Чтобы можно было из любого места где есть интернет делать все то же самое что можно делать находясь рядом с сервером. Например, задача, удаленно включать обогрев. Чтобы приезжаешь, а уже тепло.
Перед тем как строить удаленный доступ для Home Assistant, я решил выяснить какие вообще есть способы удаленно заходить на сервер HA. Чтобы понять какой способ лучше всего подходит в моей ситуации.
Я знаю про такие варианты. Вполне возможно что есть еще какие-то способы как можно удаленно заходить на сервер HA (если вы о них знаете, напишите, пожалуйста на ivan@bessarabov.ru, я дополню этот список).
- Реальный статический ip адрес
- Реальный динамический ip адрес, использование сервиса duckdns.org или подобного
- Серый ip адрес — vpn/ssh туннель до сервера с реальным статическим адресом
- Серый ip адрес — использование сервиса роутера Keenetic
- Серый ip адрес — использование TOR
- Серый ip адрес — использование сервиса nabucasa.com
Есть совершенно отличная телеграмм группа про Home Assistant. В этой группе я создал опрос о том кто какой способ использует, вот результаты:
(Когда я создавал этот опрос я еще не знал про сервис nabucasa.com, поэтому такого пункта в опросе нет)
Реальный статический ip адрес
Это самый простой и надежный способ сделать возможность удаленно заходить на свой сервер Home Assistant. Ваш провайдер интернета выделяет вам настоящий ip адрес к которому можно обращаться из интернета. Например, «74.125.232.228». И этот ip адрес не меняется, все время у вас именно такой адрес. Дальше вы на роутере настраиваете проброску портов. Например, в вашей сетей сервер HA живет на адресе http://192.168.1.30:8123 и вы настраиваете на роутере что если человек приходит на ваш реальный http://74.125.232.228:8123, то это все прокидывается на сервер HA http://192.168.1.30:8123 После такой настройки появляется возможность заходить на сервер HA снаружи.
Но лучше всего настройку на этом не закончить, а сделать чтобы доступ к серверу был по протоколу https, а не http. (При использовании http гораздо больше вероятности что у вас украдут логин-пароль для доступа к HA и злоумышленник получит доступ к вашему HA)
У разных провайдеров разные условия для получения реального статического ip адреса:
- Некоторые провайдеры дают реальный статический адрес бесплатно всем своим клиентам, просто платите за интернет, плюс при этом у вас есть реальный ip адрес
- Другие провайдеры предоставляют услугу «реальный ip адрес» за дополнительную плату
- А есть провайдеры, которые вообще не могут предоставить реальный ip адрес даже за дополнительные деньги
Итого. Если у вас уже есть реальный статический ip адрес, то вполне возможно что лучше всего вам настроить удаленный доступ к HA с помощью этого ip адреса.
Если провайдер ни при каких условиях вам не может выдать реальный статический ip адрес, то вы можете либо сменить провайдера, либо использовать какой-то другой способ для того чтобы настроить удаленный доступ.
Если же сейчас у вас нет реального ip адреса, но провайдер за дополнительные деньги может вам его выдать, то нужно думать, возможно стоит платить, либо использовать какой-то другой вариант.
Реальный динамический ip адрес
Некоторые провайдеры предоставляют своим клиентам реальный ip адрес, но этот адрес иногда меняется. Сегодня у вас реальный ip адрес «74.125.232.228», а завтра уже «74.125.232.4».
Точно так же как и в случае с реальным ip адресом вы пробрасываете порт на роутере. Плюс нужно настроить специальный софт, чтобы заходить снаружи не на айпишник (который меняется), а на специальное имя типа my-domain.duckdns.org. (благодаря софту это имя всегда указывает на тот реальный ip адрес, который у вас сейчас).
Провайдер либо дает реальный динамический ip адрес, либо предоставляет доступ в интернет как-то иначе. Я ни разу не слышал, чтобы можно было дополнительно купить услугу «Динамический реальный ip адрес».
Итого. Если провайдер вам выдает реальный динамический ip адрес, то, скорее всего, вам стоить настроить доступ к HA через duckdns.org.
Серый ip адрес — vpn/ssh туннель
В том случае если у вас нет реального ip адреса, то проброска порта на роутере не предоставит вам удаленный доступ в HA.
Но если у вас есть виртуалка на digitalocean.com или у другого облачного провайдера, то вы можете сделать следующее.
С сервера на котором у вам работает 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
Это внешний сервис. Существует специальный плагин который позволяет использовать этот сервис — https://community.home-assistant.io/t/home-assistant-community-add-on-zerotier-one/109091.
Серый ip адрес — nabucasa.com
Существует сервис nabucasa.com Можно использовать его для того чтобы удаленно заходить на свой сервер HA.
Сервис платный, стоит $5 в месяц. Но, насколько я понимаю, какая-то часть этих денег (а может быть и все) идет создателям Home Assistant, так что это хорошая идея поддержать разработчиков HA деньгами, чтобы они и дальше улучшали HA.
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
License
white777777/HomeAssistant-keenetic-entware
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Script to install HomeAssistant on Keenetic routers
HomeAssistant is an open source home automation platform. It is able to track and control thousands of smart devices and offer a platform for automating control. Details on https://github.com/home-assistant/home-assistant.
HA supports only Windows, Linux, Mac and Raspberry offically. While this project is to install the HomeAssistant on an OpenWRT OS. So that you can run a HomeAssistant on a router without having to run a 24-hours PC or Raspberry.
Completely installation for HomeAssistant will take nearly 350 MB Flash and 130 MB RAM. More components require more storage. I recommentd to use devices with more than 250 MB RAM and enable swap.
Entware subsystem should be installed.
Install entware subsystem to your router. Connect through SSH. Get into the project folder and start the installation. Make sure your device has connected to the Internet.
wget --no-check-certificate --content-disposition https://github.com/white777777/HomeAssistant-keenetic-entware/archive/master.zip unzip HomeAssistant-keenetic-entware-master.zip cd ./HomeAssistant-keenetic-entware-master/ ./install.sh
It will take 20~30 minutes. After finished, it will print «HomeAssistant installation finished. Use command hass to start the HA.»
Start HomeAssistant firstly
After installation finished, use command hass to start.
Note that firstly start will download and install some python modules. Make sure the network is connected while first starting. It will take about 20 minutes. If it stuck or print some error messages, don’t worry, interupt it and retry hass usually works.
It has fully started when print messages
Starting Home Assistant Timer:starting