- Установка Home Assistant Supervised в Ubuntu 22.04 LTS
- Шаг 0. Установка Ubuntu Server 22.04 LTS
- Шаг 1. Устанавливаем зависимости
- Шаг 2. Устанавливаем Home Assisistant Supervised
- Просто о сложном. Часть 2, создание беспроводного «умного дома». На основе технологии Linux, Z-Wave и ПО MajorDoMo
- Напомню мои требования к «умному дому» (УД):
- Небольшие советы
- Расширение свободного места на карте памяти
- Установка контроллера RaZberry:
- Источники:
Установка Home Assistant Supervised в Ubuntu 22.04 LTS
Обновлен мануал по установке Home Assistant (далее для краткости — HA) в связи с выходом новой версии Ubuntu и Home Assistant. В качестве отправной точки взято видео Alex Kvazis Raspberry Pi 4B в корпусе Argon ONE M.2 c SSD диском 128 ГБ, собираем сервер для Home Assistant. Однако автор использует вариант установки Home Assistant Operating System, который является наиболее простым и удобным. В данной же статье будет использоваться способ Home Assistant Supervised.
Варианты установки Home Assistant
Официальный сайт предлагает нам несколько способов установки Home Assistant:
Home Assistant Operating System для Raspberry Pi. Самый простой способ установки: залил образ и нет проблем. Все фичи в наличии. Рекомендован разработчиками. Минус — отсутствие полноценной системы.
Home Assistant Operating System (VM) для Linux. Поднимаем виртуальную машину. Качаем образ. Запускаем. Профит. Да, все фичи на месте. Рекомендован разработчиками. Минус — виртуальная машина более затратна для системы чем Docker. Впрочем, этот способ я не пробовал.
Home Assistant Container. Установка в контейнер Docker. Также рекомендован разработчиками. Минус — нет Supervisor.
Home Assistant Core. Устанавливаем окружение Python. Устанавливаем Home Assistant. Минус — нет Supervisor.
Home Assistant Supervised. Установка в контейнер Docker, но уже с Supervisor в комплекте.
Шаг 0. Установка Ubuntu Server 22.04 LTS
Здесь и далее я буду подключать Raspberry через WiFi. Начнем с того, что пропишем в нашем домашнем DHСP сервере статический IP-адрес Raspberry. Это нужно для удобства, чтобы не выяснять каждый раз, как достучаться до малинки.
Качаем образ Ubuntu от сюда и заливаем при помощи Balena Etcher на имеющийся под рукой usb-носитель или SD-карту.
Возможно, перед началом последующих действий потребуется обновить загрузчик малинки.
sudo apt update sudo apt upgrade sudo apt install rpi-eeprom sudo rpi-eeprom-update -a sudo reboot -h now
Открываем файл network-config и прописываем туда параметры WiFi. Должно получится что-то вроде:
version: 2 ethernets: eth0: dhcp4: true optional: true wifis: wlan0: dhcp4: true optional: true access-points: Название сети: password: "сюда пишем пароль"
А теперь немного комментариев разработчиков:
При первой загрузке Raspberry попытается присоединится к WiFi. Эта попытка обречена на провал. Но не расстраивайтесь, просто перезагрузите малинку sudo reboot -h now и все заработает.
Дефолтный логин ubuntu пароль ubuntu . При первом запуске пароль придется сменить. Что мы делаем сразу после установки системы? Правильно — обновляемся.
sudo apt update sudo apt upgrade sudo reboot -h now
Так же рекомендую воспользоваться сервисом duckdns.org, чтобы получить доступ к системе удаленно. После этого требуется настроить обновление информации о текущем ip адресе. Как это сделать, подробно написано на duckdns.org. Если используете Argon ONE M.2, как у меня, рекомендую настроить power button & fan control
sudo curl https://download.argon40.com/argon1.sh | bash .
Ну и конечно же не забываем пробросить порты 22 — на консоль Ubuntu, 8123 на Home Assistant
Шаг 1. Устанавливаем зависимости
Устанавливаем jq. sudo apt install jq .
sudo apt update sudo apt install ca-certificates curl gnupg lsb-release sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Разработчики требуют, чтобы в системе было установлено Docker, Systemd, NetworkManager, AppArmor. Systemd и AppArmor уже установлены в системе — по ним дополнительных действий не требуется.
Теперь возьмемся за NetworkManager. Для начала устанавливаем его командой sudo apt install network-manager . Добавляем в автозагрузку sudo systemctl enable NetworkManager . Чтобы переключится на него идем в /etc/netplan и редактируем файл конфигурации командой sudo vi /etc/netplan/50-cloud-init.yaml . Примечание: у меня это 50-cloud-init.yaml . Говорят, название может отличаться. Добавляем строку renderer: NetworkManager на уровень ниже (с одним отступом) после строки network: . Обращаем внимание на отступы. В yaml отступы решают. Делаем sudo netplan generate и sudo netplan apply , перезагружаемся. Останавливаем systemd-networkd — он теперь больше не нужен — sudo systemctl stop systemd-networkd и отключаем его от автозагрузки sudo systemctl disable systemd-networkd , перезагружаемся.
Устанавливаем OS-Agent. В командах ниже ссылка на последнюю версию OS-Agent на момент написания статьи. Перед скачиванием рекомендую уточнить этот вопрос. В любом случае наша архитектура aarch64 .
wget github.com/home-assistant/os-agent/releases/download/1.2.2/os-agent_1.2.2_linux_aarch64.deb sudo dpkg -i os-agent_1.2.2_linux_aarch64.deb
Шаг 2. Устанавливаем Home Assisistant Supervised
Скачиваем установочный файл
wget https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb
Но запускать его не спешим. Сначала создаем временный файл командой
и добавляем туда строку systemd.unified_cgroup_hierarchy=false .
Запускаем установщик и удаляем временный файл
sudo dpkg -i homeassistant-supervised.deb sudo rm /etc/default/grub
Просто о сложном. Часть 2, создание беспроводного «умного дома». На основе технологии Linux, Z-Wave и ПО MajorDoMo
В этой части устанавливаем в систему «Умный дом» контроллер Z-Wave, определяем его и знакомимся с *Nix операционными системами и работой в терминале (программой PuTTY), свои действия буду немного пояснять.
Напомню мои требования к «умному дому» (УД):
- Место — квартира, где переделка (существенная переделка чего-либо не планируется).
- Возможность интеграции всех решений в единую систему УД с открытым кодом .
- Возможность постепенного расширения (масштабирования) функционала.
- По-возможности, минимальные затраты.
- По возможности покупка элементов системы в РБ или же в РФ, без всяких заказов с зарубежных сайтов. Пришел, посмотрел, купил.
- По возможности русскоязычный интерфейс, документация, поддержка.
Сейчас делаем следующие шаги: расширим место на карте памяти, установим контроллер RaZberry в систему, немного ознакомимся с интерфейсом панели управления Z-Wave и MajorDoMo/
Устанавливаем наш контроллер Razzbery при выключенном питании. Включаем наш небольшой компьютер и подключаемся к нему с помощью PuTTY. Блок питания рекомендуется использовать на 2А., но я использовал на 1,5 А.
Небольшие советы
Если вы работаете в операционной системе Windows, и с *nix не часто работаете, то возможно вам помогут следующие советы:
Можно полностью не набирать команды, копируем команду в буфер обмена и правой кнопкой мыши в окне PuTTY, вставляем её в строку с курсором.
Перебор последних команд осуществляется клавишами ↑, ↓.
Дописывание при помощи клавиши [Tab] — если вы введете первые несколько букв имени файла, команды или пути и затем нажмете клавишу [Tab], bash покажет оставшуюся часть имени файла или пути.
При работе с PuTTY, если вы случайно забыли выставить правильные настройки, кодировку, у вас появляется проблема с отображением символов, то можно не закрывать окно, просто правой клавишей мыши кликаем по верхней панели программы и вызываем контекстное меню программы. Далее выбираем пункт: Change Settings…
Так же при потери соединения (перезагрузке удаленного ПК) в контекстном меню появляется пункт Restart Session.
Расширение свободного места на карте памяти
Первым делом я расширил свою карту памяти. При установке на неё копируется образ диска, и память вне зависимости от ёмкости вашей карты равна 16 ГБ. Если у вас установлена карта памяти равная 16 Гигабайтам, то этот шаг можно пропустить.
Вообще при такой операции я рекомендую сохранить резервный образ, но так как, у нас там только голая система и мы ничего ещё не делали, то не вижу в этом смысла.
Запускаем утилиту настройки Raspberry
Выбираем пункт 7 «Advanced Options», далее пункт A1 «Expand Filesystem»:
После выполнения команда перезагрузка Raspberry, подключившись к ней по новому, повторяем команду:
Как можно увидеть, место на карте памяти увеличилось.
Установка контроллера RaZberry:
С контроллером RaZberry поставлялась небольшая инструкция на английском и немецком языках.
Русскую версию можно прочитать здесь:
Русская версия инструкции короткая (и в части установки, соответствует полному мануалу), поэтому приведу её полностью:
- Скачайте образ Raspbian wheezy с официального сайта проекта Raspberry Pi (используйте обычный Raspbian wheezy, а не Soft-Float версию).
- Запишите образ на SD-карту (подробно эта процедура описана на сайте загрузки Raspbian).
- Подключите вашу плату расширения RaZberry к компьютеру Raspberry Pi как нарисовано на картинке ниже. Внимание! Никогда не подключайте RaZberry к работающему Raspberry Pi — всегда отключайте питание перед истановкой платы расширения!
- Вставьте SD-карту в Raspberry Pi
- Загрузитесь и подключитесь к Raspberry Pi по SSH или посредством экрана и клавиатуры
- Откройте терминал и запустите следующую команду:
wget -q -O — http://razberry.z-wave.me/install | sudo bash - После успешного завершения установки откройте в браузере страницу http://IP_OF_YOUR_RASPBERRY:8083
- Z-Way для Razberry успешно установлена!
Приведу мой порядок действий:
wget -q -O - http://razberry.z-wave.me/install | sudo bash
Соглашаемся с лицензионным соглашением, идёт установка и скачивание файлов.
Видим запуск mongoose сервиса и идёт предложение о получении новостей проекта Z-wave.
Соглашаемся, вводим свой e-mail в итоге:
Вроде бы всё установилось и запустилось.
Выполняем предпоследний пункт, набрав в браузере страницу
http://IP_OF_YOUR_RASPBERRY:8083
Вот на этом месте у меня и никак не получалось открыть страницу, как я не пытался, без дополнительных действий не запускается z-wave.
Увидеть запущенные процессы мы можем выполнив команду:
Благодаря форуму MajorDoMo (также видел решение и на некоторых других, не русскоязычных) нашел решение проблемы:
Необходимо удалить всё из папки: /opt «z-way-server». Потом выполнить команды:
wget -q -O - support.zwave.eu/libs | sudo bash wget -q -O - http://razberry.z-wave.me/install | sudo bash wget -q -O - support.zwave.eu/libs | sudo bash
Чтоб не набирать команды удаления файлов руками, я привык к использованию файлового менеджера Midnight Commander или сокращённо MC.
У меня в образе уже установлен (но если вдруг что то изменится, то для установки выполняем команду):
Запускаем его от администратора и оказываемся в домашней папке нашого мини ПК
Переходим в директорию: /opt /z-way-server/ Удаляем содержимое, выделив insert и нажав F8.
Саму папку я не удалял. Для выхода нужно нажать F10 «выход из коммандера». Подсказки назначения функциональных клавиш – внизу окна программы, выделены зелёным цветом.
Далее поочередно выполняем эти три команды:
wget -q -O - support.zwave.eu/libs | sudo bash wget -q -O - http://razberry.z-wave.me/install | sudo bash wget -q -O - support.zwave.eu/libs | sudo bash
Рестартуем сессию PuTTY (как помните, правый клик мышки, при обрыве соединения появляется restart sesshion).
Выполнив ещё раз команду pstree, видим запущенный сервис Z-Way.
Набрав в браузере http://IP_OF_YOUR_RASPBERRY:8083 попадаем на страницу первоначальных настроек. Необходимо задать свой пароль, логин у вас будет admin, права доступа Administrator. Также можем сменить язык, с английского по умолчанию на русский, это можно сделать и на странице своих настроек.
Набрав IP_OF_YOUR_RASPBERRY:8083/expert, переходим в режим эксперта. Перейдя на вкладку Device – Interview можем посмотреть статус нашего контролера.
Если строить «Умный дом» (автоматизацию квартиры), только на технологии Z-Wave, то возможно этого и достаточно, если же использовать несколько технологий и планировать расширение системы, то на мой взгляд, этого не хватит.
Поэтому установим ещё модуль Z-Wave в MajorDoMo:
Переходим на главную страницу MajorDomo: открыв в браузере IP_OF_YOUR_RASPBERRY (уже без указания порта), видим уже знакомый интерфейс:
Переходим в Панель Управления, далее: Система Маркет Обновления – оборудование
В самом конце списка дополнение для Z-Wave, добавляем его.
Пожалуй, на этом и остановимся.
Единственное хотел добавить:
Небольшая информация: наш Raspberry работает под операционной системой Raspbian GNU/Linux, основанной на Debian9. Узнать версию ОС можно использовав команды:
cat /etc/*-release lsb_release -a
В инструкциях по установке, описано для версии Raspbian wheezy (Debian 7), которая уже прекратила поддержку и актуальность с февраля 2016г.
Источники:
Чтоб не искать по тексту, повторю небольшой список источников: