Home assistant на роутер xiaomi


The xiaomi platform offers presence detection by looking at connected devices to a Xiaomi router.

Setup

To use an Xiaomi router in your installation, add the following to your configuration.yaml file:

# Example configuration.yaml entry
device_tracker:
  - platform: xiaomi
    host: YOUR_ROUTER_IP
    password: YOUR_ADMIN_PASSWORD

Configuration Variables

host string Required

The IP address of your router, e.g., 192.168.0.1.

username string (Optional, default: admin)

The admin username.

password string Required

The password for the admin account.

See the device tracker integration page for instructions how to configure the people to be tracked.

Compatibility test

To ensure that your router is compatible, navigate to http://YOUR_ROUTER_IP/api/misystem/devicelist.
You should see a listing of the device currently connected to your router.

However, some users report that even when the previous URL does not work, they have been able to integrate their Mi Router 3 in Home Assistant. E.g., some users with the Mi Router 3 and firmware version 2.10.46 Stable have integrated their routers successfully and an alternative URL to test integration with is http://YOUR_ROUTER_IP/cgi-bin/luci/api/misystem/devicelist. Navigating to this page should show the {"code":401,"msg":"Invalid token"} message.

Help us to improve our documentation

Suggest an edit to this page, or provide/view feedback for this page.

MiWiFi for Home Assistant

hacs_badge
CodeQL
Telegram

The component allows you to monitor devices and manage routers based on MiWiFi from Home Assistant.

❗ Supports routers with original or original patched MiWifi firmware

❗ On the modified firmware, not all functionality may work

More info

  • Install
  • Config
    • Advanced config
      • Automatically remove devices
  • Supported routers
    • Check list
      • Required
      • Additional
      • Action
    • Summary
  • Conflicts
  • Entities
  • Services
    • Calculate passwd
    • Send request
  • Events
    • Luci response
  • Performance table
  • Example automation
    • Device blocking
    • Lighting automation
  • Diagnostics
  • FAQ

Supported routers

Many more Xiaomi and Redmi routers supported by MiWiFi

Check list

Required
  • xqsystem/login — Authorization;
  • xqsystem/init_info — Basic information about the router;
  • misystem/status — Basic information about the router. Diagnostic data, memory, temperature, etc;
  • xqnetwork/mode — Operating mode. Repeater, Access Point, Mesh, etc.
Additional
  • misystem/topo_graph — Topography, auto discovery does not work without it;
  • xqsystem/check_rom_update — Getting information about a firmware update;
  • xqnetwork/wan_info — WAN port information;
  • xqsystem/vpn_status — Information about vpn connection;
  • misystem/led — Interaction with LEDs;
  • xqnetwork/wifi_detail_all — Getting information about WiFi adapters;
  • xqnetwork/wifi_diag_detail_all — Getting information about guest WiFi;
  • xqnetwork/avaliable_channels — Gets available channels for WiFi adapter;
  • xqnetwork/wifi_connect_devices — Get information about connected devices;
  • misystem/devicelist — More information about connected devices;
  • xqnetwork/wifiap_signal — AP signal in repeater mode;
  • misystem/newstatus — Additional information about connected devices for force load mode.
Action
  • xqsystem/reboot — Reboot;
  • xqsystem/upgrade_rom — Firmware update;
  • xqsystem/flash_permission — Clear permission. Required only for firmware updates;
  • xqnetwork/set_wifi — Update WiFi settings. Causes the adapter to reboot;
  • xqnetwork/set_wifi_without_restart — Update Guest WiFi settings.

❗ If your router is not listed or not tested, try adding an integration, it will check everything and give a link to create an issue. You just have to click Submit new issue

❗ If at the time of adding the integration only Router {ip} not supported message is displayed, please create an issue with the message that the router is not supported, indicating the model of the router.

Summary

  • 🟢 — Supported
  • 🔴 — Not supported
  • ⚪ — Not tested
Image Router Code Required Additional Action
Xiaomi 5G CPE Pro CB0401 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢🟢🟢🟢🟢
Mi Router 4A Gigabit V2 R4AV2 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢🟢🟢🟢🟢
Xiaomi Home WiFi RB08 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢🟢🟢🟢🟢
Redmi Router AX6000 RB06 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢🟢🟢🟢🟢
Redmi Router AX5400 RA74 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢🟢🟢🟢🟢
Redmi Gaming Router AX5400 RB04 🟢🟢🟢🟢 🟢🟢⚪🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢⚪🟢🟢🟢
Xiaomi Router AC1200 RB02 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢🟢🟢🟢🟢
Xiaomi Router CR8808 CR8808 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢🟢🟢🟢🟢
Xiaomi Mesh System AX3000 RA82 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢🟢🟢🟢🟢
Xiaomi Router AX3200 RB01 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢🟢🟢🟢🟢
Redmi Router AX1800 RA71 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢🟢🟢🟢🟢
Redmi Router AX6S RB03 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢🟢🟢🟢🟢
Xiaomi Router AX3000 RA80 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢🟢🟢🟢🟢
Redmi Router AX3000 RA81 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢🟢🟢🟢🟢
Xiaomi China Unicom WiFi 6 Router CR6606 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢🟢🟢🟢🟢
Xiaomi Router AX9000 RA70 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢🟢🟢🟢🟢
Redmi Router AX5 RA50 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢🟢🟢🟢🟢
Xiaomi Router AX6000 RA72 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢🟢🟢🟢🟢
Redmi Router AX6 RA69 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢🟢🟢🟢🟢
Mi Router 4 Pro R1350 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢🟢🟢🟢🟢
Mi AIoT Router AC2350 R2350 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢🟢🟢🟢🟢
Redmi Router AX5 RA67 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢🟢🟢🟢🟢
Mi Router AX1800 RM1800 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢🟢🟢🟢🟢
Xiaomi AIoT Router AX3600 R3600 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢🟢🟢🟢🟢
Redmi Router AC2100 RM2100 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢🟢🟢🟢🟢
Mi Router AC2100 R2100 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢 🟢🟢🟢🟢🟢
Mi Router Mesh D01 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🔴 🟢🟢🟢🟢🟢
Mi Router 4A R4AC 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🔴 🟢🟢🟢🟢🟢
Mi Router 4A Gigabit R4A 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🔴 🟢🟢🟢🟢🟢
Mi Router 4C R4CM 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🔴 🟢🟢🟢🟢🟢
Mi Router 4Q R4C 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🔴 🟢🟢🟢🟢🟢
Mi Router 4 R4 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🔴 🟢🟢🟢🟢🟢
Mi Router 3A R3A 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🔴 🟢🟢🟢🟢🟢
Mi Router 3C R3L 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🔴 🟢🟢🟢🟢🟢
Mi Router HD R3D 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🔴 🟢🟢🟢🟢🟢
Mi Router Pro R3P 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🔴 🟢🟢🟢🟢🟢
Mi Router 3G R3G 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🔴 🟢🟢🟢🟢🟢
Mi Router 3 R3 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🔴 🟢🟢🟢🟢🟢
Mi Router R2D R2D 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🔴 🟢🟢🟢🟢🟢
Mi Router Lite R1CL 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🔴 🟢🟢🟢🟢🟢
Mi Router Mini R1CM 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🔴 🟢🟢🟢🟢🟢
Mi Router R1D R1D 🟢🟢🟢🟢 🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🟢🔴 🟢🟢🟢🟢🟢

Да, вам не послышалось, в этой статье будет установка 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, Длиннопост

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

Недавно приобрел новый роутер с WiFi6 взамен своему старому микротику, который даже не умел 5G. Не то, чтобы микротик плохо работал, но захотелось обновиться. Роутер нравится, покрытие сети и скорость улучшились, например ESP, которая находится в самой дальней от роутера точке перестала отваливаться. Живу в двушке, 63 м2, роутер стоит примерно посередине. Работает в режиме точки доступа, так как в качестве входа из Интернет использую Cisco ASA5505.

На микротике отлично работал штатный devicetracker. На присутствие или отсутствие жильцов квартиры завязаны автоматизации по свету, музыке и безопасности. Но на xiaomi штатный devicetracker не заработал. Я расстроился и стал мониторить тему на openwrt.org, но прогресса по портированию прошивки пока нет.

Вышел из ситуации с помощью linux bash и MQTT Device Tracker

Данный способ будет работать на любом роутере с линуксом на борту и доступом по ssh (или телнет).

Для начала необходимо получить доступ к ssh. По состоянию 06.08.2020 в крайней прошивке 1.0.336 такая возможность есть.

Настройка роутера вне темы данной статьи, IP у роутера 10.5.254.11/24.

Любым браузером логинимся в роутер. Попадаем на следующий адрес:

http://10.5.254.11/cgi-bin/luci/;stok=45dcadc532a5h2f99a365dde74512384/web/home#router

Нас интересует набор символов после stok= до /web (выглядит примерно так 45dcadc532a5h2f99a365dde74512384), это токен, меняется от сессии к сессии. Для получения доступа по SSH переходим последовательно по следующим адресам (меняем токен и IP на свои):

http://10.5.254.11/cgi-bin/luci/;stok=<TOKEN>/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=-h;nvram set ssh_en=1; nvram commit; http://10.5.254.11/cgi-bin/luci/;stok=<TOKEN>/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=-h;sed -i ‘s/channel=.*/channel=\»debug\»/g’ /etc/init.d/dropbear; http://10.5.254.11/cgi-bin/luci/;stok=<TOKEN>/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=-h;/etc/init.d/dropbear start; http://10.5.254.11/cgi-bin/luci/;stok=<TOKEN>/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=-h; echo -e ‘admin\nadmin’ | passwd root;

Можно логиниться в роутер по ssh, логин root, пароль admin. Пароль рекомендую поменять командой passwd.

Для захода с сервера HA на ssh роутера без пароля генерируем ключ и вписываем его в файл с ключами ssh на роутере (за сервис ssh ответственен демон dropbear).

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

ssh-keygen ssh root@10.5.254.11 «tee -a /etc/dropbear/authorized_keys» < /home/USER/.ssh/id_rsa.pub

Не забываем поменять адрес роутера и имя пользователя. Вторая команда запросит пароль на роутер.

После этого можно заходить ssh root@10.5.254.11 без пароля.

У роутера несколько беспроводных сетевых интерфейсов, нас интересуют два wl0 и wl1. Один отвечает за сеть 5g, второй за сеть 2,4g. Лично мне, надо отслеживать 3 устройства (телефоны), их мак адреса я знаю, одно работает по 2,4g и 2 работают по 5g.

На сервере с HA пишим скрипт:

#!/bin/bash kira_present=`ssh root@10.5.254.11 ‘iwinfo wl1 assoclist’ | grep -ic 90:2B:D2:09:73:0E` /usr/bin/mosquitto_pub -h 10.5.254.100 -r -u homeassistant -P ПАРОЛЬ_ОТ_MQTT -m $kira_present -t location/kira oleg_present=`ssh root@10.5.254.11 ‘iwinfo wl0 assoclist’ | grep -ic C0:EE:FB:09:A5:31` /usr/bin/mosquitto_pub -h 10.5.254.100 -r -u homeassistant -P ПАРОЛЬ_ОТ_MQTT -m $oleg_present -t location/oleg irina_present=`ssh root@10.5.254.11 ‘iwinfo wl0 assoclist’ | grep -ic 94:65:2D:28:C2:13` /usr/bin/mosquitto_pub -h 10.5.254.100 -r -u homeassistant -P ПАРОЛЬ_ОТ_MQTT -m $irina_present -t location/irina exit 0

У меня за MQTT отвечает mosquito.

Скрипт стартую с помощью cron каждые 2 минуты. Для этого запускаем команду:

crontab -e

Вписываем строку и сохраняем:

*/2 * * * * /местонахождениескрипта

В Home Assistant в configuration.yaml добавляем следующее:

device_tracker: — platform: mqtt devices: kira_honor_mqtt: ‘location/kira’ oleg_op6_mqtt: ‘location/oleg’ irina_op3_mqtt: ‘location/irina’ qos: 1 payload_home: ‘1’ payload_not_home: ‘0’ source_type: router

Работает так:

Команда

iwinfo wl1 assoclist | grep -ic 90:2B:D2:09:73:0E

Выводит список устройств подключенных к сети и грепом ищется соответствие с мак адресом, если есть соответствие, то при наличии ключа -с в команде grep выводится количество строк с совпадениями, но так как мак адреса уникальны (если вы их сами не меняли на одинаковые для каких-то своих целей), в выводе будет или 1 при наличии устройства или 0 при отсутствии, что и указано в конфиге в HA:

payload_home: ‘1’

payload_not_home: ‘0’

Если обновить прошивку роутера доступ к ssh слетит, так что пока не убежусь что в новой прошивке есть возможность получить доступ по ssh обновляться не буду.

Время на прочтение
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

  • Hdl knx ip роутер маршрутизатор
  • Hp ink tank wireless 415 подключение к wifi роутеру
  • Hikvision wifi local настройка роутера
  • Gtx300 s wi fi роутер 3g teleofis
  • Hdd или ssd для роутера