В данной статье мы затронем установку Home Assistant с некоторыми аддонами как на поддерживаемые, так и на не поддерживаемые официально системы (32 бит).
В настоящее время умные дома становятся все более популярными среди потребителей. Это связано с быстро развивающейся технологией, которая позволяет создавать устройства и системы, способные управлять различными аспектами жизни в доме, такими как освещение, отопление, кондиционирование воздуха, безопасность и развлечения. Кроме того, умные дома позволяют сократить расходы на энергию и повысить уровень комфорта и удобства жизни.
В данной статье мы поговорим о том, как создать умный дом на платформе Home Assistant. Home Assistant — это бесплатная и открытая система управления домашними устройствами, которая позволяет интегрировать различные устройства и сервисы для автоматизации и управления жизнью в доме.
Преимущества Home Assistant перед системами умных домов других производителей (Xiaomi,Tuya, и др.) заключается в возможности использовать устройства разных производителей с разными типами подключения (WiFi, MQTT, Zigbee, Bluetooth) без привязки к экосистеме определенного производителя.
Нам потребуется компьютер или ноутбук с 512+ Мб ОЗУ
Если ваш компьютер или ноутбук имеет 64-битный процессор, установка Home Assistant значительно упрощается, так как подробная инструкция доступна на официальном сайте.
Однако, если у вас есть устройство с 32-битным процессором и архитектурой i386, то установка аддонов для работы с внешними датчиками может быть сложной из-за отсутствия официальной поддержки. Однако, не отчаивайтесь, поскольку в этой статье мы рассмотрим способы установки на такие устройства. (Важно отметить, что эти методы также могут быть применены на 64-битных системах, но они сложнее официальных в реализации).
1. Установка системы
Для сервера умного дома подойдет практически любой дистрибутив Linux, но рекомендуется Debian. В данной статье буду использовать сам Debian.
Начнем с установки. Этот процесс одинаков практически для любой системы.
-
Скачайте последнюю версию ISO.
Я выбрал образ «Small», так как он включает большинство файлов в образ, что требует меньше загрузки в процессе установки. -
Скачайте Balena Etcher, инструмент для записи ISO-образов на USB-накопитель. Если вы работаете в системе linux, вместо этого можно использовать dd.
-
Подключите загруженный USB-накопитель к системе и загрузитесь с USB.
-
Следуйте процессу установки.
Большая часть процесса — это следование настройкам по умолчанию и просто нажатие кнопки Continue.Не забудьте ввести учетные данные для пользователя root и пользователя, не являющегося администратором.
Если вы планируете использовать компьютер только для умного дома, убедитесь, что вы не устанавливаете графический интерфейс пользователя (GUI), и обязательно установите SSH-сервер.
-
После завершения установки войдите в систему по SSH, либо напрямую с пк, используя учетные данные обычного пользователя (не рут).
2. Установка Docker и Docker Compose
Несмотря на то, что Docker и Docker engine официально не поддерживают 32-битные системы, его можно установить, воспользовавшись данным репозиторием на GitLab:
wget https://gitlab.com/docker-32bit/debian/raw/i386/build-image.sh
sudo bash build-image.sh
Docker Compose можно установить командой:
sudo apt install docker-compose
3. (опционально) Установка Portainer
Portainer может пригодиться для более удобного управления будущими Docker-контейнерами.
Для установки Portainer создадим конфигурационный файл docker-compose.yaml:
cd /opt
sudo nano docker-compose.yaml
Не забудьте обновить часовой пояс в конфигурации ниже.
Кроме того, я храню весь свой конфиг Docker и тома в этой папке. Это облегчает резервное копирование. Эти тома будут хранить данные из образа Docker локально, чтобы данные не терялись при пересборке контейнера (например, при обновлении) /opt
Здесь мы передаем файл, содержащий наши локальные настройки времени, чтобы Portainer знал, который сейчас час (для временных меток журнала), а также сокет, управляющий Docker, чтобы Portainer мог выполнять действия в Docker.
version: '3.0'
services:
portainer:
container_name: portainer
image: bigbugcc/portainer-ce
restart: unless-stopped
ports:
- "9000:9000/tcp"
- "9443:9443/tcp"
environment:
- TZ=Asia/Novosibirsk
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock
- /opt/portainer/data:/data
Разрешения
Мы также разрешим нашему пользователю, не являющемуся администратором, изменять этот файл. Опять же, чтобы немного облегчить нам жизнь.
sudo chown root:docker docker-compose.yaml
sudo chmod g+w docker-compose.yaml
Проверьте конфигурацию
Хотите убедиться, что вы не допустили ошибок в конфигурации? Выполните следующую команду, и Docker выведет вам то, что будет запущено, а также все ошибки в вашем конфиге и предупреждения.
docker-compose -f docker-compose.yaml config
Запуск
docker-compose up -d
Запускаем, и Docker загрузит последний образ Portainer и все настроит. После этого мы сможем открыть веб-интерфейс Portainer, перейдя по адресу (вы получите предупреждение о самоподписанном сертификате) или (нешифрованное соединение).
https://<ip компьютера>:9443
http://<ip компьютера>:9000
При первом посещении этого портала он попросит нас создать учетную запись пользователя.
4. Установка Home Assistant
Если вы пропустили предыдущий пункт, то потребуется первоначальная настройка Docker Compose для работы:
cd /opt
sudo nano docker-compose.yaml
Далее записываем конфигурацию контейнера в файл(не забываем указать свой часовой пояс для правильного показа времени в интерфейсе и логах):
version: '3.0'
services:
[...]
homeassistant:
container_name: homeassistant
image: "ghcr.io/home-assistant/home-assistant:stable"
restart: unless-stopped
environment:
- TZ=Asia/Novosibirsk
volumes:
- /opt/homeassistant/config:/config
- /etc/localtime:/etc/localtime:ro
privileged: true
network_mode: host
Создадим папку для конфигурационных файлов Homeassistant и запустим его:
cd /opt
sudo mkdir -p homeassistant/config
docker-compose up -d
Теперь Docker извлечет образ Home Assistant и все настроит.
Настройка Home Assistant
Теперь, когда контейнер запущен и работает, нам нужно настроить сам экземпляр Home Assistant.
Откройте браузер и перейдите по адресу http://<ip компьютера>:8123
Начальная настройка Home Assistant
Выберите имя пользователя и пароль для вашей учетной записи Home Assistant. Эта учетная запись также будет «администратором».
Далее пройдите через настройку вашей домашней зоны. В процессе настройки Home Assistant даже покажет вам устройства, которые он уже обнаружил и которые вы можете интегрировать с самого начала.
После завершения настройки вы окажетесь на информационной панели Home Assistant. Если вы настроили какие-либо устройства на предыдущем этапе, они будут отображаться на главном экране.
Управление Portainer из Home Assistant
Как только мы начнем добавлять дополнения, нам захочется довольно часто иметь возможность быстро просматривать их без необходимости открывать дополнительные окна браузера.
Для этого мы воспользуемся панелью iframe. Эта интеграция добавит Portainer в боковую панель Home Assistant.
cd /opt/homeassistant/config
sudo nano configuration.yaml
Чтобы добавить iframe для Portainer, добавьте следующий код в файл configuration.yaml
:
panel_iframe:
portainer:
title: Portainer
url: "https://192.168.10.106:9443"
icon: mdi:docker
require_admin: true
5. Установка брокера Mosquitto для работы MQTT и Zigbee устройств
В этой части мы добавим наше первое дополнение. Брокер Mosquitto MQTT позволит нам соединяться с широким спектром устройств, и я настоятельно рекомендую его к установке.
Обновим конфигурацию docker-compose.yaml
:
services:
[...]
homeassistant:
[...]
depends_on:
- mosquitto
mosquitto:
container_name: mosquitto
image: eclipse-mosquitto
restart: unless-stopped
ports:
- "1883:1883/tcp"
environment:
- TZ=Asia/Novosibirsk
volumes:
- /opt/mosquitto/config:/mosquitto/config
- /opt/mosquitto/data:/mosquitto/data
- /opt/mosquitto/log:/mosquitto/log
stdin_open: true
tty: true
Мы добавили строки stdin_open
и tty
, чтобы впоследствии мы могли подключиться к терминалу контейнера для выполнения некоторых команд.
Обратите внимание, что мы также добавили зависимость от контейнера mosquitto для нашего контейнера Home Assistant. Таким образом, наш брокер будет в сети до запуска Home Assistant, и мы можем быть уверены, что наше соединение не прервется.
Файл конфигурации mosquitto.conf
Когда мы запустим контейнер Mosquitto с помощью docker-compose up -d
, в журналах появятся ошибки о невозможности открыть файл конфигурации /mosquitto/config/mosquitto.conf
. Чтобы исправить это, мы можем загрузить файл конфигурации по умолчанию и сохранить его во вновь созданном каталоге config
:
cd /opt/mosquitto/config/
sudo wget https://raw.githubusercontent.com/eclipse/mosquitto/master/mosquitto.conf
Однако мы сделаем несколько изменений. Вы можете добавить следующие строки в конец конфигурационного файла, так как по умолчанию все настройки закомментированы (настройки по умолчанию).
sudo nano mosquitto.conf
# Добавьте следующие строки в конец
# Listen on port 1883 on all IPv4 interfaces
listener 1883
socket_domain ipv4
# save the in-memory database to disk
persistence true
persistence_location /mosquitto/data/
# Log to stderr and logfile
log_dest stderr
log_dest file /mosquitto/log/mosquitto.log
# Require authentication
allow_anonymous false
password_file /mosquitto/config/mqttuser
Пользователи Mosquitto
Далее мы создадим пользователя в Home Assistant для соединения с брокером.
В идеале мы позже создадим нового пользователя для каждого устройства (семейства). Например, одна учетная запись для устройств Shelly, одна для Zigbee2MQTT и т.д.
Выполните следующую команду для создания пользователя с именем homeassistant. Обратите внимание, что параметр -c создаст новый файл паролей и перезапишет все существующие файлы. Поэтому отбросьте этот параметр, если вы хотите создать вторую учетную запись.
docker exec -it mosquitto mosquitto_passwd -c /mosquitto/config/mqttuser homeassistant
Если теперь вы проверите содержимое только что созданного файла mqttuser
, вы найдете свое имя пользователя и хэшированный пароль:
cat /opt/mosquitto/config/mqttuser
homeassistant:$7$101$q7VtJJ/E*******7$1I******************************************b/G**************************************A==
Теперь мы можем перезапустить контейнер Mosquitto, чтобы он загрузил наши изменения:
sudo docker-compose restart mosquitto
Логи должны показать, что контейнер Mosquitto запущен:
sudo cat /opt/mosquitto/log/mosquitto.log
1662413136: mosquitto version 2.0.15 starting
1662413136: Config loaded from /mosquitto/config/mosquitto.conf.
1662413136: Opening ipv4 listen socket on port 1883.
1662413136: mosquitto version 2.0.15 running
Настройка MQTT в Home Assistant
Теперь мы можем подключить Home Assistant к нашему брокеру MQTT, чтобы он мог начать подписываться на темы и отправлять сообщения. Поскольку пока нет других подключенных MQTT клиентов, Home Assistant пока не будет добавлять новые устройства.
Мы добавляем новую интеграцию MQTT в Home Assistant и вводим учетные данные, которые мы установили минуту назад для аутентификации.
Логи контейнера MQTT подтверждают успешное подключение Home Assistant:
sudo cat /opt/mosquitto/log/mosquitto.log
1662413136: mosquitto version 2.0.15 running
1662414198: New connection from 192.168.10.106:43153 on port 1883.
1662414198: New client connected from 192.168.10.106:43153 as 4atvQWWEyf2XpG3yy0kgOW (p1, c1, k60, u'homeassistant').
1662414198: Client 4atvQWWEyf2XpG3yy0kgOW disconnected.
1662414198: New connection from 192.168.10.106:39605 on port 1883.
1662414198: New client connected from 192.168.10.106:39605 as 5gNbahjfE5DulEufquYcaa (p2, c1, k60, u'homeassistant').
6. Установка Zigbee2MQTT для подключения датчиков и других устройств умного дома по протоколу Zigbee
Для этого потребуется приобрести отдельный Zigbee-координатор, который подключается к компьютеру по USB. Я использовал этот в своей системе.
Найти координатор Zigbee
В конфигурации Docker compose нам нужно будет назначить координатор Zigbee, который будет подключен через USB, к контейнеру Docker.
Подключите ваш координатор Zigbee (например, Conbee II, Sonof Zigbee 3.0 Plus, …) к вашей машине. Затем выполните следующую команду, чтобы получить уникальный путь к устройству.
ls -l /dev/serial/by-id/
usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_eexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx52-if00-port0 -> ../../ttyUSB0
Позже мы будем использовать этот уникальный путь by-id в нашей конфигурации вместо типичного /dev/ttyUSB0, потому что всегда есть риск, что устройство получит новый TTY после перезагрузки, особенно при подключении других устройств.
Docker-compose
Мы расширяем наш docker-compose.yaml конфигурацией для контейнера Zigbee2MQTT.
services:
[...]
zigbee2mqtt:
container_name: zigbee2mqtt
image: koenkk/zigbee2mqtt
restart: unless-stopped
ports:
- "8099:8099/tcp"
environment:
- TZ=Asia/Novosibirsk
volumes:
- /opt/zigbee2mqtt/data:/app/data
- /run/udev:/run/udev:ro
devices:
- /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_eexxxxxxxxxxxxxxxxxxxxxxxxxxxx52-if00-port0:/dev/ttyACM0
Обратите внимание, что я изменил отображение портов для этого контейнера. Порт 8080 уже используется администратором, поэтому я изменил порт внешнего интерфейса Zigbee2MQTT на 8099 (см. ниже) и указал его в конфигурации Docker.
Мы не будем пока запускать наш контейнер, так как сначала нам нужно настроить нашу конфигурацию.
Создаем пользователя MQTT
Когда мы настраивали MQTT-брокер Mosquitto, я говорил, что предпочитаю создавать MQTT-пользователя для каждого сервиса. Поэтому давайте создадим пользователя для нашего контейнера Z2M.
docker exec -it mosquitto mosquitto_passwd /mosquitto/config/mqttuser z2m_mqtt
Password: # Enter a password
Reenter password: # Repeat the password
cat mosquitto/config/mqttuser
[...]
z2m_mqtt:$7$101$1xcB1yrF********$O$XR******************2/N************************************************************g==
Конфиг Zigbee2MQTT
Чтобы получить копию стандартного конфига, запустите sudo wget https://raw.githubusercontent.com/Koenkk/zigbee2mqtt/master/data/configuration.yaml
в папке, где будет храниться конфиг (/opt/zigbee2mqtt/data
). Затем откройте и отредактируйте его с помощью sudo nano /opt/zigbee2mqtt/data/configuration.yaml.
Мы укажем Z2M подключиться к нашему MQTT-брокеру, использовать синтаксис, который понимает Home Assistant для обнаружения устройств, настроить веб-сервер и позволить Z2M сгенерировать некоторые ключи, используемые для настройки сети Zigbee.
# Adapter settings
serial:
port: /dev/ttyACM0
# MQTT
mqtt:
base_topic: zigbee2mqtt
server: '!secret server'
user: '!secret user'
password: '!secret password'
client_id: zigbee
# Zigbee network
permit_join: false # Do not allow random devices to connect automatically
# Webserver
frontend:
port: 8099 # Custom port
url: 'http://<ip.of.our.box>:8099' # Update IP here
# Devices and groups
# Extract config to separate files
devices: devices.yaml
groups: groups.yaml
# Home Assistant integration
homeassistant: true
Если вы проверите журналы через Portainer или docker-compose logs zigbee2mqtt
, вы увидите, что наш контейнер прекрасно запустился:
Using '/app/data' as data directory
Zigbee2MQTT:info 2022-10-04 12:09:47: Logging to console and directory: '/app/data/log/2022-10-04.12-09-47' filename: log.txt
Zigbee2MQTT:info 2022-10-04 12:09:47: Starting Zigbee2MQTT version 1.28.0 (commit #03ba647)
Zigbee2MQTT:info 2022-10-04 12:09:47: Starting zigbee-herdsman (0.14.62)
Zigbee2MQTT:info 2022-10-04 12:09:48: zigbee-herdsman started (resumed)
Zigbee2MQTT:info 2022-10-04 12:09:48: Coordinator firmware version: '{"meta":{"maintrel":1,"majorrel":2,"minorrel":7,"product":1,"revision":20220219,"transportrev":2},"type":"zStack3x0"}'
Zigbee2MQTT:info 2022-10-04 12:09:48: Currently 0 devices are joined:
Zigbee2MQTT:info 2022-10-04 12:09:48: Zigbee: disabling joining new devices.
Zigbee2MQTT:info 2022-10-04 12:09:48: Connecting to MQTT server at mqtt://<ip.of.our.box>:1883
Zigbee2MQTT:info 2022-10-04 12:09:48: Connected to MQTT server
Zigbee2MQTT:info 2022-10-04 12:09:48: MQTT publish: topic 'zigbee2mqtt/bridge/state', payload '{"state":"online"}'
Zigbee2MQTT:info 2022-10-04 12:09:48: Started frontend on port 0.0.0.0:8099
Zigbee2MQTT:info 2022-10-04 12:09:48: MQTT publish: topic 'zigbee2mqtt/bridge/state', payload '{"state":"online"}'
Добавим Z2M на боковую панель Home Assistant:
Процесс аналогичен с добавлением Portainer:
panel_iframe:
portainer:
[...]
zigbee2mqtt:
title: Zigbee2MQTT
icon: mdi:zigbee
url: http://192.168.10.106:8099
require_admin: true
После перезапуска Home Assistant (docker-compose restart homeassistant
) получим примерно следующее:
В данном видеоролике подробно и наглядно показано как пользоваться Zigbee2MQTT. Если вы в первый раз работаете с ним, рекомендую к просмотру.
Конец
Спасибо за внимание, есть еще немало дополнений, которые можно добавить, поэтому статья будет дополняться.
Если возникнут вопросы или предложения — пишите в комментарии, рад любой активности.
Локальный сервер Настройка и регистрация
Понятие автоматизации тесно связано с понятием автономности. Поэтому, естественное и справедливое желание владельца умного дома стремиться предусмотреть тот случай, когда облачный сервер окажется вне доступа. Хотя, на практике все мы понимаем, что без Интернета никуда, но нас так или иначе разъедает мысль изнутри : А вот что, если отключат? Не будем глубоко разбираться и доказывать вероятности, просто примем это как наш эволюционный ментальный инстинкт, который спасал нас ранее и требует сатисфакции.
Компьютер для сервера
Если Вы решили организовать свой собственный сервер умного дома, то прежде всего Вам потребуется личный компьютер-сервер. Он должен будет находиться с контроллерами в одной общей локальной сети. Какой компьютер выбрать? Это вопрос не имеет однозначного ответа. Да, самый простой вариант, это использовать в качестве сервера старый системный блок. Однако, он может быть достаточно шумным, и ненадежным. Есть вариант использования одноплатных компьютеров, типа Raspberry Pi. Мощности их будет достаточно, но необходимо обратить внимание на особенности их работы с Flash-картами, которые могут иметь ограниченный срок службы. Из нашей практики, наиболее стабильным решением будет являться сервер на базе форм-фактора Mini ITX. Такие компьютеры, более стабильные, менее шумные и малогабаритные.
Установка ОС и ПО
После выбора компьютера для сервера, Вам понадобится установить на него операционную систему (ОС). Возможно, и даже скорее всего, домашний сервер будет выполнять ряд задач. Например, он может выполнять функции общего сетевого хранилища (NAS), поддерживать систему видеонаблюдения, реализовывать задачи мини-АТС для IP-телефонии, быть игровым сервером ну и конечно уже сдержать какое-либо программное обеспечение (ПО) для организации умного дома. Поэтому, трудно рекомендовать какую-либо ОС для Вашего сервера, потому что она должна учитывать все Ваши задачи. Мы же, в свою очередь, реализовали сервер SmartESP таким образом, чтобы он мог быть установлен на максимальное число разнообразных компьютерных платформ.
Это технология называется контейнеризацией и позволяет в рамках одной системы запускать разные сервисы со своими специфическими требованиями. Мы используем технологию Docker, которая позволяет установить сервер SmartESP в отдельном контейнере. Процесс установки сервера достаточно прост для начинающего администратора и описан ниже.
Предположим, что у Вас уже есть домашний сервер на котором установлена ОС семейства Linux, например можно использовать Ubuntu 20.04 LTS.
- Подготовка директорий:
- Создайте новую директорию, которая станет основной для проекта:
$ mkdir /var/smartesp
- Создайте директорию для базы данных:
$ mkdir /var/smartesp/db
- Настройка конфигурационных файлов:
- Перейдите в рабочую директорию проекта:
$ cd /var/smartesp
- Создайте и отредактируйте файл
config.ini
со следующим содержимым (Вы можете использовать команду:nano config.ini
):
; Code page
CHARSET = "UTF-8"
; Database
DB_HOST_NAME = "db"
DB_NAME = "smartesp_db"
DB_USER_NAME = "smartesp_user"
DB_USER_PASS = "smartesp_pass"
; Secret key to restrict calling of the special cron-scripts
MASTER_KEY = "master_key"
; User registration secret key (allow all if empty)
REGISTER_KEY = ""
; Log retention period with full report, days
SAVE_LOG_PERIOD = 2
; Retention period for the summarized report archive, days
SAVE_ARCHIVE_PERIOD = 1000 - Создайте и отредактируйте файл
docker-compose.yml
со следующим содержимым (Вы можете использовать команду:nano docker-compose.yml
):version: '3'
services:
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: mysql_passkey
MYSQL_DATABASE: smartesp_db
MYSQL_USER: smartesp_user
MYSQL_PASSWORD: smartesp_pass
volumes:
- /var/smartesp/db:/var/lib/mysql
restart: always
web:
depends_on:
- db
image: smartesp/smartesp-vega:stable
volumes:
- /var/smartesp/config.ini:/var/www/html/config.ini
ports: - 80:80
restart: always - Установка и запуск контейнера:
- Убедитесь, что у Вас установлены Docker Engine и Docker Compose
- Скачайте образ сервера: docker:/smartesp/smartesp-vega:
$ docker pull smartesp/smartesp-vega:stable
- Запустите ваш докер-контейнер и связанные с ним сервисы в фоновом режиме:
$ docker-compose up -d
- Настройка планировщика задач. Откройте крон-таблицу текущего пользователя командой:
$ crontab -e
и добавьте следующие задания:3 0 * * * /usr/bin/wget -O /dev/null -T 10 -t 1 http://192.168.XXX.XXX/cron/service/master_key/
* * * * * /usr/bin/wget -O /dev/null -T 59 -t 1 http://192.168.XXX.XXX/cron/auto/master_key/192.168.XXX.XXX — это IP-адрес Вашего сервера в локальной сети.
В случае, если необходимо остановить и обновить или перезапустить контейнер, то это можно сделать следующим образом:$ docker-compose down
$ docker pull smartesp/smartesp-vega:stable
$ docker-compose up -d
Внимание!
После запуска контейнера, потребуется некоторое время пока будет создана база данных. Поэтому при открытии сайта, может появляться сообщение Connection refused. Просто подождите несколько минут и обновите страницу.
После установки сервера, откройте его в браузере и выполните первоначальную установку (создание базы данных), нажав кнопку Запуск.
После этого выполните стандартную регистрацию нового пользователя.
Вот и всё! Ваш собственный сервер готов к работе.
Регистрация локального сервера
Есть еще несколько интересных и важных момент которые стоит упомянуть.
Прежде всего, это возможность получать уведомления. Не смотря на то, что Ваш собственный сервер локальный, тем не менее это не означает, что Вы тоже будете находится всё время рядом с ним. Север может иметь выход в Интернет, благодаря чему появляется очень полезная возможность отправлять уведомления о критических состояниях умного дома. Система уведомлений реализована в каждом проекте и может быть крайне важна. Вот пример автоматических уведомлений созданных для проекта климат-контроля:
Для получения уведомлений, необходимо зарегистрироваться на сайте SmartESP в своем Персональном разделе.
После регистрации, перейдите в раздел Сервера и нажмите кнопку Новый сервер.
В появившемся окне, укажите условное Имя Вашего сервера, а также выберете вариант Local. Кроме этого поля, Вам понадобиться указать Код лицензии. Для этого зайдите на свой собственный сервер как пользователь и перейдите в раздел Учетная запись, где будет доступен Ваш уникальный код лицензии. Скопируйте его сюда.
Нажмите Сохранить и в списке Ваших серверов появится новая запись.
Чтобы подтвердить её, нажмите кнопку Отправить и Вам тут же будет выдан соответствующий лицензионный ключ.
Скопируйте его и перейдите обратно на собственный сервер в панель управления. Отредактируйте поле Лицензионный ключ, вставив ранее скопированный номер.
Готово! теперь Ваш собственный локальный сервер получил возможность отправлять уведомления через наш облачный сервер на Ваш Telegram-мессенджер.
Если вы читаете эту статью, то есть вероятность того, что вы «наигрались» с готовыми решениями от вендоров и они перестали вас удовлетворять по тем или иным причинам. Но возможно вы попали сюда по каким-то иным соображениям, поэтому советую вам ознакомиться с предыдущей статьей цикла, описывающей возможные варианты построения своего умного дома. Вдруг вам понравятся другие пути.
А если вы все-таки решили погрузиться в мир Open Source решений, то мы постараемся раскрыть для вас некоторые важные аспекты этого направления.
Open Sourcе — в буквальном переводе означает «открытый код». Это означает, что разработчики не скрывают свой программный код, и его может модернизировать или использовать для своих целей абсолютно любой желающий. Естественно, эти программы являются бесплатными. Их разработкой обычно занимаются программисты-энтузиасты, которые, чаще всего группами, занимаются реализацией идей и превращают их в работоспособный продукт.
Конечно, эти программы можно использовать как для личного использования, так и в коммерческих целях. Обычно, его распространяют, базируясь на идеологии GNU GPL.
Плюсы и минусы
Ввиду того, что опенсорс продукты разрабатываются энтузиастами, у них есть свои плюсы и минусы:
ПлюсыМинусыБесплатноОткрытый код, который можно дорабатывать и изменятьЕго можно просто скачать и установить
Нерегулярность либо отсутствие обновленийОчень частые проблемы при обновлении (вылетают модули и система перестает работать)Проблемы с поддержкой
Отсутствие единого ответственного за продуктДовольно сложная установкаНастройка и внедрение занимают значительное времяТребуются навыки программирования и знание машинной логикиТребуется очень много дополнительной информации для настройки даже тех модулей, для которых существует подробная документация (форумы, чаты и общение со специалистами)
Плюс ко всему, у OpenSource проектов есть один огромнейший минус. Если основная группа разработчиков потеряла интерес к продукту, то он очень быстро «умирает», так как перестает развиваться. Такая же ситуация возможна, если лидер команды решает коммерциализировать продукт, или приходит инвестор, который вообще может закрыть проект или интегрировать его в свой. То есть конечный пользователь останется с тыквой и без туфелек.
Выбор системы
Как мы упоминали в более ранних статьях, у нас уже сформировался некий рейтинг используемых нашими пользователями бесплатных систем управления. Мы не будем рассказывать обо всех, но кратко опишем лидеров нашего рейтинга, чтобы вы понимали особенности каждого из них.
Home Assistant
Home Assistant — open source система автоматизации, написанная на языке Python3. Она очень активно развивается, выходят постоянные обновления и появляется поддержка очень большого количества новых устройств. Также она довольно простыми способами интегрируется с большинством популярных экосистем и в ней осуществляется поддержка популярных онлайн-сервисов. В рейтинге сообщества Sprut.ai она занимает первое место.
Данную систему можно установить как на практически любой, достаточно производительный одноплатный ПК, так и на любой полноценный компьютер.
Что касается инструкций по установке, то помимо официальных мануалов от разработчиков, у нас есть целый цикл по установке и настройке системы от Александра Жабунина. Система поддерживает различные способы, в том числе и установку в виде распаковки образа на флешку (у нас на портале есть готовый образ для наших пользователей), но существуют и альтернативные способы установки.
Что касается особенностей системы, то одна из самых главных заключается в том, что система имеет два варианта — простой Home Assistant и Hass.io. Разница между ними в том, что в Hass.io есть раздел с аддонами, которые можно установить прямо из веб интерфейса. В простом Home Assistant такой возможности нет. Плюс к этому, есть еще один нюанс. Официальный образ от разработчика отличается от образов и вариантов установки на нашем портале тем, что у официального варианта нет полноценного доступа до хост-системы. В наших вариантах — доступ есть и он полноценный. Иногда это важно. Но некоторым может быть нет, поэтому они могут воспользоваться обычным вариантом установки, предлагаемым разработчиками. А что касается дополнительных настроек, то на нашем портале есть огромное количество информации на эту тему, которую вы можете с легкостью найти по тегу Home Assistant.
Пример внешнего вида интерфейса.Немного статей по данной системе, с которыми рекомендую ознакомиться.
Home Assistant, статья 1 (установка)
Home Assistant, статья 2 (базовая настройка).
Home Assistant, статья 3 (добавляем устройства)
Homebridge
Homebridge — сервер, написанный на Nodejs с использованием API Apple, который позволяет добавить устройства в ваш Дом, которые не имеют сертификацию и изначально не поддерживают интеграцию в Apple HomeKit.
Благодаря слаженной работе разработчиков, на сегодняшний день, в систему интегрировано очень большое количество устройств. На нашем портале вы можете найти очень много статей на тему Raspberry Pi, которые могут вам помочь в настройке и изучении этой системы.
Homebridge является кросс-платформенным решением, которое можно установить на Windows, Linux и Mac OS X.
Также участниками общества были сделаны образы для Raspberry Pi уже с установленными Homebridge Вариант 1 и Вариант 2.
MajorDoMo
MajorDoMo — система автоматизации, написанная на языке PHP. Система быстро развивается и так же, как и все системы, является OpenSource проектом. Имеет свою армию фанатов. Но чтобы настроить данную систему идеально под себя, потребуются немалые знания языка PHP. Хотя есть поддержка модульной структуры и большое количество готовых модулей. К тому же, в отличии от большинства продуктов, Мажордомо имеет очень мощную Российскую команду разработчиков.
Если вы хотите почитать больше материалов на эту тему, воспользуйтесь поиском по тегу MajorDomo на нашем портале.
ioBroker
ioBroker — еще одна система для построения умного дома, написанная на NodeJS как и Homebridge.
Система тоже очень хорошо развивается и имеет большое количество интегрируемых устройств. Имеет армию своих фанатов, но интерфейс программы оставляет желать лучшего — дизайн остался еще в 2000х годах. Но, как говорится, «на вкус и цвет».
Хотя некоторые участники нашего сообщества утверждают, что для высоконагруженных систем с большим количеством устройств, ioBroker — это единственное подходящее решение. Это, конечно, может относиться к промышленным автоматизациям, но факт наличия подобного мнения означает, что систему используют даже в таких целях.
Что касается обычного использования системы для классического умного дома, то у нас на портале есть несколько интересных статей на эту тематику:
А если вы хотите почитать побольше, то можете воспользоваться тегом ioBroker на нашем портале.
Node RED
Node RED — визуальная среда программирования, использующая API и онлайн сервисы, соединяющая между собой исполнительные устройства. NodeRED можно установить на любую систему, главное, чтобы можно было установить NodeJS.
Так как данная система является визуальной, то тут Минимум кода и максимум визуальности. Система на нашем портале пользуется большой популярностью и имеет много статей.
Хотя малое количество кода — это не совсем правда. Чтобы создать нечто сложное, вам придется все равно писать и писать код. Для каждого блока в вашей блок-схеме.
Но система обладает значительным преимуществом перед остальными. Она может быть интегрирована с чем угодно.
Например, мы можем использовать Home Assistant только в качестве визуального интерфейса управления и сервера для подключения устройств, а все автоматизации можно выполнять в Node-Red. Он и сам является полноценной системой автоматизации. Есть огромное количество модулей для интеграции тех или иных устройств и систем. Поэтому он и является одним из самых универсальных решений, которое можно водрузить поверх уже существующей системы как дополнение, или создавать на его базе новую, полноценную систему управления вашим умным домом.
Статьи по данной теме можно найти на нашем портале по тегу Node Red.
Domoticz
Domoticz — еще одна система управления умными домами. На данный момент тоже активно развивается и можно установить на любую ОС, но система, на сегодняшний день, не является идеальной. Начиная со страшненького дизайна и заканчивая довольно медленным развитием, относительно конкурентов. Именно поэтому в нашем сообществе она не сильно пользуется популярностью.
OpenHab
openHAB — это специальный сервер, который может работать на любом компьютере под управлением любой ОС (вы даже можете использовать RaspberryPi). Вся установка заключается в распаковывании дистрибутива сервера и установке Java машины. Далее начинается процесс настройки и созидания.
OpenHAB, по сравнению с предыдущим участником нашего рейтинга — ioBroker, имеет более современный интерфейс и насчитывает поддержку более 50 протоколов и типов устройств.
У системы есть свои плюсы и минусы, для описания которых понадобилось написать отдельную статью.
Но в целом — это довольно популярная система, которой многие с удовольствием пользуются.
Выбор железа
Эта тема достойна отдельной статьи, так как вариантов, куда установить систему для вашего умного дома, существует огромное множество. И мы ее таки напишем. Но в контексте данной статьи, было бы кощунственно не упомянуть самые популярные варианты, которые используют наши участники в качестве ядра для своего умного дома.
Различные модели Raspberry Pi
Дешевые неттопы
NAS от Synology
Выбор железа ограничен только вашей фантазией, но народ руководствуется прагматичными критериями.
Например, Raspberry Pi — это не очень дорого, потребляет мало электричества и обладает миниатюрным размером. Но производительность, для некоторых задач, может быть недостаточна. Да и флешка — достаточно ненадежное устройство для установки системы с постоянно обновляющимися базами данных. А решения с покупкой б/у-шного неттопа, за смешные деньги, имеют место быть. Причем с производительностью не возникает вообще никаких проблем. И хранение на SSD вполне себе оправдывает все. Ну а тем, кто владеет NAS от Synology — вообще повезло. Туда можно поставить все что угодно в Docker.
Но как я раньше и говорил, все это достойно отдельной статьи, ибо вариантов огромное количество, а плюсы и минусы есть у каждого из них.
Выводы
Основной вывод — вам придется подтягивать свои навыки программирования. Придется читать много на английском языке, так как оказывается даже самые «безумные», на первый взгляд, автоматизации для вашего дома, кто-то уже придумывал и задача так или иначе была решена. Но придется продираться через обсуждения различных вариантов решений задачи, и они будут содержать значительные куски кода, которые вам надо будет переписывать под себя. Это не так сложно, как может показаться, но занимает много времени. Хотя это, скорее, полезный навык в сегодняшних реалиях, когда даже для простейших автоматизаций в HomeKit уже необходимо понимание машинной логики. Иначе никак.
Второй основной вывод — бесплатность. С одной стороны — вам не придется покупать программное обеспечение. С другой — вы будете тратить свое время, а оно тоже стоит денег. Поэтому все подобные решения можно считать условно-бесплатными. К тому же, на железо все равно придется тратиться. Просто выбор намного богаче. И это несомненный плюс.
Третий основной вывод — установленная система без датчиков и исполнительных устройств вам ничего не даст. Вам все равно нужно покупать устройства. Плюс в том, что вы теперь не ограничены одним производителем и вольны выбирать любые подходящие вам решения. И подключать устройства вы сможете как через купленные ранее шлюзы (если они поддерживают эту функцию), так и через USB стики для соответствующих протоколов. Полная свобода.
Поэтому если вы все-таки решили остановить свой выбор на OpenSource решениях, то на данный момент, среди нашего сообщества, наибольшей популярностью пользуются 3 системы: Home Assistant, Homebridge и MajorDoMo.
Если вы хотите немного покодить, хотите хорошую поддержку большинства устройств, продаваемых на рынке, большое и дружное сообщество, которое вам всегда поможет, то ваш выбор — это Home Assistant.
Если перед вами стоит задача только сделать доступными ваши устройства в приложении Дом на вашем iPhone или iPad, то ваш выбор очевиден — HomeBridge. Возиться с кодом все равно придется, но намного меньше, чем в других вариантах.
Если вам нравится веб интерфейс, вы придерживаетесь классических подходов к визуализации, немного знаете язык программирования PHP и обладаете временем и терпением, то ваш выбор — MajorDomo.
Если хотите более функциональную систему с красивым дизайном, но с плохой русскоязычной поддержкой, то это openHAB.
Хотите систему функциональную, но более менее поддерживаемую русскоязычным сообществом, но с убогим дизайном, Domoticz — ваше все. Хотя, сомнительный выбор.
Ну и если вы хотите программировать визуально, то для вас подходит NodeRed.
А вот если для вас определяющим выбором является голосовой ассистент, с помощью которого вы хотите управлять своим умным домом, то в принципе Open Source системы как раз являются лучшим выбором для интеграции, так как у них, обычно, есть поддержка нескольких ассистентов одновременно. И это огромный такой плюс для тех, у кого члены семьи пользуются, например, и Android и iPhone.
Home Assistant интегрируется с Яндекс Алисой, Siri и Google Assistant
HomeBridge — только Siri и Яндекс Алиса
OpenHAB — Яндекс Алиса, Google Assistant и Siri
MajorDomo — Яндекс Алиса, Google Assistant и Siri
ioBroker — Яндекс Алиса, Siri и Google Assistant
Domoticz — Siri и Google Assistant
NodeRED — вообще с чем угодно, зависит от того, как вы его ставите и с чем он взаимодействует.
Так что выбор за вами. Удачи!
Install Home Assistant Operating System
Download the appropriate image
-
VirtualBox (Intel chip) (.vdi)
-
VMware Workstation (.vmdk)
-
Hyper-V (.vhdx)
After downloading, decompress the image. If the image comes in a ZIP file, for example, unzip it.
Follow this guide if you already are running a supported virtual machine hypervisor. If you are not familiar with virtual machines, install Home Assistant OS directly on a Home Assistant Yellow, 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:
- 2 GB RAM
- 32 GB Storage
- 2vCPU
All these can be extended if your usage calls for more resources.
Hypervisor specific configuration
VirtualBox
Unraid
KVM (virt-manager)
KVM (virt-install)
VMware Workstation
Hyper-V
- Create a new virtual machine.
- Select type Linux, subtype Oracle Linux and version Oracle Linux (ARM 64-bit).
- Under Hardware, select the amount of memory and number of CPUs. Then, select Enable EFI.
- Make sure EFI is enabled. If EFI is not enabled, HAOS won’t boot.
- Under Hard Disk, select Use an existing virtual hard disk file, select the unzipped VDI file from above.
- Then go to Network > Adapter 1. Choose Bridged Adapter and choose your network adapter (i.e.
en0:Wi-Fi
). - Then go to Audio and choose Intel HD Audio as audio controller.
By default, VirtualBox does not
free up unused disk space. To automatically shrink the vdi disk image the discard
option must
be enabled using your host machine’s terminal:
VBoxManage storageattach <VM name> --storagectl "SATA" --port 0 --device 0 --nonrotational on --discard on
More details can be found about the command can be found here.
- Download the .qcow2 image above and decompress it. (Extract all in Windows)
- Store the image in the isos share on your server.
- Make sure under Settings > VM manager, Enable VMs is enabled.
- Create a new virtual machine: VMS > Add VM.
- Select type Linux and give the VM a name and a description.
- Select the CPU cores you want to let the VM use and give it some memory.
- Under Primary vDisk Location, select Manual and then select the qcow2 image.
- Select your keyboard language under VM Console Keyboard.
- Select br0 under Network Source.
- Select virtio under Network model.
- Select any USB-devices that you want to pass through to Home Assistant, such as Zigbee- or Z-Wave controllers.
- Deselect Start VM after creation.
- Select Create.
- Select the name of your new VM and select the capacity number for your disk. Here, you can expand the disk to whatever your needs are. The default is 32 GB.
- Select the icon of your new VM and select start with console (VNC).
- 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.
- Under Network Selection, select your bridge.
- Under customization select Overview > Firmware > UEFI x86_64: …. Make sure to select a non-secureboot version of OVMF (does not contain the word
secure
,secboot
, etc.), e.g.,/usr/share/edk2/ovmf/OVMF_CODE.fd
. - Click Add Hardware (bottom left), and select Channel.
- Select device type: unix.
- Select name: org.qemu.guest_agent.0.
- Finally, select Begin Installation (upper left corner).
virt-install --name haos --description "Home Assistant OS" --os-variant=generic --ram=4096 --vcpus=2 --disk <PATH TO QCOW2 FILE>,bus=scsi --controller type=scsi,model=virtio-scsi --import --graphics none --boot uefi
If you have a USB
dongle to attach, you need to add the option --hostdev busID.deviceId
. You can
discover these IDs via the lsusb
command. As example, if lsusb
output is:
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 30c9:0052 Luxvisions Innotech Limited Integrated RGB Camera
Bus 003 Device 003: ID 1a86:55d4 QinHeng Electronics SONOFF Zigbee 3.0 USB Dongle Plus V2
Bus 003 Device 002: ID 06cb:00fc Synaptics, Inc.
Bus 003 Device 005: ID 8087:0033 Intel Corp.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
You can recognize the Sonoff dongle at Bus 003 Device 003
. So the command to install the VM will become:
virt-install --name haos --description "Home Assistant OS" --os-variant=generic --ram=4096 --vcpus=2 --disk <PATH TO QCOW2 FILE>,bus=scsi --controller type=scsi,model=virtio-scsi --import --graphics none --boot uefi --hostdev 003.003
Note that this configuration (bus 003, device 003) is just an example, your dongle could be on another bus and/or with another device ID.
Please check the correct IDs of your USB dongle with lsusb
.
- Start VMware Workstation and select Create a New Virtual Machine.
- Note: the exact name and location of the settings below depend on the VMware version. This procedure is based on version 17.
- Select I will install the operating system later, then select Linux > Other Linux 5.x kernel 64-bit.
- Give the VM a name,
home-assistant
, and define an easy to reach storage location, such asC:\home-assistant
. - Specify the disk size and select Store virtual disk as a single file.
- Select Customize Hardware.
- Define the amount of memory and the number of cores the VM is allowed to use.
- Remove the New CD/DVD entry. It will not be used.
- Connect an Ethernet cable and make sure it is connected to your network.
- Under Network adapter, select Bridged: Connected directly to the physical network.
- Make sure Replicate physical network connection state is not selected.
- Select Configure Adapters.
- Make sure all virtual adapters and Bluetooth devices are deselected.
- Select your host network adapter. Most likely, this is one of the first 2 checkboxes in the list:
- Select the one for Ethernet.
- The exact names of these adapters depend on your hardware.
- At the end of the wizard, select Finish.
Edit the VM settings
- In Windows Explorer, navigate to the storage location of your newly created VM, for example under
C:\home-assistant
. - Delete the
home-assistant.vmdk
file. - In the
Downloads
folder, find thehaos_ova_xx.x.vmdk
file.- If you haven’t unzipped the archive, unzip it.
- Within the folder, find the
.vmdk
file and rename it tohome-assistant.vmdk
. - Paste the file (not the unzipped folder) into the
C:\home-assistant
folder.
- Right-click the
.vmx
file and select Open with > Notepad. - Under
.encoding
, add a line. Enterfirmware = "efi"
. - Now continue with the next step to start your VM.
- If you see a message about side channel mitigations, select OK.
- If you see a message stating that the
.vmdk
file could not be found, in step 3, you likely pasted the folder, not the file. Repeat step 3.
⚠️ Hyper-V does not have USB support
- Create a new virtual machine.
- Select Generation 2.
- Select Connection > Your Virtual Switch that is bridged.
- Select Use an existing virtual hard disk and select the VHDX file from above.
After creation, go to Settings > Security and deselect Enable Secure Boot.
Start up your virtual machine
- Start the virtual machine.
- Observe the boot process of the 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 virtual machine’s IP address).
Help us improve Home Assistant
Have you just installed Home Assistant? The Home Assistant team is looking
to talk to you to understand how the installation went.
Help now
With the Home Assistant Operating System installed and accessible, you can continue with onboarding.
Install Home Assistant Core
Install WSL
To install Home Assistant CoreHome Assistant Core is the heart of Home Assistant itself. It is a Python program that powers every installation type, but can be installed standalone. [Learn more] on Windows, you will need to use the Windows Subsystem for Linux (WSL). Follow the WSL installation instructions and install Ubuntu from the Windows Store.
As an alternative, Home Assistant OS can be installed in a Linux guest VM. Running Home Assistant CoreHome Assistant Core is the heart of Home Assistant itself. It is a Python program that powers every installation type, but can be installed standalone. [Learn more] directly on Windows is not supported.
Caution
This is an advanced installation process, and some steps might differ on your system. Considering the nature of this installation type, we assume you can handle subtle differences between this document and the system configuration you are using. When in doubt, please consider one of the other installation methods, as they might be a better fit instead.
Prerequisites
This guide assumes that you already have an operating system setup and have installed Python 3.13 (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.
sudo apt-get update
sudo apt-get upgrade -y
Install the dependencies:
sudo apt-get install -y python3 python3-dev python3-venv python3-pip bluez libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff6 libturbojpeg0-dev tzdata ffmpeg liblapack3 liblapack-dev libatlas-base-dev
The above-listed dependencies might differ or missing, depending on your system or personal use of Home Assistant.
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.
sudo useradd -rm homeassistant
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.
sudo mkdir /srv/homeassistant
sudo chown homeassistant:homeassistant /srv/homeassistant
Next up is to create and change to a virtual environment for Home Assistant Core. This will be done as the homeassistant
account.
sudo -u homeassistant -H -s
cd /srv/homeassistant
python3 -m venv .
source bin/activate
Once you have activated the virtual environment (notice the prompt change to (homeassistant) homeassistant@raspberrypi:/srv/homeassistant $
) you will need to run the following command to install a required Python package.
python3 -m pip install wheel
Once you have installed the required Python package, it is now time to install Home Assistant Core!
pip3 install homeassistant==2025.5.1
Troubleshooting: If you do not see the above version of Home Assistant package in your environment, make sure you have the correct Python version installed, as defined under the Prerequisites.
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).
Note
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 a site cannot be reached error when accessing the web interface. This will only happen the first time. Subsequent restarts will be much faster.
Help us improve our documentation
Suggest an edit to this page, or provide/view feedback for this page.
Edit
Provide feedback
View given feedback
Home Assistant is an open-source home automation platform. It is known for its user-friendly interface, high level of customization, add-ons, customization, privacy, and more. In this guide, we’ll show you how you can get Home Assistant working on your Windows Server.
Setting up Hyper-V
Home Assistant is not native to Windows Server, and you will not be able to download an EXE application to get it working. Instead, if you want to deploy Home Assistant on your Windows Server, you must download a VM image.
The developers on the Home Assistant website provide an image for KVM, Hyper-V, VirtualBox, and VMware. In this guide, we’ll focus on Hyper-V, as it tends to have the best performance for Windows Server.
To get started, ensure you have Hyper-V enabled and set up on your Windows Server. If you do not have it set up, do the following. First, open up the Server Manager application. Once it is open, click on the “Add roles and features” option.
When you select “Add roles and features,” skip to “Server Selection.” Select your Windows server. After making your selection, move down to “Hyper-V,” and check the box next to it. Upon checking this box, Windows Server will guide you through setting up Hyper-V on your system.
How to download Home Assistant to your Windows Server
Now that you’ve got Hyper-V working on Windows Server, it is time to download the latest release of Home Assistant for Hyper-V. To download, head to the “Windows” section of the Home Assistant website. Once on the website, scroll down, and select the “Hyper-V” link. When you select this link, the Hyper-V vhdx file will download to your Windows Server.
Alternatively, if you wish to download a different version of the VM for VirtualBox, KVM, or Vmware Workstation, select one of the links. However, understand we will not be covering those virtualization solutions in this guide.
Setting up the Home Assistant VM in Hyper-V
To start, open up Hyper-V in Windows Server. Once it is open, select your server below “Hyper-V Manager.” After selecting it, right-click on your server, and highlight “New.” Once “New” is highlighted, select “New,” followed by “Virtual Machine.”
When you start up a new VM, you’ll see the “New Virtual Machine Wizard” appear. Read the “Before You Begin” section, then, click the “Next” button to move to the next page.
On the next page, you’ll need to name your VM. Enter “Home Assistant,” and click the “Next” button to continue. Following the name, you must choose a virtualization type. Choose generation 2, as you need UEFI support, and modern features to run Home Assistant correctly. You cannot change it once it is created. When done making your selection, click the “Finish” button to move to the next page.
Following the generation choice, you must decide how much startup memory to allocate. Enter your desired amount. Then, if you wish, select “Use Dynamic Memory.” Click the “Next” button when done to move on.
After setting up your memory, you must configure your networking. Connect the new VM to your virtual switch, so that it can interact with networks. Then, click the “Next” button to continue to the next page.
With networking configured, you must add a hard disk. Find “Use an existing virtual hard disk.” Then, browse for the Home Assistant disk downloaded previously. When you’ve loaded up the disk, click the “Next” button to continue.
Once you’ve added the hard disk, you’ll see a brief summary of what the VM will be. You can read it. Then, click the “Finish” button to deploy Home Assistant into Hyper-V.
Secure boot
The Hyper-V Home Assistant VM must be set to “Secure Boot,” or it will not work. To set your Hyper-V VM to secure boot, do the following. First, find your VM in Hyper-V. Then, right-click on it and select “Settings.”
Inside the “Security” area of “Settings,” ensure that “Enable Secure Boot” is checked. If it is not, click on it to select it. When it’s enabled, everything should be ready to go.
Configuring Home Assistant in Windows Server
To configure your new Home Assistant installation, do the following. First, find the “Home Assistant” VM in Hyper-V. When you’ve located it, right-click on it with the mouse. You can then power it on.
When Home Assistant is Powered On, open up a browser on the Windows Server desktop. Then, visit the following URL.
http://homeassistant.local:8123
After loading up the URL, you can onboard yourself into Home Assistant. For information on how to onboard yourself, check out the official documentation.