- Linux
- Install Home Assistant Operating System
- Download the appropriate image
- Create the Virtual Machine
- Hypervisor specific configuration
- Start up your Virtual Machine
- Install Home Assistant Container
- Platform Installation
- Restart Home Assistant
- Docker Compose
- Exposing Devices
- Optimizations
- Install Home Assistant Core
- Install dependencies
- Create an account
- Create the virtual environment
- Install Home Assistant Supervised
- Home assistant linux install
- Устанавливаем Home Assistant на Ubuntu server
- Установка Home Assistant
- Обновление Home Assistant
- Установка Home Assistant + Supervisor в Ubuntu на HDD Raspberry Pi 4
- Вступление
- Выбор стека
- Оборудование в наличии
- Шаг 0. Первый контакт
- Шаг 1. Настройка загрузки с HDD
- Шаг 2. Устанавливаем зависимости
Linux
Install Home Assistant Operating System
Download the appropriate image
Follow this guide if you already are running a supported virtual machine hypervisor. If you are not familiar with virtual machines we recommend installation Home Assistant OS directly on a Raspberry Pi or an ODROID.
Create the Virtual Machine
Load the appliance image into your virtual machine hypervisor. (Note: You are free to assign as much resources as you wish to the VM, please assign enough based on your add-on needs)
Minimum recommended assignments:
All these can be extended if your usage calls for more resources.
Hypervisor specific configuration
- Create a new virtual machine
- Select “Other Linux (64Bit)
- Select “Use an existing virtual hard disk file”, select the VDI file from above
- Edit the “Settings” of the VM and go “System” then Motherboard and Enable EFI
- Then “Network” “Adapter 1” Bridged and your adapter.
- Create a new virtual machine in virt-manager
- Select “Import existing disk image”, provide the path to the QCOW2 image above
- Choose “Generic Default” for the operating system
- Check the box for “Customize configuration before install”
- Select your bridge under “Network Selection”
- Under customization select “Overview” -> “Firmware” -> “UEFI x86_64: …”.****
- Create a new virtual machine
- Select “Custom”, make it compatible with the default of Workstation and ESX
- Choose “I will install the operating system later”, select “Linux” -> “Other Linux 5.x or later kernel 64-bit”
- Select “Use Bridged Networking”
- Select “Use an existing virtual disk” and select the VMDK file above,
After creation of VM go to “Settings” and “Options” then “Advanced” and select “Firmware type” to “UEFI”.
Start up your Virtual Machine
- Start the Virtual Machine
- Observe the boot process of Home Assistant Operating System
- Once completed you will be able to reach Home Assistant on homeassistant.local:8123. If you are running an older Windows version or have a stricter network configuration, you might need to access Home Assistant at homeassistant:8123 or http://X.X.X.X:8123 (replace X.X.X.X with your ’s IP address).
With the Home Assistant Operating System installed and accessible you can continue with onboarding.
Install Home Assistant Container
These below instructions are for an installation of Home Assistant Container running in your own container environment, which you manage yourself. Any OCI compatible runtime can be used, however this guide will focus on installing it with Docker.
This guide assumes that you already have an operating system setup and a container runtime installed (like Docker).
If you are using Docker then you need to be on at least version 19.03.9, ideally an even higher version, and libseccomp 2.42 or newer.
Platform Installation
Installation with Docker is straightforward. Adjust the following command so that /PATH_TO_YOUR_CONFIG points at the folder where you want to store your configuration and run it.
Once the Home Assistant Container is running Home Assistant should be accessible using http:// :8123 (replace with the hostname or IP of the system). You can continue with onboarding.
Restart Home Assistant
If you change the configuration you have to restart the server. To do that you have 3 options.
- In your Home Assistant UI go to the Configuration panel ->Server management and click the “Restart” button.
- You can go to the Developer Tools ->Services, select the service homeassistant.restart and click “Call Service”.
- Restart it from a terminal.
Docker Compose
In order to use docker-compose you first need to install docker-compose on your system.
As the Docker command becomes more complex, switching to docker-compose can be preferable and support automatically restarting on failure or system restart. Create a docker-compose.yml file:
Start it by running:
Exposing Devices
In order to use Z-Wave, Zigbee or other integrations that require access to devices, you need to map the appropriate device into the container. Ensure the user that is running the container has the correct privileges to access the /dev/tty* file, then add the device mapping to your container instructions:
Optimizations
The Home Assistant Container is using an alternative memory allocation library jemalloc for better memory management and Python runtime speedup.
As jemalloc can cause issues on certain hardware, it can be disabled by passing the environment variable DISABLE_JEMALLOC with any value, for example:
The error message : Unsupported system page size is one known indicator.
Install Home Assistant Core
This guide assumes that you already have an operating system setup and have installed Python 3.8 (including the package python3-dev ) or newer.
Install dependencies
Before you start make sure your system is fully updated, all packages in this guide are installed with apt , if your OS does not have that, look for alternatives.
Install the dependencies:
Create an account
Add an account for Home Assistant Core called homeassistant . Since this account is only for running Home Assistant Core the extra arguments of -rm is added to create a system account and create a home directory.
Create the virtual environment
First we will create a directory for the installation of Home Assistant Core and change the owner to the homeassistant account.
Next up is to create and change to a virtual environment for Home Assistant Core. This will be done as the homeassistant account.
Once you have activated the virtual environment (notice the prompt change to (homeassistant) [email protected]:/srv/homeassistant $ ) you will need to run the following command to install a required Python package.
Once you have installed the required Python package it is now time to install Home Assistant Core!
Start Home Assistant Core for the first time. This will complete the installation for you, automatically creating the .homeassistant configuration directory in the /home/homeassistant directory, and installing any basic dependencies.
You can now reach your installation via the web interface on http://homeassistant.local:8123 .
If this address doesn’t work you may also try http://localhost:8123 or http://X.X.X.X:8123 (replace X.X.X.X with your machines’ IP address).
When you run the hass command for the first time, it will download, install and cache the necessary libraries/dependencies. This procedure may take anywhere between 5 to 10 minutes. During that time, you may get “site cannot be reached” error when accessing the web interface. This will only happen for the first time, and subsequent restarts will be much faster.
Install Home Assistant Supervised
This way of running Home Assistant will require the most of you. It also has strict requirements you need to follow.
Unless you really need this installation type, you should install Home Assistant OS (this can also be a virtual machine), or Home Assistant Container.
- First make sure you understand the requirements.
- Then head over to home-assistant/supervised-installer to set it up.
Once the Home Assistant Supervised installation is running and Home Assistant accessible you can continue with onboarding.
Источник
Home assistant linux install
This installation method is for advanced users only
Make sure you understand the requirements
Install Home Assistant Supervised
This installation method provides the full Home Assistant experience on a regular operating system. This means, all components from the Home Assistant method are used, except for the Home Assistant Operating System. This system will run the Home Assistant Supervisor. The Supervisor is not just an application, it is a full appliance that manages the whole system. It will clean up, repair or reset settings to default if they no longer match expected values.
By not using the Home Assistant Operating System, the user is responsible for making sure that all required components are installed and maintained. Required components and their versions will change over time. Home Assistant Supervised is provided as-is as a foundation for community supported do-it-yourself solutions. We only accept bug reports for issues that have been reproduced on a freshly installed, fully updated Debian with no additional packages.
This method is considered advanced and should only be used if one is an expert in managing a Linux operating system, Docker and networking.
Run as root (sudo su):
Command line arguments
argument | default | description |
---|---|---|
-m | —machine | On a special platform they need set a machine type use | |
-d | —data-share | $PREFIX/share/hassio | data folder for hass.io installation |
-p | —prefix | /usr | Binary prefix for hass.io installation |
-s | —sysconfdir | /etc | Configuration directory for hass.io installation |
you can set these parameters by appending —
Supported Machine types
- generic-x86-64
- odroid-c2
- odroid-n2
- odroid-xu
- qemuarm
- qemuarm-64
- qemux86
- qemux86-64
- raspberrypi
- raspberrypi2
- raspberrypi3
- raspberrypi4
- raspberrypi3-64
- raspberrypi4-64
- tinker
- khadas-vim3
If somethings going wrong, use journalctl -f to get your system logs. If you are not familiar with Linux and how you can fix issues, we recommend to use our Home Assistant OS.
Источник
Устанавливаем Home Assistant на Ubuntu server
Home Assistant мощная платформа управления глупым умным домом, которая может контролировать и управлять устройствами нашего дома. Работает на большом количестве систем, в том числе Raspberry PI, для которой имеет сборку образ Hass.io. Проект активно развивается и имеет большое сообщество, всю актуальную информацию можно найти на сайте проекта: https://www.home-assistant.io/.
Прежде чем ставить на обычный компьютер я опробовал сборку Hass.io для одноплатника, но у меня она не прижилась, все плюсы системы были перечеркнуты минусами:
- Всё управление, в том числе правка конфигурационных файлов (а это основная часть настройки), производится через Web интерфейс в не самом удобном редакторе.
- У меня так и не получилось удаленно достучаться до малинки по SSH. Достучаться можно через плагин SSH через Web морду (оно вам надо?). Плагин Samba у меня не завелся совсем, а хоть какой-то доступ к файловой системе иметь всё же хочется.
- Вся система работает в кучке Docker контейнеров изрядно нагружая одноплатник и в работе системы наблюдались притормаживания, которые отражались на работе устройств (например, в задержке реакции устройств на какое либо действие).
Исходя из этого было принято решение установить Home Assistant на нормальный компьютер, точнее в отдельную KVM виртуалку. Ubuntu была выбрана в качестве основной системы т.к. Raspberry Pi OS, так же, как и Ubuntu имеют общие корни Debian.
Установка Home Assistant
Вся предоставленная ниже информация взята на сайте проекта и основана на установке Home Assistant для Raspberry Pi.
Подключаемся к системе, на которой у нас будет крутиться Home Assistant по SSH и обновляем систему до актуального состояния.
После обновления системы устанавливаем необходимые компоненты и зависимости.
Создаем нового системного пользователя с домашней папкой для запуска и работы ядра Home Assistant, назовем его homeassistant . Добавим его в группу dialout для взаимодействия с устройствами Z-Wave и ZigBee.
Далее создаем папку для ядра Home Assistant и устанавливаем пользователя homeassistant для неё владельцем.
Теперь создаем виртуальное окружение для ядра Home Assistant, делаем это для учетной записи homeassistant .
После активации виртуальной среды выполняем установку необходимого пакета Python.
По завершении установки пакета Python приступаем к установке Home Assistant.
Запускаем наш Home Assistant в первый раз. При первом запуске в домашнем каталоге пользователя homeassistant (/home/homeassistant) будет создана папка .homeassistant , в которой будут находится конфигурационные файлы системы.
Первый запуск может занимать 5-10 минут, после чего проверяем доступность установленной системы через браузер.
http://ha_ip_address:8123
Прерываем работу запущенной системы.
Выходим из учетной записи пользователя homeassistant .
Создаем файл для запуска сервиса при старте системы.
Проверяем работу сервиса.
Через Web браузер проверяем работу Home Assistant.
http://ha_ip_address:8123
Обновление Home Assistant
Для обновления до последней версии необходимо выполнить следующие три команды.
После обновления выполняем перезапуск службы homeassistant@homeassistant.service
Обратите внимание, что первый запуск после обновления может занять некоторое время.
Источник
Установка Home Assistant + Supervisor в Ubuntu на HDD Raspberry Pi 4
Вступление
Данный мануал составлен мной после нескольких недель штудирования форумов, для тех, кто захочет пройти моим путем. Критика приветствуется.
Выбор стека
Про Home Assistant (далее для краткости — HA) сказано было многое, и, на мой взгляд, это самая удачная система умного дома. По теме выбора можно почитать тут:
Почему HDD? Много раз на форумах писали, что малинка с Home Assistant на борту кушает SD карты по одной за год. Кроме того, HA еще и логи пишет не понятно до каких пределов. Так что никаких SD.
Оборудование в наличии
Переходник SATA — USB (при необходимости)
Ноут (комп) c возможностью записи SD карт. (У меня ноут под Windows 10)
Роутер для выхода в сеть
Варианты установки 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 в комплекте. Вот что про это пишут разработчики:
Внимание! Этот способ запуска Home Assistant потребует всех ваших сил. У вас будут строгие требования, которым придется следовать. Если вы не понимаете зачем оно вам надо, используйте способы описанные выше.
Этот метод установки обеспечит полный функционал HA на обычной системе. Это значит, что все компоненты HA будут использованы за исключением Home Assistant Operating System. Пользователь сам ответственен, чтобы все требуемые компоненты были установлены и настроены. Список компонентов и их версии меняются со временем, а Home Assistant Supervised предоставляется как есть. И, вообще, мы принимаем багрепорты воспроизводимые только на свежеустановленном полностью обновленном Debian без дополнительных архивов.
Этот метод считается продвинутым и должен использоваться только если читающий — эксперт в управлении Linux, Docker и сетях. Приятно слышать.
Мы работаем только с Docker и ни с чем другим.
Дальше идет список требований. К нему вернемся в процессе установки.
Только вышеназванная версия Debian (на момент написания статьи это Debian Linux Debian 10 aka Buster (no derivatives)) поддерживается. Когда выходит новая версия Debian поддержка предыдущей прекращается в течение 4 месяцев. Если только новая версия не соответствует требованиям Supervisor.
Этот метод не будет работать если читающий где-то накосячит. Кстати, вот вам еще несколько дополнительных условий:
Эта система только для Home Assistant. Даже не думайте устанавливать еще какое-то ПО.
За установку и настройку ОС
За обновление компонентов, необходимых для Supervisor
За установку хоть чего нибудь, конфликтующего с Supervisor
За обновления безопасности
Время от времени требования к Supervisor меняются и читающий должен сам обновлять свою ОС и устанавливать недостающие компоненты
Заключение: Эксперт. Тебе будет непросто. Смирись.
Шаг 0. Первый контакт
Здесь и далее я буду подключать Raspberry через WiFi. Начнем с того, что пропишем в нашем домашнем DHСP сервере статический IP-адрес Raspberry. Это нужно для удобства, чтобы не выяснять каждый раз, как достучаться до малинки.
Качаем образ Ubuntu от сюда. На данный момент это Ubuntu Server 20.04.2 LTS 64-bit. Заливаем на SD карту при помощи Balena Etcher. Вынимаем карту и . снова вставляем откуда взяли. Это нужно, чтобы загрузочный сектор Ububuntu стал доступен в проводнике. Открываем файл network-config и прописываем туда параметры WiFi. Должно получится что-то вроде:
А теперь немного комментариев разработчиков:
Имя сети должно быть в кавычках
При первой загрузке Raspberry попытается присоединится к WiFi. Эта попытка обречена на провал. Но не расстраивайтесь, просто перезагрузите малинку sudo reboot -h now и все заработает.
Для этого нам и нужен монитор с клавой. И да, дефолтный логин ubuntu пароль такой же. Если выдается сообщение Login incorrect значит нужно просто немного подождать и попробовать еще раз. Затем нам предложат задать свой супер-мега-сложный пароль и не отстанут, пока не сделаем это. Как только мы получили доступ к телу командной строке — перезагружаемся. Верный признак, что коннект есть — Ubuntu рапортует, что можно поставить несколько апдейтов. Узнать IP и MAC адрес малинки можно командой ip a . А теперь идем в настройки роутера и прописываем статический IP дли MAC одноплатника. Как это сделать не скажу — здесь все индивидуально.
Шаг 1. Настройка загрузки с HDD
Обновляем систему чтобы все было по фен-шую.
sudo apt update
sudo apt upgrade -y
Теперь устанавливаем пакет для работы с загрузчиком sudo apt install rpi-eeprom . На всякий случай перезагружаемся sudo reboot -h now .
У загрузчика имеется три версии релиза (выдержка из оригинальной статьи):
default — Обновляется для поддержки нового железа, исправления критических ошибок и регулярного обновления новых фичей, протестированных в релизе latest .
latest — Обновляется, когда новые фичи прошли успешное бета-тестирование
beta — Здесь тестируется все новое
Из вышесказанного понятно, что релизы проранжированы по степени новизны/стабильности.
На одном из форумов написано:
Будьте уверены, что используете последнюю версию релиза latest (он же stable ). Если же нет, Вы не сможете загрузиться с USB. Не существует default (он же critical ) релиза с поддержкой загрузки по USB.
Как по мне, все нормально запустилось с default ветки. По-видимому, на дату статьи релиз уже обновили.
Итак, делай раз: обновляем загрузчик до последней версии sudo rpi-eeprom-update -a . Перезагружаемся sudo reboot -h now .
Делай два: заливаем Ubuntu на USB (HDD) носитель. Как это сделать, описано в Шаге 0. Примечание: некоторые рапортуют о проблемах с питанием HDD при использовании переходника SATA-USB. Что с этим делать — думайте сами. Например, замените HDD на SSD. Лично у меня HDD Toshiba MK7575GSX нормально завелся.
Делай три: В загрузочном разделе (он всегда первый и отформатирован в FAT32) Находим файл vmlinuz , распаковываем его в эту же директорию (я использовал 7-Zip) и переименовываем в vmlinux . Идем в config.txt , комментим строки чтобы было как-то так:
И дописываем, чтобы было как-то так:
initramfs initrd.img followkernel
Все. Больше здесь ничего ни трогаем, впрочем кому как нравится.
Делай четыре: прописываем настройки wi-fi как в шаге 0.
Делай пять. Идем сюда: https://github.com/raspberrypi/firmware/tree/master и копируем себе репозиторий. Там есть такая зеленая кнопка Code , а в ней Download ZIP . В скаченном архиве идем в папку Boot и копируем (с заменой конечно же!) файлы с расширением .dat и .elf в загрузочный раздел нашего USB носителя. Теперь USB готов к работе. Подключаем его к порту USB 3.0 (тот, что с синей полоской) чтобы быстрее работало. Пробуем загрузиться, и. надеюсь, что все заведется.
Траблшутинг: Лично у меня была проблема — не запускалась малинка после очередного обновления ядра Linux или чего-то такого. Но потом ребята с GitHub’а все пофиксили и стало ОК. Так что, если у вас что-то идет не так: либо нарушили какой-то пункт из описанных выше, либо ждем обновления ветки (кстати, можно перейти на релиз latest и попробовать с него), либо повезет в любви. И еще, после обновления системы, выполняемого, например, командой sudo apt full-upgrade Ubuntu перестанет запускаться до тех пор, пока в загрузочном секторе мы снова не распакуем vmlinuz в vmlinux .
Шаг 2. Устанавливаем зависимости
Разработчики требуют, чтобы в системе было установлено Docker, Systemd, NetworkManager, AppArmor. Sysstemd и AppArmor уже установлены в системе — по ним дополнительных действий не требуется.
Хотя пакет jq отсутствует в официальных требованиях, без него установочный скрипт все-равно не запустится. С него и начнем. Выполняем sudo apt install jq . Готово!
Теперь возьмемся за NetworkManager. Для начала устанавливаем его командой sudo apt install network-manager . Добавляем в автозагрузку sudo systemctl enable NetworkManager . Но просто установить и запустить его недостаточно. В настоящий момент есть две альтернативные системы управления сетью systemd-networkd и NetworkManager. По умолчанию в системе установлена первая, а нам нужен именно 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 , перезагружаемся.
Приступаем к установке Docker. Далее взяты инструкции с официального сайта Docker.
Для начала установим зависимости, которые требует Docker sudo apt install apt-transport-https ca-certificates curl gnupg-agent \
Добавляем официальный ключ Docker curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add — . Проверяем, что ключ добавился правильно командой sudo apt-key fingerprint 0EBFCD88 . В ответе должно быть 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 .
Добавляем официальный репозиторий Docker в систему.
Источник