- Установка Home Assistant на роутер Xiaomi Mi WiFi Router 3G (С прошивкой Padavan + Entware) — Linux Debian и Умный дом на роутере 😀
- Установка Home Assistant на роутер Xiaomi
- Похожие публикации:
- Wi-Fi ESP8266 в системе Home Assistant — настройка беспроводного программирования.
- Для реализации этой возможности необходимо:
- Далее нужно добавить Wi-Fi ESP8266 устройство в систему Home Assistant.
- 2. Загрузка программы в ESP8266.
Установка Home Assistant на роутер Xiaomi Mi WiFi Router 3G (С прошивкой Padavan + Entware) — Linux Debian и Умный дом на роутере 😀
Да, вам не послышалось, в этой статье будет установка Home Assistant на роутер Xiaomi, причём в операционную систему Debian, которую мы перед этим установим на маршрутизатор в chroot среду Entware )))
В предыдущем посте я уже рассказал, как установить MQTT брокер Mosquitto на роутер Xiaomi Mi WiFi Router 3G, но судя по практически отсутствующей нагрузке брокера на процессор и ОЗУ роутера, эта задачка оказалась для него не серьёзной. Что ж, нагрузим его как следует и установим на него Debian в chroot среду, ну а в Debian уже установим «полноценную» систему «Умного дома» — Home Assistant Core ))) Как она будет там работать (тормозить), это уже второй вопрос (см. ниже характеристики роутера) — мне же был интересен только сам процесс и факт запуска )))
Напомню, что есть у меня в коллекции Wi-Fi роутер «Xiaomi Mi Wi-Fi Router 3G» с прошивкой от Padavan, который после покупки роутера MikroTik остался не у дел. Точнее не работает больше, как полноценный роутер, стоя на страже интернета, а выполняет свою функцию как дополнительная точка доступа Wi-Fi, маршрутизатор на 2-а порта и сетевое файловое хранилище с диском на 500 Гб. Есть у этого роутера такая замечательная штука, как Entware — это репозиторий (хранилище), которая позволяет «проводить много экспериментов с ним» )))
Сначала я решил «покурить тему» в сети интернет на предмет наличия у кого-либо опыта и мануалов, описанного у меня в посте «баловства», но каких-либо толковых гайдов на эту тему не нашёл. Встретил только на 4pda такое сообщение:
Но способ описанный по ссылке из этого сообщения, мне показался уж очень «замысловатым» и есть подозрение, что он уже устарел на текущий момент. Хотя если в Entware сейчас есть пакеты python 3.8 и выше, которые требуются для установки Home Assistant Core с декабря 2020 года, то способ тоже может быть рабочим. Я не проверял.
Итак, много слов — ближе к делу )))
Алгоритм (последовательность) установки на роутер Xiaomi Mi WiFi Router 3G операционной системы Debian в chroot среду, а затем системы «Умного дома» — Home Assistant Core, у нас такая:
Компилируем (собираем) скриптом PROMETHEUS самую свежую прошивку от Padavan. Я выбрал репозитарий Alxdm.
После прошивки и настройки роутера, развёртываем Entware на своём внешнем носителе. (Рекомендую использовать жесткий диск, ибо ресурс флеш-карт не большой. У меня флешка на 128 Гб прожила только три года).
Подключаемся через PuTTY по SSH к роутеру.
Для получения списка и обновления новых пактов, выполните:
# opkg update
# opkg upgrade
Запускаем скрипт установки службы Debian 8 на маршрутизаторы MIPS замечательного человека (нашего соотечественника) Александра Рыжова. Судя по всему он специализируется на Keenetic, но его скрипт замечательно отрабатывает и на Xiaomi Mi WiFi Router 3G. Среду Debian 8 — debian_clean.tgz устанавливающуюся в скрипте, собирал он сам и расположена она на его сетевом ресурсе. Если не доверяете, то можете собрать свою, например уже среду Debian 10 по его же инструкции. 😉
Я не заморачивался и пошёл следующим простым путём:
# wget --no-check-certificate https://raw.githubusercontent.com/DontBeAPadavan/chroot-debian/master/install.sh
# sh install.sh
Теперь у вас на роутере есть Debian 8 — радуйтесь и хвалитесь друзьям )))
Если что-то пошло в установленной системе Debian у вас нет так, то не переживайте — это легко поправимо — ваш роутер не пострадает от лёгких экспериментов )))
# /opt/etc/init.d/S99debian stop
# rm -fr debian
# rm /opt/etc/init.d/S99debian
Теперь подключаемся через PuTTY по SSH к Debian:
IP — локальный адрес вашего роутера
Порт: 65022 (потом можете сменить)
Логин: root
Пароль: debian (потом можете сменить)
Для получения списка новых пактов, выполните:
# apt-get update
Для выполнения обновления пакетов, выполните:
# apt-get upgrade
# apt-get install transmission-daemon
# echo 'transmission-daemon' >> /chroot-services.list
Последняя команда (в качестве примера) добавляет передачу в список служб Debian, которая запускается во время загрузки. transmission-daemon это имя сценария из /etc/init.d/.
Установка 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
# python3 --version
Не порядок! Так дело не пойдёт, с декабря 2020 года для установки Home Assistant Core нужен python3.8 или версии порядком выше, устанавливаем его любым удобным вам способом, например:
Устанавливаем недостающие библиотеки:
# apt install build-essential libncurses5-dev libgdbm-dev libnss3-dev libsqlite3-dev libreadline-dev curl libbz2-dev
# 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, как у меня:
Если хотите просто протестировать систему, то можно поставить Home Assistant Core или Home Аssistant Supervised на бесплатный VPS — сервер от Oracle, вариантов, отличных от описанного в этом посте, в лучшую сторону — множество…
А тем временем роутер у меня стойко держал нагрузку:
И за один час + 25 минут у меня наконец собрался Python-3.9.1:
Устанавливаем Home Assistant Core:
Создаём пользователя homeassistant:
# useradd -rm homeassistant
Создадим папку homeassistant в папке 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
Опять идём пить чай или кофе 😀
Где-то через час возвращаемся к терминалу и вводим последнюю команду, которая создаёт каталог конфигурации и установит все основные зависимости:
Ещё где-то через час… 😀 😀 😀 пробуем зайти по адресу ipaddress:8123 (ipaddress вашего роутера) в браузере, где должна открыться такая страничка. Вводим свои данные (регистрируемся) и настраиваем/тестируем систему….
Проверяем, что у нас установилась свежая версия системы Home Assistant Core (http://ipaddress:8123/config/info):
Папка с конфигами лежит по пути — /opt/debian/root/.homeassistant
Можно открывать и редактировать, например через WinSCP
Закинем в конфиг несколько сенсоров для проверки работоспособности с рабочей системы Home Assistant:
Перезапустим Home Assistant и понаблюдаем за поведением ЦП и ОЗУ нашего роутера.
«Пациент скорее жив, чем мёртв» 😀
Ну что ж, оставим систему для экспериментов на недельку другую и посмотрим, как она там будет жить ))
В заключении несколько примечаний, которые могут пригодится в дальнейшем:
Для обновления Home Assistant (а они выходят регулярно) нужно ввести в терминале Debian эти команды:
# cd /srv/homeassistant
# source bin/activate
# python3 -m pip install --upgrade homeassistant
И набраться терпения на пару часиков 😀
После установки обновления и/или правки конфигов нужно перезапустить сервер, например из веб-интерфейса: Настройки → Сервер → Перезапустить
Если после перезапуска роутера у вас «не стартует Debian», то добавляем задержку в веб-интерфейсе роутера, следуя по пути: «Персонализация» — «Скрипты» — «Выполнить после полного запуска маршрутизатора«, например 20 секунд:
sleep 20
/opt/etc/init.d/S99debian start
Спасибо Дмитрию за эту подсказку 😉
Ну, и само собой, необходимо добавить Home Assistant в автозапуск.
Можно добавить по аналогии старта Debian:
sleep 20
chroot /opt/debian /srv/homeassistant/bin/hass -c "/root/.homeassistant"
На этом у меня Ф С Ё ! )))
Похожие публикации:
Простая установка Home Assistant Supervised на Debian 10 | Kali Linux на Неттоп (домашний сервер), Ноутбук, Десктоп. или даже VirtualBox Я уже рассматривал установку своих тестовых версий Home Assistant Core и Home Аssistant Supervised на бесплатный (Always Free) VPS — сервер…
Как подключить второй MQTT брокер к Home Assistant или мостовое (bridge) соединения MQTT брокеров Mosquitto В этом посте рассмотрим как подключить второй MQTT брокера к Home Assistant или мостовое (bridge) соединения MQTT…
Wi-Fi ESP8266 в системе Home Assistant — настройка беспроводного программирования.
Благодаря дополнению ESPHome, в системе домашней автоматизации Home Assistant, есть возможность беспроводного программирования плат основанных на микроконтроллерах ESP8266 и ESP32 , не снимая их с установленного места.
Для реализации этой возможности необходимо:
- Купить или собрать свой программатор, для первого программирования микроконтроллера (я переделал готовый USB адаптер ссылка ниже).
Далее нужно добавить Wi-Fi ESP8266 устройство в систему Home Assistant.
- Откроется окно (New device) заполняем название устройства (в будущем при добавлении следующего устройства достаточно только ввести название остальные параметры добавятся автоматически), имя и пароль от Вашей Wi-Fi сети. Нажимаем [NEXT]
- В следующем окне выбираем тип нашего устройства (у меня ESP8266 по умолчанию это плата ESP01 с 1Mb), в третьем варианте откроется список разных плат. Нажимаем [NEXT]
Далее нажимаем [EDIT] затем [INSTALL]
Откроется окно где будет предложен способ загрузки программы в наше устройство (ESP8266). Эта программа обеспечит беспроводной доступ к реле. Выбираем ручную установку [Manual download]. Произойдет формирование (в моем случае pump.bin) файла и загрузка его на компьютер.
В системе появилось новое устройство [pump] оно пока OFFLINE. После загрузки в устройство скачанного файла, статус станет ONLINE.
2. Загрузка программы в ESP8266.
Для первой загрузки я применил программу ESPHome-Flasher. Скачиваем ESPHome-Flasher и драйвера к программатору (устанавливаем).
Подключаем программатор (нажимаем кнопку и подключаем в USB порт ПК) и запускаем программу ESPHome-Flasher . Далее прошиваем ESP8266.