Home assistant сервер на роутере

Home Assistant — это открытая платформа для умного дома, которая позволяет контролировать и автоматизировать различные устройства и сервисы. Один из самых популярных способов установить Home Assistant — это запустить его на домашнем роутере Keenetic. В этом практическом руководстве мы расскажем, как установить Home Assistant на роутер Keenetic и начать использовать его для управления умным домом.

Перед установкой Home Assistant на роутер Keenetic, вам понадобится следующее:

  1. Установленный и настроенный роутер Keenetic.
  2. Базовые знания работы с роутером и сетевыми протоколами.
  3. Доступ к интернету и аккаунт на сайте Keenetic.

Начнем с загрузки и установки Home Assistant. Войдите в систему управления вашим роутером Keenetic и перейдите на вкладку «Дополнительно». Затем выберите «Установка программ» и найдите Home Assistant в списке доступных программ. Нажмите на кнопку «Установить», чтобы запустить процесс установки.

Примечание: перед установкой Home Assistant убедитесь, что ваш роутер Keenetic поддерживает эту программу. Некоторые старые модели роутеров могут быть несовместимы с Home Assistant.

После завершения установки Home Assistant на роутер Keenetic, вам будет предоставлена возможность настроить его. Выберите язык, укажите имя пользователя и пароль для доступа к Home Assistant. Затем следуйте инструкциям на экране, чтобы настроить подключение к устройствам вашего умного дома.

Поздравляю! Теперь у вас установлен и настроен Home Assistant на роутере Keenetic. Вы можете начать добавлять устройства и настраивать автоматизацию в вашем умном доме. Удивительные возможности Home Assistant ждут вас!

Содержание

  1. Установка Home Assistant на роутер Keenetic
  2. Шаг 1: Подготовка
  3. Шаг 2: Установка Docker
  4. Шаг 3: Установка Home Assistant
  5. Шаг 4: Автозапуск Home Assistant
  6. Заключение
  7. Практическое руководство для установки Home Assistant на роутер Keenetic
  8. Шаг 1: Подготовка роутера Keenetic
  9. Шаг 2: Установка Home Assistant на роутер
  10. Шаг 3: Настройка Home Assistant
  11. Вывод
  12. Сайт Keenetic: доступ к дополнительным функциям через установку Home Assistant

Установка Home Assistant на роутер Keenetic

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

Шаг 1: Подготовка

Перед установкой Home Assistant на роутер Keenetic вам понадобится:

  1. Установить на роутер прошивку с поддержкой Docker. Это можно сделать, следуя инструкциям производителя.
  2. Подключиться к роутеру по SSH. Для этого вам понадобится программа для работы с SSH, такая как PuTTY, и права администратора на роутере.

Шаг 2: Установка Docker

После подготовки вы можете приступить к установке Docker на роутер Keenetic. Для этого выполните следующие шаги:

  1. Откройте программу для работы с SSH и подключитесь к роутеру.
  2. Введите следующую команду, чтобы загрузить и установить Docker:

sudo su
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
  1. После установки Docker выполните команду:

sudo groupadd docker
sudo usermod -aG docker $USER

Теперь Docker установлен на вашем роутере Keenetic.

Шаг 3: Установка Home Assistant

Теперь, когда у вас есть Docker, вы можете установить Home Assistant на роутер Keenetic. Для этого выполните следующие шаги:

  1. Откройте программу для работы с SSH и подключитесь к роутеру.
  2. Введите следующую команду, чтобы загрузить и установить Home Assistant:

sudo docker run -d --name="homeassistant" -v /opt/homeassistant:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/home-assistant:stable

После выполнения этой команды Home Assistant будет установлен на роутер Keenetic. Вы можете открыть веб-браузер и перейти по адресу http://<IP_адрес_роутера>:8123, чтобы настроить и использовать Home Assistant.

Шаг 4: Автозапуск Home Assistant

Чтобы Home Assistant запускался автоматически при включении роутера, выполните следующие шаги:

  1. Откройте программу для работы с SSH и подключитесь к роутеру.
  2. Введите следующую команду, чтобы отредактировать файл запуска:

sudo nano /opt/etc/init.d/rc.unslung
  1. Добавьте следующую строку в файл перед строкой, которая начинается с exit 0:

/opt/homeassistant/run.sh start
  1. Нажмите клавиши Ctrl+X, затем Y и Enter, чтобы сохранить изменения.

Теперь Home Assistant будет запускаться автоматически при включении роутера Keenetic.

Заключение

В этой статье мы рассмотрели, как установить Home Assistant на роутер Keenetic. Теперь у вас есть возможность контролировать и автоматизировать свои устройства через один интерфейс. Удачной работы с Home Assistant!

Практическое руководство для установки Home Assistant на роутер Keenetic

Шаг 1: Подготовка роутера Keenetic

Перед установкой Home Assistant на роутер необходимо убедиться, что на роутере установлена прошивка KeeneticOS. Если на роутере не установлена прошивка KeeneticOS, необходимо обновить прошивку до последней версии по инструкции, предоставленной на официальном сайте Keenetic.

Шаг 2: Установка Home Assistant на роутер

1. Зайдите в веб-интерфейс роутера Keenetic, введя в адресной строке браузера IP-адрес роутера.

2. Войдите в веб-интерфейс, используя логин и пароль администратора.

3. На странице настроек роутера найдите раздел «Плагины» или «Add-ons» и выберите его.

4. В разделе «Плагины» выберите опцию «Установить плагин» или «Install Add-on».

5. В поисковой строке введите «Home Assistant» и выберите плагин «Home Assistant» из списка результатов.

6. Нажмите на кнопку «Установить» или «Install» для установки плагина Home Assistant.

7. Дождитесь завершения процесса установки, который может занять некоторое время.

8. После завершения установки плагина Home Assistant, вы увидите значок Home Assistant на странице настроек роутера.

Шаг 3: Настройка Home Assistant

1. Нажмите на значок Home Assistant на странице настроек роутера, чтобы открыть веб-интерфейс Home Assistant.

2. Следуйте инструкциям на экране для настройки Home Assistant, включая создание учетной записи пользователя и настройку подключения к сетевым устройствам.

3. После завершения настройки Home Assistant, вы сможете управлять устройствами и создавать сценарии автоматизации через веб-интерфейс.

Вывод

Установка Home Assistant на роутер Keenetic позволяет получить удобный интерфейс для управления устройствами умного дома. Следуя данному практическому руководству, вы сможете настроить и использовать Home Assistant на роутере Keenetic без особых трудностей.

Сайт Keenetic: доступ к дополнительным функциям через установку Home Assistant

Сайт Keenetic предоставляет возможность установить Home Assistant на роутер и получить доступ к его дополнительным функциям. Это позволяет пользователям управлять умным домом, собирать и анализировать данные, настраивать автоматизацию и многое другое.

Установка Home Assistant на роутер Keenetic происходит в несколько простых шагов:

  1. Настройка роутера и установка необходимых пакетов.
  2. Загрузка и установка Home Assistant на роутер.
  3. Настройка пользовательского интерфейса и добавление устройств.
  4. Настройка автоматизации и интеграция с другими сервисами.

После установки Home Assistant пользователи получают доступ к множеству функций, которые позволяют управлять и контролировать устройства и сервисы:

  • Управление умным домом: включение и выключение света, регулирование температуры, управление секционными воротами и многое другое.
  • Мониторинг и анализ данных: получение информации о потребляемой энергии, состоянии устройств, температуре и влажности в помещении и т. д.
  • Настройка автоматизации: создание различных сценариев, регулирование освещения в определенное время, включение отопления перед приходом домой и т. д.
  • Интеграция с другими сервисами: возможность обмена данными с другими системами умного дома, интеграция с голосовыми помощниками и т. д.

Установка Home Assistant на роутер Keenetic предоставляет пользователям удобный и гибкий способ управления умным домом и обеспечивает возможность интеграции с другими сервисами и устройствами. Сайт Keenetic предоставляет необходимую информацию и руководства для установки и настройки Home Assistant, что делает процесс максимально простым и понятным.

Да, вам не послышалось, в этой статье будет установка Home Assistant на роутер Xiaomi, причём в операционную систему Debian, которую мы перед этим установим на маршрутизатор в chroot среду Entware )))

В предыдущем посте я уже рассказал, как установить MQTT брокер Mosquitto на роутер Xiaomi Mi WiFi Router 3G, но судя по практически отсутствующей нагрузке брокера на процессор и ОЗУ роутера, эта задачка оказалась для него не серьёзной. Что ж, нагрузим его как следует и установим на него Debian в chroot среду, ну а в Debian уже установим «полноценную» систему «Умного дома» —  Home Assistant Core ))) Как она будет там работать (тормозить), это уже второй вопрос (см. ниже характеристики роутера) — мне же был интересен только сам процесс и факт запуска )))

Установка Home Assistant на роутер Xiaomi Mi WiFi Router 3G (С прошивкой Padavan + Entware) - Linux Debian и Умный дом на роутере

Напомню, что есть у меня в коллекции Wi-Fi роутер «Xiaomi Mi Wi-Fi Router 3G» с прошивкой от Padavan, который после покупки роутера MikroTik остался не у дел. Точнее не работает больше, как полноценный роутер, стоя на страже интернета, а выполняет свою функцию как дополнительная точка доступа Wi-Fi, маршрутизатор на 2-а порта и сетевое файловое хранилище с диском на 500 Гб. Есть у этого роутера такая замечательная штука, как Entware — это репозиторий (хранилище), которая позволяет «проводить много экспериментов с ним» )))

Сначала я решил «покурить тему» в сети интернет на предмет наличия у кого-либо опыта и мануалов, описанного у меня в посте «баловства», но каких-либо толковых гайдов на эту тему не нашёл. Встретил только на 4pda такое сообщение:

Установим Debian 8 и Умный дом (Home Assistant Core) на роутер - Xiaomi Mi WiFi Router 3G (С прошивкой Padavan + Entware)  :-D Умный дом, Debian, Linux, Xiaomi, Роутер, Wi-Fi, Home Assistant, Длиннопост

Но способ описанный по ссылке из этого сообщения, мне показался уж очень «замысловатым» и есть подозрение, что он уже устарел на текущий момент. Хотя если в Entware сейчас есть пакеты python 3.8 и выше, которые требуются для  установки Home Assistant Core с декабря 2020 года, то способ тоже может быть рабочим. Я не проверял.

Итак, много слов — ближе к делу )))

Алгоритм (последовательность) установки на роутер  Xiaomi Mi WiFi Router 3G  операционной системы Debian в chroot среду, а затем системы «Умного дома» — Home Assistant Core, у нас такая:

Компилируем (собираем) скриптом PROMETHEUS самую свежую прошивку от Padavan. Я выбрал репозитарий Alxdm.

Установим Debian 8 и Умный дом (Home Assistant Core) на роутер - Xiaomi Mi WiFi Router 3G (С прошивкой Padavan + Entware)  :-D Умный дом, Debian, Linux, Xiaomi, Роутер, Wi-Fi, Home Assistant, Длиннопост

Установим Debian 8 и Умный дом (Home Assistant Core) на роутер - Xiaomi Mi WiFi Router 3G (С прошивкой Padavan + Entware)  :-D Умный дом, Debian, Linux, Xiaomi, Роутер, Wi-Fi, Home Assistant, Длиннопост

После прошивки и настройки роутера, развёртываем Entware на своём внешнем носителе. (Рекомендую использовать жесткий диск, ибо ресурс флеш-карт не большой. У меня флешка на 128 Гб прожила только три года).

Подключаемся через PuTTY по SSH к роутеру.

Для получения списка и обновления новых пактов, выполните:

# opkg update
# opkg upgrade

Запускаем скрипт установки службы Debian 8 на маршрутизаторы MIPS замечательного человека (нашего соотечественника) Александра Рыжова. Судя по всему он специализируется на Keenetic, но его скрипт замечательно отрабатывает и на Xiaomi Mi WiFi Router 3G. Среду Debian 8 — debian_clean.tgz устанавливающуюся в скрипте, собирал он сам и расположена она на его сетевом ресурсе. Если не доверяете, то можете собрать свою, например уже среду Debian 10 по его же инструкции. 😉

Я не заморачивался и пошёл следующим простым путём:

Установим Debian 8 и Умный дом (Home Assistant Core) на роутер - Xiaomi Mi WiFi Router 3G (С прошивкой Padavan + Entware)  :-D Умный дом, Debian, Linux, Xiaomi, Роутер, Wi-Fi, Home Assistant, Длиннопост

# cd /opt
# wget --no-check-certificate https://raw.githubusercontent.com/DontBeAPadavan/chroot-debian/master/install.sh
# sh install.sh

Установим Debian 8 и Умный дом (Home Assistant Core) на роутер - Xiaomi Mi WiFi Router 3G (С прошивкой Padavan + Entware)  :-D Умный дом, Debian, Linux, Xiaomi, Роутер, Wi-Fi, Home Assistant, Длиннопост

Теперь у вас на роутере есть Debian 8 — радуйтесь и хвалитесь друзьям )))

Если что-то пошло в установленной системе Debian у вас  нет так, то не переживайте — это легко поправимо — ваш роутер не пострадает от лёгких экспериментов )))

Установим Debian 8 и Умный дом (Home Assistant Core) на роутер - Xiaomi Mi WiFi Router 3G (С прошивкой Padavan + Entware)  :-D Умный дом, Debian, Linux, Xiaomi, Роутер, Wi-Fi, Home Assistant, Длиннопост

# cd /opt
# /opt/etc/init.d/S99debian stop
# rm -fr debian
# rm /opt/etc/init.d/S99debian
# sh install.sh

Теперь подключаемся через PuTTY по SSH к Debian:

IP — локальный адрес вашего роутера

Порт: 65022 (потом можете сменить)

Логин: root

Пароль: debian (потом можете сменить)

Установим Debian 8 и Умный дом (Home Assistant Core) на роутер - Xiaomi Mi WiFi Router 3G (С прошивкой Padavan + Entware)  :-D Умный дом, Debian, Linux, Xiaomi, Роутер, Wi-Fi, Home Assistant, Длиннопост

Обновим систему Debian::

Для получения списка новых пактов, выполните:

# apt-get update

Для выполнения обновления пакетов, выполните:

# apt-get upgrade
# apt-get install transmission-daemon
# echo 'transmission-daemon' >> /chroot-services.list

Последняя команда (в качестве примера) добавляет передачу в список служб Debian, которая запускается во время загрузки. transmission-daemon это имя сценария из /etc/init.d/<name>.

Установка Home Assistant на роутер Xiaomi

Если вы это делаете сейчас, то надеюсь для эксперимента, как я, а не на полном серьёзе, ибо «Умный дом» на роутере, ну такое себе ; -)) Ресурсов хватит на мониторинг десятка датчиком и управления несколькими выключателями…, что-то серьёзное не получится или будет работать с жёсткими тормозами. Имейте это ввиду!

Устанавливаем необходимые нам пакеты для питона стандартным способом:

# apt-get install python3 python3-dev python3-venv python3-pip libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5

Проверяем версию python:

# python3 --version

Установим Debian 8 и Умный дом (Home Assistant Core) на роутер - Xiaomi Mi WiFi Router 3G (С прошивкой Padavan + Entware)  :-D Умный дом, Debian, Linux, Xiaomi, Роутер, Wi-Fi, Home Assistant, Длиннопост

Не порядок! Так дело не пойдёт, с декабря 2020 года для установки Home Assistant Core нужен python3.8 или версии порядком выше, устанавливаем его любым удобным вам способом, например:

Устанавливаем недостающие библиотеки:

#  apt install build-essential libncurses5-dev libgdbm-dev libnss3-dev libsqlite3-dev libreadline-dev curl libbz2-dev

Ставим пакет wget:

#  apt install wget

Скачиваем последую версию Python с официального сайта:

# wget https://www.python.org/ftp/python/3.9.1/Python-3.9.21.tgz

Распаковываем архив:

# tar xzf Python-3.9.1.tgz

Устанавливаем (собираем):

# cd Python-3.9.1
# ./configure --enable-optimizations
# make altinstall

Долго ждём завершения…. (~ 01:30 часа)

Здесь на пару часиков можно идти пить чай…. 😀

И ещё раз подумать — действительно ли вам это нужно…? Может просто купить «Raspberry Pi 4 b» или поставить «простенький сервер» для своего «Умного дома»? Кстати в качестве него может выступать например Nettop, как у меня:

Установим Debian 8 и Умный дом (Home Assistant Core) на роутер - Xiaomi Mi WiFi Router 3G (С прошивкой Padavan + Entware)  :-D Умный дом, Debian, Linux, Xiaomi, Роутер, Wi-Fi, Home Assistant, Длиннопост

Почитайте пока на эту тему мой пост Простая установка Home Assistant Supervised на Debian | Kali Linux на Неттоп (домашний сервер), Ноутбук, Десктоп… или даже VirtualBox

Если хотите просто протестировать систему, то можно поставить  Home Assistant Core или Home Аssistant Supervised на бесплатный VPS — сервер от Oracle, вариантов, отличных от описанного в этом посте, в лучшую сторону — множество…

А тем временем роутер у меня стойко держал нагрузку:

Установим Debian 8 и Умный дом (Home Assistant Core) на роутер - Xiaomi Mi WiFi Router 3G (С прошивкой Padavan + Entware)  :-D Умный дом, Debian, Linux, Xiaomi, Роутер, Wi-Fi, Home Assistant, Длиннопост

И за один час + 25 минут у меня наконец собрался Python-3.9.1:

Установим Debian 8 и Умный дом (Home Assistant Core) на роутер - Xiaomi Mi WiFi Router 3G (С прошивкой Padavan + Entware)  :-D Умный дом, Debian, Linux, Xiaomi, Роутер, Wi-Fi, Home Assistant, Длиннопост

Устанавливаем  Home Assistant Core:

# cd

Создаём пользователя homeassistant:

# useradd -rm homeassistant

Создадим папку homeassistant в папке srv:

# cd /srv
# mkdir homeassistant

и назначим её владельцем пользователя homeassistant:

# chown homeassistant:homeassistant homeassistant

Создание и изменение виртуальной среды (вводите лучше построчно):

# cd /srv/homeassistant
# python3.9 -m venv . (пробел и точка нужна)
# source bin/activate

Устанавливаем необходимый пакет Python:

# python3 -m pip install wheel

Устанавливаем Home Assistant Core:

# pip3 install homeassistant

Опять идём пить чай или кофе 😀

Где-то через час возвращаемся к терминалу и вводим последнюю команду, которая создаёт каталог конфигурации и установит все основные зависимости:

# hass

Ещё где-то через час… 😀 😀 😀 пробуем зайти по адресу ipaddress:8123 (ipaddress вашего роутера) в браузере, где должна открыться такая страничка. Вводим свои данные (регистрируемся) и настраиваем/тестируем систему….

Установим Debian 8 и Умный дом (Home Assistant Core) на роутер - Xiaomi Mi WiFi Router 3G (С прошивкой Padavan + Entware)  :-D Умный дом, Debian, Linux, Xiaomi, Роутер, Wi-Fi, Home Assistant, Длиннопост

Проверяем, что у нас установилась свежая версия системы Home Assistant Core (http://ipaddress:8123/config/info):

Установим Debian 8 и Умный дом (Home Assistant Core) на роутер - Xiaomi Mi WiFi Router 3G (С прошивкой Padavan + Entware)  :-D Умный дом, Debian, Linux, Xiaomi, Роутер, Wi-Fi, Home Assistant, Длиннопост

Установим Debian 8 и Умный дом (Home Assistant Core) на роутер - Xiaomi Mi WiFi Router 3G (С прошивкой Padavan + Entware)  :-D Умный дом, Debian, Linux, Xiaomi, Роутер, Wi-Fi, Home Assistant, Длиннопост

Папка с конфигами лежит по пути — /opt/debian/root/.homeassistant

Можно открывать и редактировать, например через WinSCP

Установим Debian 8 и Умный дом (Home Assistant Core) на роутер - Xiaomi Mi WiFi Router 3G (С прошивкой Padavan + Entware)  :-D Умный дом, Debian, Linux, Xiaomi, Роутер, Wi-Fi, Home Assistant, Длиннопост

Закинем в конфиг несколько сенсоров для проверки работоспособности с рабочей системы Home Assistant:

Установим Debian 8 и Умный дом (Home Assistant Core) на роутер - Xiaomi Mi WiFi Router 3G (С прошивкой Padavan + Entware)  :-D Умный дом, Debian, Linux, Xiaomi, Роутер, Wi-Fi, Home Assistant, Длиннопост

Перезапустим Home Assistant и понаблюдаем за поведением ЦП и ОЗУ нашего роутера.

«Пациент скорее жив, чем мёртв» 😀

Установим Debian 8 и Умный дом (Home Assistant Core) на роутер - Xiaomi Mi WiFi Router 3G (С прошивкой Padavan + Entware)  :-D Умный дом, Debian, Linux, Xiaomi, Роутер, Wi-Fi, Home Assistant, Длиннопост

Ну что ж, оставим систему для экспериментов на недельку другую и посмотрим, как она там будет жить ))

В заключении несколько примечаний, которые могут пригодится в дальнейшем:

Для обновления Home Assistant (а они выходят регулярно) нужно ввести в терминале Debian эти команды:

# cd /srv/homeassistant
# source bin/activate
# python3 -m pip install --upgrade homeassistant

И набраться терпения на пару часиков 😀

После установки обновления и/или правки конфигов нужно перезапустить сервер, например из веб-интерфейса: Настройки → Сервер → Перезапустить

Установим Debian 8 и Умный дом (Home Assistant Core) на роутер - Xiaomi Mi WiFi Router 3G (С прошивкой Padavan + Entware)  :-D Умный дом, Debian, Linux, Xiaomi, Роутер, Wi-Fi, Home Assistant, Длиннопост

Если после перезапуска роутера у вас «не стартует Debian», то добавляем задержку в веб-интерфейсе роутера, следуя по пути: «Персонализация» — «Скрипты» — «Выполнить после полного запуска маршрутизатора«, например 20 секунд:

sleep 20
/opt/etc/init.d/S99debian start

Спасибо Дмитрию за эту подсказку 😉

Установим Debian 8 и Умный дом (Home Assistant Core) на роутер - Xiaomi Mi WiFi Router 3G (С прошивкой Padavan + Entware)  :-D Умный дом, Debian, Linux, Xiaomi, Роутер, Wi-Fi, Home Assistant, Длиннопост

Ну, и само собой, необходимо добавить  Home Assistant в автозапуск.

Можно добавить по аналогии старта Debian:

sleep 20
chroot /opt/debian /srv/homeassistant/bin/hass -c "/root/.homeassistant"

Установим Debian 8 и Умный дом (Home Assistant Core) на роутер - Xiaomi Mi WiFi Router 3G (С прошивкой Padavan + Entware)  :-D Умный дом, Debian, Linux, Xiaomi, Роутер, Wi-Fi, Home Assistant, Длиннопост

На этом у меня Ф С Ё ! )))

Время на прочтение
11 мин

Количество просмотров 135K

Home Assistant — это популярная система умного дома, которая автоматизирует привычные бытовые процессы и работает на YAML файлах. В этой статье я расскажу, как настроить Home Assistant (далее HA), и что конкретно я использую в повседневной жизни. Это поможет вам избежать ошибок и быстрее продвинуться в изучении HA.

На Хабре уже есть статьи о HA (раз, два, три), но здесь я хочу рассказать об установке и настройке системы от начала до конца. От первого запуска сервера до полноценно работающей системы, которую потом можно улучшать и дорабатывать для себя.

Основной единицей в HA является интеграция — логика, которая описывает взаимодействие с умным устройством или внешним сервисом. Большая часть полезной нагрузки HA ориентировано на связку: умное устройство + интеграция или внешнее API + интеграция.


Набор моих интеграций

Железо, участвующее в статье:

  • Микроконтроллер Esp8266, а также датчик температуры и влажности DHT11;
  • Лампа Xiaomi Desk Lamp;
  • Raspberry Pi 4B в 2GB версии, как сервер для HA (в дальнейшем буду ее называть малинкой);
  • Xiaomi Router 4A .

Сервисы, которые будем использовать:

  • OpenWeatherMap для получения погоды, температуры, влажности на улице и других метеопараметров;
  • Telegram для создания системы уведомлений;
  • Google drive для создания бекапов;
  • SpeedTest для замеров скорости;
  • А также OpenUV для замеров ультрафиолетового излучения и др.

Установка

Установка HA предельно проста:

  1. Записать образ HA на SD карточку (подробная инструкция с ссылками на скачивание для разных версий Raspberry Pi тут).
  2. Подключить питание и Ethernet к малинке
  3. Подождать несколько минут, пока система развернется в локальной сети на <ip адрес малинки>:8123.

Также можно установить на уже имеющуюся систему с помощью Docker-compose:

version: '3'
services:
  homeassistant:
    container_name: homeassistant
    image: homeassistant/raspberrypi4-homeassistant:stable
    volumes:
      - /PATH_TO_YOUR_CONFIG:/config
      - /etc/localtime:/etc/localtime:ro
    restart: unless-stopped
    network_mode: host

А теперь разберем несколько сценариев использования.

Отслеживание устройств

Начнем с отслеживания устройств, с помощью которого мы можем фиксировать вход и выход носителей из дома.
Я предлагаю 2 способа отслеживания:

  • с помощью роутера (у меня в наличии Xiaomi Router Mi4A),
  • с помощью GPS.

В системе доступно много производителей роутеров. Для старых и не перечисленных в списке моделей можно использовать nmap (более подробно тут).
Если установить на телефон официальное приложение, HA по умолчанию создаст интеграцию, и в системе появится дополнительное устройство, которое можно отследить.

С помощью Xiaomi Router Mi4A

Плюсы

  • Не требует никаких действий на устройстве, отслеживает всех в локальной сети.

Минусы

  • Если устройство не подключено к домашней сети, то устройство пропадает в пустоту, и на картах мы его не увидим.
  • Иногда может сработать триггер выхода/входа из зоны, когда фактически девайс не покидает зону (можно попробовать решить расширением зоны).

С помощью GPS

Плюсы

  • Точность работы сравнима с GPS трекером в телефоне.
  • О телефоне можно узнать: процент заряда аккумулятора, заряжается устройство или нет, а также показатель состояния аккумулятора.

  • Можно контролировать устройства (пользователей) не только на вход домой, но и на вход в любую из кастомных зон.

Минусы

  • Активно тратит заряд.
  • Требует подключение Интернета.
  • Для точного трекинга необходимо настроить SSL, чтобы телефон мог отправлять данные о местоположении из вне локальной сети.
  • Требует дополнительных прав доступа к GPS, возможна утечка данных третьей стороне в будущем.
  • На бюджетных телефонах, которые имеют свойство неожиданно менять местоположение GPS, возможны проблемы с выпадением из зоны.

Создание системы отслеживания через роутер

Трекинг через локальную сеть роутера требует настройки, в отличие от GPS отслеживания. Два вида трекинга можно комбинировать для повышения точности. Ниже можно заметить, что в моем случае отслеживание через роутер работает лучше, чем через GPS. Зеленая зона значит, что телефон внутри зоны, красная — вне зоны.


Результаты работы отслеживания (сверху — роутер, снизу — GPS)

Редактирование конфигурационных файлов через VSCode

Можно подключиться через плагин SSH в VS Code, но получить доступ к проводнику в данный момент мне было удобнее. Поэтому, добавим сетевое расположение.

Нажмем обзор, найдем каталог config (мы в основном будем редактировать его) и выберем его как сетевую папку.

Дальше мы можем перейти в созданную папку и открыть ее через редактор.

router_device_tracker.yaml

platform: xiaomi
host: 192.168.31.1
password: !secret xiaomi_router_password
configuration.yaml
device_tracker: !include configs/router_device_tracker.yaml

После перезагрузки HA мы можем увидеть, что у нас появился новый глобальный объект device_tracker и наши устройства в нем.


Трекинг устройств через роутер

Освещение

Теперь, когда мы умеем отслеживать пользователя, мы можем включать и выключать определенные лампочки с учетом информации о его местоположении.

Для этого необходимо произвести действие по определенному событию. В этом нам помогут автоматизации.

automation/phone_tracker

- alias: Entering home
  trigger:
    platform: state
    to: home
    entity_id: device_tracker.mi9lite
  action:
    - service: light.turn_on
      data:
        entity_id: light.midesklamp1s_f86f
        brightness: 35
        color_temp: 350

- alias: Leaving home
  trigger:
    platform: state
    to: not_home
    entity_id: device_tracker.mi9lite
  action:
    - service: light.turn_off
      entity_id: light.midesklamp1s_f86f

Теперь импортируем в наш основной файл весь каталог automation — так нам будет удобнее при написании следующих автоматизаций.

configuration.yaml

automation: !include_dir_merge_list automation

Пример работы:
https://www.youtube.com/watch?v=Sii4rBtXYVw

Для того, чтобы получить адаптивное освещение в зависимости от времени суток, нужно настроить цветовую температуру. Это удобно сделать внутри блока switch. Тут важно понимать, что пока данный switch включен, изменить параметры температуры будет невозможно (через interval минус время_с_прошлого_обновления лампа примет старые параметры).

Здесь вы найдете больше про динамическую цветовую температуру (flux в терминологии HA). А если вам интересна тема адаптивного освещения, на Хабре есть отличная статья по этому поводу.

configuration.yaml

switch:
  - platform: flux
    lights:
      - light.midesklamp1s_f86f
    name: Fluxer
    start_time: '9:00'
    stop_time: '0:00'
    start_colortemp: 5000
    sunset_colortemp: 3200
    stop_colortemp: 2800
    brightness: 25.5
    disable_brightness_adjust: true # яркость будет константой
    mode: mired # для не rgb ламп
    transition: 30
    interval: 30```

<!--</spoiler>-->
# Погода
По умолчанию в HA уже присутствует интеграция с погодным API от [Meteorologisk institutt](https://www.home-assistant.io/integrations/met/) (Норвежский метеорологический институт), но мы можем легко создать другую прямо через UI.

## Создание новой интеграции OpenWeatherMap
Переходим в config / Integration на UI , нажимаем на Add integration, и выбираем из списка OpenWeatherMap.

![](https://habrastorage.org/webt/wk/q5/gu/wkq5guripld3x0rlvuuvrh6us-8.png)

Вводим api_key, полученный на их сайте и нажимаем Submit. В итоге получим 19 сущностей, которые можем использовать для своих целей в автоматизациях.

![](https://habrastorage.org/webt/l1/dj/ps/l1djps20zhxaghdhbfrxzcm7tac.png)
*Сущности OWM (на скриншот попали не все 19)*

Таким же образом через UI можно создать интеграции к другим сервисам вроде SpeedTest, или OpenUV.

# Уведомления
Для настройки уведомлений можно использовать стандартные оповещения HA, отображаемые в боковом меню, уведомления на конкретных устройствах (нужно установленное приложение на девайсе), а также оповещения в сторонние сервисы.

![](https://habrastorage.org/webt/vw/lo/uk/vwloukneshhkvd6sklfjojnsvrc.png)
*persistent_notification*

Альтернативный способ уведомлений - это уведомления в сторонние сервисы, например Telegram. Для начала нужно создать бота, получить его api_key (при создании отправят ключ) и chat_id, который можно найти в ответе внутри `result.chat.id` после запроса на https://api.telegram.org/bot{api_key}/getUpdates .

<!--<spoiler title="Ответ с Telegram API приходит пустой">-->

Такое иногда случается по разным причинам. 
В таких случаях подходит другой способ получения chat_id - написать @getmyid_bot  боту и скопировать себе user ID.
<br>
![](https://habrastorage.org/webt/h_/em/a_/h_ema_sk04ldd4xsfkdzdthaml4.png)

<!--</spoiler>-->
Простейшая настройка Telegram бота:

<!--<spoiler title="notification/telegram_bot.yaml">-->

  • platform: polling
    api_key: !secret telegram_api
    allowed_chat_ids:

    • !secret telegram_chat_id

Для того, чтобы не разглашать всем секретные данные, создадим еще secrets.yaml. Туда мы сложим все данные, которые не должны попасть в публичный доступ. Для использования переменных из этого файла используем !secret.

Пример секретов:

secrets.yaml

telegram_api: %api_key%
telegram_chat_id: %chat_id%

configuration.yaml

telegram_bot: !include notification/telegram_bot.yaml

В итоге у нас имеется Telegram бот, готовый к отправке сообщений.

Утренние (или нет) погодные оповещения

Теперь, когда у нас есть настроенный сервис уведомлений и погодная интеграция, мы можем сделать утренние оповещения о погоде.

Создаем новый файл автоматизации, и начинаем писать логику.

Пишем переменную, которая будет отвечать за срабатывание оповещений только по будням. Если он true — то в выходные оповещений не будет.

input_boolean.yaml

alarmweekday:
  name: Weekdays Only
  initial: off
  icon: mdi:calendar

И подключаем в основном конфиг файле.

configuration.yaml

input_boolean: !include input_boolean.yaml

automation/morning_alarm.yaml

- alias: 'Wake Me Up'
  trigger:
    platform: time
    at: input_datetime.weather_notification
  condition:
    condition: or
    conditions:
      - condition: and
        conditions:
          - condition: state
            entity_id: input_boolean.alarmweekday # оповещение в выходные
            state: 'on'
          - condition: time
            weekday:
              - mon
              - tue
              - wed
              - thu
              - fri
      - condition: and
        conditions:
          - condition: state
            entity_id: input_boolean.alarmweekday
            state: 'off'

  action:
    service: telegram_bot.send_message
    data: # тут
      message: "{% if now().strftime('%H')|int < 7 %} 
        Доброй ночи,
        {% elif now().strftime('%H')|int < 12 %}
        Доброе утро,
        {% elif now().strftime('%H')|int < 18 %}
        Хорошего дня,
        {% else %}
        Хорошего вечера,
        {% endif %}
         сейчас на улице {{states('sensor.openweathermap_temperature')}}°C. "

Пример работы:
https://www.youtube.com/watch?v=vSmSbSd_f-Q

Добавим blueprints

Теперь небольшое лирическое отступление в виде рассказа о написании blueprints на примере уведомлений.

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

Например, можно упростить создание уведомлений о начинающихся осадках.

blueprints/precipitation_start.yaml

blueprint:
  name: Fallout start notification
  domain: automation
  input:  # аргументы шаблона
    precipitation:
      name: Precipitation level
      selector:
        entity:
          domain: sensor # только для ui, поможет создать автоматизацию, предоставляя только сенсоры в выпадающем списке
    message_start:
      name: Telegram message
      default: "No message"

trigger: # условия срабатывания
  - platform: numeric_state  
    entity_id: !input precipitation
    above: 0.9
    for: 
         minutes: "{{ states('input_number.minimum_time_for_stable_value')|int }}"

action:
  - service: telegram_bot.send_message
    data:
      message: !input message_start 

“for” — это время, в котором должен оставаться выбранный параметр, чтобы сработал триггер на превышение уровня осадков.

input_number.yaml

minimum_time_for_stable_value:
  name: Minimum time for stable value
  initial: 1
  min: 0
  max: 59
  step: 1

Теперь, когда есть blueprint, мы можем написать автоматизацию с меньшим количеством логики.
Создадим уведомления о начале осадков.

automation/rain_start.yaml

- alias: 'Rainy is started'
  use_blueprint:
    path: homeassistant/fallout_start_notification.yaml
    input:
      precipitation: sensor.openweathermap_rain
      message_start: "Похоже, дождь начинается. Уже накапало {{states('sensor.openweathermap_rain')}}мм."
automation/snow_start.yaml

- alias: 'Snow is started'
  use_blueprint:
    path: homeassistant/fallout_start_notification.yaml
    input:
      precipitation: sensor.openweathermap_snow
      message_start: "Пошел снежок. Уже навалило {{states('sensor.openweathermap_snow')}}мм."

Мы смогли вынести часть функциональности в отдельный файл. В подобных случаях, когда со временем появляется похожий код, можно выносить часть логики в отдельный файл.

Для большей полезности можно изменить шаблон и поменять action на повышение яркости для света в доме или закрытие штор.

Бэкапы

В бэкап попадает весь каталог /config, а также все установленные расширения. С любого бекапа можно восстановить состояние системы на момент его создания.

Можно настроить создание резервных копий в Google Drive:

  1. Скопировать ссылку https://github.com/sabeechen/hassio-google-drive-backup и зайти в HA (также можно прочитать подробную инструкцию в ReadMe репозитория по ссылке)
  2. Добавить ссылку как кастомный репозиторий в Supervisor’е через UI.

  3. Открыть его (Open Web UI) и следовать инструкциям по аутентификации с Google Drive

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

Интерфейс бекапов

ESP


NodeMCU

Так как умного градусника у меня нет, а температуру измерять хочется, воспользуемся ESP8266.
Сначала установим интеграцию ESPHome из официального списка интеграций.

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

esphome/home_params.yaml

Проинициализируем контроллер.

esphome:
  name: home_params
  platform: ESP8266
  board: nodemcuv2

logger:
api:
ota:

Подключимся к WiFi

wifi:
  ssid: !secret xiaomi_router_ssid
  password: !secret xiaomi_router_password

По умолчанию используются секреты только от ESPHome. А для того, чтобы подгрузить секреты из HA, можно создать отдельный файл, где мы заинклудим эти секреты.

Теперь подключим data pin (обычно это средняя нога) термометра к D2 порту, дадим на него питание и землю. Потом создаём сам термометр (DHT11) и две переменные, которые будем отслеживать в HA.

sensor:
  - platform: dht
    model: DHT11
    pin: D2
    temperature:
      name: "Living Room Temperature"
    humidity:
      name: "Living Room Humidity"
    update_interval: 60s

Дальше нужно скомпилировать прошивку и загрузить на контроллер. Если он подключен напрямую к Raspberry Pi, то мы увидим его на /dev/ttyUSB0 и сможем загрузить прошивку в первый раз. Все последующие обновления можно загружать по воздуху. А если в списке устройства не видно, то можно скачать прошивку и воспользоваться ESPHome-Flasher.

Загружаем прошивку.

Если все заработало, то в Developer Tools мы увидим созданные переменные.

Developer Tools

Немного оптимизации

По умолчанию в HA используется SQLite, и сброс данных на диск происходит часто (каждую секунду). Это может привести в скором времени к выходу из строя SD карточки на малинке (если сервер стоит на ней). Чтобы продлить срок службы карточки, скажем HA, что нужно записывать на диск раз в commit_interval и исключить некоторые сущности, которые мы не хотим отслеживать на длинном временном промежутке (или вообще не хотим отслеживать).

configs/recorder.yaml

commit_interval: 1500
purge_keep_days: 7
exclude:
  domains:
    - updater
    - automation
  entity_globs:
    - sensor.miwifi_router*
  entities:
    - sensor.date
    - sensor.date_time
    - sensor.time
    - sensor.openweathermap_forecast_time

configuration.yaml

recorder: !include  configs/recorder.yaml

Если мы хотим использовать СУБД, отличную от SQLite, то можно сделать один из следующих пунктов на выбор:

  1. Установить соответствующий аддон для перехода на MariaDB.
  2. Использовать существующую реляционную базу данных на удаленной машине, если указать строку для подключения в параметр db_url.

Отслеживание системных параметров

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

sensors/system_monitor.yaml

- platform: systemmonitor
  resources:
    - type: disk_use_percent
      arg: /
    - type: memory_free
    - type: memory_use_percent
    - type: processor_use
    - type: processor_temperature
    - type: disk_free
      arg: /

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

Также мы можем посмотреть Uptime сервера.

sensors/uptime.yaml

- platform: uptime
  name: Time Online

configuration.yaml

sensor: !include_dir_merge_list sensors

Вариант представления на UI

Заключение

Плюсы HA

  • Простая установка и настройка, не требующая знания программирования.
  • Большое коммьюнити — вопросов на форуме много, ответов тоже хватает.
  • Огромное количество готовых интеграций со сторонними сервисами — скорее всего не придется писать свою интеграцию руками.

Минусы HA

  • Достаточно сложно отлаживать систему. Если action можно запустить программно в обход триггера, то триггер тестировать уже сложнее.

В итоге мы создали несложную систему умного дома, которую каждый может расширить покупкой новых устройств или написанием своих продуманных и продвинутых автоматизаций. По этой ссылке можно найти полную версию моих автоматизаций дома.


Главный экран

Что дальше? Можно добавить HACS (сборник UI компонентов и даже целых интеграций от коммьюнити, пригодится при использовании Яндекс Станции) и установить несколько UI элементов. Можно интегрировать умную колонку или телевизор и включать их по определенному условию. Вариантов апгрейда бесконечное множество.

Успехов в автоматизации!

Литература

  • Документация HA

Главная страницаHome AssistantУдаленный доступ Home Assistant Keenetic KeenDNS

Удаленный доступ Home Assistant Keenetic KeenDNS

  • Home Assistant
  • 2690
  • Home Assistant, KeenDNS, Keenetic

Если у вас есть современный роутер от Keenetic, но отсутствует статический IP адрес, то KeenDNS решит проблему удаленного доступа. С его помощью можно в несколько интуитивных нажатий включить поддержку DDNS прямо на роутере. В отличии от конкурирующего сервиса Duck DNS.

KeenDNS абсолютно бесплатный, а главное предоставляет защищенное SSL соединение. Даже если у ваш IP адрес не входит в «белый список», то никаких проблем в настройке не возникнет.

Подключение KeenDNS

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

Далее в меню находим пункт «Доменное имя». В зависимости от версии вашей прошивки интерфейс может быть немного другим. Не пугайтесь, основная настройка остается прежней.

Доменное имя keenDNS

Как видно на скриншоте выше «Доменное имя» уже зарегистрировано, но имеет не читаемый вид. Чтобы это исправить необходимо вписать уникальное имя и нажать на кнопку зарегистрировать.

Регистрация в keenDNS

Выбор домена keenDNS

После чего ждем, когда зарегистрируется SSL сертификат. Напротив доменного имени появится зеленая надпись «С сертификатом SSL».

Пример готового домена в KeenDNS

Не забудьте поставить галочку напротив «Удаленный доступ к веб-конфигуратору». Иначе ваш роутер будет блокировать доступ к Home Assistant.

Настройка KeenDNS

Далее на этом же экране, где мы настраивали подключение, есть таблица «Доступ к веб-приложениям домашней сети».

Доступ к веб-приложениям домашней сети

Настройки доступа

Необходимо добавить наш сервер.

  • Имя: home-assistant
  • Доступ из интернета: Свободный доступ
  • Устройство: Сервер с Home Assistant
  • Протокол: HTTPS
  • Порт TCP: 8123

Внутренний домен KeenDNS

После чего нажимаем на иконку копирования адреса и получаем

home-assistant.io-home-ru.keenetic.name 

На этом этапе вы уже можете попробовать открыть этот адрес в браузере. Если все прошло без ошибок, то отобразится интерфейс Home Assistant.

Приложение Home Assistant

Ранее в статье по настройке удаленного доступа со статическим IP, мы рассказывали как подключить мобильное приложение. Для этого требуется только вписать адрес и порт, который выдал нам DDNS сервис.

  • Переходим в «Настройки» -> «Мобильное приложение»
  • Нажимаем на свою аватарку
  • В самом конце находим «Внешний адрес»
  • Вписываем туда «https://home-assistant.io-home-ru.keenetic.name/» (замените адрес на свой). Последним символом должен идти /

После ввода адреса отключитесь от вашей домашней сети WIFI, чтобы протестировать удаленный доступ. Если по какой-то причине приложение будет писать ошибку, то проверьте правильность ввода внешнего адреса.

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.

Hardware Requirements

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.

Software Requirements

Entware subsystem should be installed.

Installation

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

Experience HomeAssistant

Connet to the S1300 through lan ports or wifi using your PC or Phone. Visit the address 192.168.8.1:8123 , that’s the web page for HomeAssistant.
Now you can link your smart devices together with HA.
Questions and discussion about HA on https://community.home-assistant.io/

  • Home assistant на роутере asus
  • Hp laserjet pro mfp m28w как подключить к роутеру
  • Hdmi lan hdmi через роутер
  • Home assistant на роутер xiaomi
  • Hp laserjet pro m15w как подключить к wi fi роутеру