Home assistant virtualbox подключить wi fi

Обновлено: 07.07.2024

Установка операционной системы на сервер еще не делает его сервером умного дома. Для этого необходимо установить специальное программное обеспечение. В моем случае это был Home assistant.

Зайдя на сайт проекта, где я хотел найти документацию, по установке впал в ступор.

Сейчас на сайте проекта в разделе “Установка” перечислено два рекомендованных и три альтернативных способа установки.

Целых 5 разных способов установки, каждая со своими нюансами, достоинствами и недостатками. Давайте разберемся вкратце, что они из себя представляют и какой метод подойдет именно вам.

Рекомендованные методы:

  • Home assistant. Для использования этого метода установки вам нужна raspberry pi или виртуальная машина (Доступны образы формата VMDK, VHDX, VDI, QCOW2, OVA). Раньше этот метод назывался hassos, что означает home assistant operation system. Этот образ при установке на наш одноплатник заменит собой установленную ранее операционную систему. Это один из самых стабильных и простых способов установки, рекомендуемый абсолютно всем. Минус данного способа только один - вы теряете контроль над операционной системой, так как она закрыта и существенно урезана по сравнению с обычным linux. Зато нет ничего лишнего и все работает действительно стабильно. Если вы не планируете на вашем сервере запускать какие-либо другие приложения (мультимедия сервер, например), то этот способ вам отлично подходит.
  • Docker. Для использования этого способа вам необходимо иметь установленный Docker - программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации . Если вы уже используете Docker, можно рассматривать этот способ, если нет - идем дальше.

Альтернативные методы:

  • Venv (as another user). Установка программного обеспечения в виртуальную среду python, исполняется из под отдельно созданного пользователя. Рекомендуется для опытных пользователей linux.
  • Venv (as your user). Тоже самое, что и предыдущий способ, только не создается отдельный пользователь. Рекомендуется только для разработчиков.
  • Supervised. Способ для опытных пользователей linux и docker. Представляет собой установку Home Assistant в Docker вместе с компонентом Supervisor, который управляет всей операционной системой HA (на момент написания статьи этот способ находится в подвешенном состоянии, разработчики планировали отказаться от поддержки данного способа установки, но комьюнити подняла шум, и решение все еще функционирует).

Ключевое отличие для конечного пользователя всех этих методов заключается во владке Supervisor, которая позволяет устанавливать аддоны из встроенного маркета, делать снапшоты (бэкапы) системы и настроек, обновлять HA нажатием одной кнопки.

Для новых пользователей я рекомендую самый первый способ - готовый образ Home Assistant. Если бы у меня была возможность установить его на виртуальную машину, то использовал бы его. Но raspberry pi не поддерживает работу с виртуальными машинами. Поэтому я выбрал Supervised, несмотря на то, что я не был знаком с Docker и практически все пришлось изучать с нуля.

Сам я изначально остановился на установке venv, но через пару дней переустановил все на Home Assistant Supervisor. Почему это сделал? Во время настройки интеграции шлюза Xiaomi второй версии с HA возникла ошибка, также ошибка возникала после установки аддона File Editor (тогда он назывался еще Configurator) и я подумал, что я что-то сделал не так. Когда увидел видео, как легко установить File Editor из меню Hassio (так ранее называлась вкладка Supervisor) - решил попробовать эту версию HA, вдруг ошибка c интеграцией шлюза xiaomi устраняется так же легко. Если бы не мое заблуждение, возможно, до сих пор бы сидел на venv и был бы доволен. С интеграцией шлюза xiaomi проблем не было, все делал правильно, проблема была в самом шлюзе.

Есть много разных способов как можно установить Home Assistant.

Какой способ использовать — зависит от ситуации. В разных ситуациях разные способы предпочтительны.

Один из способов как можно установить Home Assistant — это использовать бесплатную программу VirtualBox. На компьютере появляется виртуальная машина в которой работает Home Assistant.

Большой плюс этого способа в том что нужно выполнить очень мало действий для того чтобы получить работающий Home Assistant. На мой взгляд, это самый простой и быстрый способ установки. Результат — вы получаете Home Assistant, который установлен официальным способом, в котором работает Supervisor. (специальный компонент, с помощью которого удобно управлять некоторыми частями Home Assistant. Не во всех способах установки он доступен.)

Установка Home Assistant в VirtualBox хорошо подходит в ситуациях:

  • Вы еще не работали с Home Assistant и хотите поэкспериментировать с ним без необходимости покупать отдельный компьютер специально для Home Assistant
  • У вас уже есть работающий сервер Home Assistant, но вы хотите поднять тестовый сервер на котором проводить всякие опыты.

Этот способ нельзя использовать для того чтобы поставить Home Assistant на Raspberry Pi.

Запуск в VirtualBox это, скорее, экспериментальный запуск, хотя могут быть и исключения. Можно держать основной сервер Home Assistant в VirtualBox, но обычно так не делают.

Установка Home Assistant в VirtualBox состоит из следующих частей:

  • установить на компьютер VirtualBox
  • скачать файл с образом Home Assistant
  • создать виртуальная машину
  • запустить виртуальную машину
  • выяснить ip адрес
  • зайти браузером в интерфейс Home Assistant

Установить на компьютер VirtualBox

Нужно зайти на страницу https://www.home-assistant.io/hassio/installation/ и скачать с этой страницы файл по ссылке "VMDK".


Размер файла — около 300 мегабайт.

У файла который скачался расширение ".vmdk.gz". Это архив. Нужно разархивировать этот файл.

Создать виртуальная машину

Запускаем VirtualBox, там нажимаем кнопку New.


  • Name — вводим "ha"
  • Type — меняем на "linux"
  • В качестве жесткого диска выбираем файл c расширением ".vmdk"
  • И нажимаем кнопку "Create"

После этого в VirtualBox появилась виртуальная машина с именем "ha" в статусе "Выключена".

Но перед тем как ее включить нужно выполнить еще несколько настроек.

Нужно зайти в настройки и поставить чекбокс "Enable EFI":


Если чекбокс "Enable EFI" не установить, то при попытке включить виртуальную машину будет ошибка: "FATAL: No bootable medium found! System halted.":


Вторая настройка которую нужно сделать — поменять настройки сети. По умолчанию установлен "NAT", нужно выбрать "Bridged Adapter":


С этой настройкой можно виртуальная машина станет частью вашей локальной сети.

Запустить виртуальную машину


Очень быстро система загрузится и на экране будет текст "homeassistant login:" (возможно понадобится несколько раз нажать на клавишу Enter на клавиатуре чтобы стал виден этот текст).

Все — Home Assistant работает. Но нужно выяснить адрес где он работает.

Выяснить ip адрес

Выяснить ip адрес виртуальной машины можно либо с помощью веб интерфейса роутера, либо выполнив несколько команд в консоли виртуальной машины.

На приглашение "homeassistant login:" нужно ввести слово "root" и нажать на клавишу Enter на клавиатуре. После этого вы сразу попадете в консоль Home Assistant.


В этой консоли нужно ввести слово "login":


И после этого ввести "nmcli" — в результате на экране будет виден ip адрес этой виртуальной машины:


В моем случае это адрес 192.168.31.170

Зайти браузером в интерфейс Home Assistant

После того как известен ip адрес можно браузером зайти в интерфейс Home Assistant.


Дальше нужно придумать имя и пароль и начинается самое интереснео — настройка Home Assistant.

В данном материале мы рассмотрим достаточно распространенный вопрос, связанный с подключением Wi-Fi интерфейса в виртуальной среде Vmware и Virtualbox. Нередко у начинающих сисадминов, да и тех, что поопытнее, возникают сложности именно на этом этапе реализации сетевого доступа к образу установленной системы.

Сегодня все чаще для виртуализации рабочей, системной среды используются USB-девайсы в виде WiFi-карт. Это обусловлено тем, что нормально использовать встроенный WiFi-модуль в виртуальной машине практически невозможно. В данном случае речь идет не только о программно-железячной совместимости, но и о некоторых специфических аспектах работы Linux/Unix – систем с виртуальными машинами. Что же касается USB-модулей Wi-Fi, то здесь все достаточно просто и понятно, если речь идет о работе в образе ОС Windows – чтобы получить возможность настраивать WiFi-соединения в виртуальной среде Vmware или Virtualbox, вставляем USB-интерфейс в хостовый ПК и подключаем его к рабочей виртуальной среде. Далее в гостевой операционной системе определяется данный WiFi-модуль, последующая работа с которым происходит, как на обыкновенном ПК (установка драйверов, отладка и так далее).

В виртуальной среде Vmware-Player нужно выполнить определенные действия, чтобы подключить такой интерфейс. Открываем в основном меню раздел «Player», где выбираем пункт «Removable Devices» в списке предложенных устройств выбираем требуемую карту Wi-Fi после чего нажимаем кнопку «Соединение».

Сложности при установке и отладке WiFi-интерфейса под образами Linux

В Linux для настройки и правильной работы WiFi потребуется соответствующий драйвер, которого может не оказаться в системе. Чтобы выяснить какую карту сети использует оборудование, можно при посредством команды «lslci –nn» узнать ID устройства. Если карточка имеет USB-стандарт подключения, вводим команду «lsusb». Посредством данных команд консоль выведет список системных устройств с указанием их идентификаторов. Вот пример строки из командного вывода lsusb:

Bus 001 Device 002: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN

После этого мы сможем наконец увидеть в конфигурации беспроводной wlan0-интерфейс.

Инсталляция требуемых драйверов для работы с WiFi-модулем

Для настройки WiFi-сети можно использовать режим графической настройки в рамках Network-Manager, а также консольный режим, либо Wicd. Рассмотрим вариант отладки Wi-Fi в консольном варианте.

Чтобы настроить беспроводной интерфейс, вам потребуется пакет wireless_tools, в котором присутствуют такие необходимые утилиты как iwlist, iwconfig и другие. Также для поддержки WPA/WPA2 потребуется wpasupplicant - пакет. Эти два пакета обязательны к установке.

Настройка WiFi-карты

В первую очередь потребуется подключение беспроводного интерфейса с использованием команды «ifconfig wlan0 up». После ее выполнения можно провести сканирование доступных беспроводных сетей, воспользовавшись командой «iwlist wlan0 scan» («iwlist») станет доступной к исполнению системной командой только после того, как вы установите пакет wireless_tools).

wlan0 Scan completed :

Cell 01 - Address: B8:A3:86:12:75:BA

ESSID: "Wi-Fi Net"

Protocol:IEEE 802.11bg

Mode:Master

Frequency:2.427 GHz (Channel 4)

Encryption key:on

Bit Rates:54 Mb/s

Extra:rsn_ie=30140100000fac020100000fac020100000fac020000

IE: IEEE 802.11i/WPA2 Version 1

Group Cipher : TKIP

Pairwise Ciphers (1) : TKIP

Authentication Suites (1) : PSK

Quality=93/100 Signal level=70/100

Cell 02 - Address: 1C:AF:F7:26:BD:C8

ESSID: 'k-60-net'

Protocol:IEEE 802.11bgn

Mode:Master

Frequency:2.427 GHz (Channel 4)

Encryption key:on

Bit Rates:150 Mb/s

Extra:wpa_ie=dd160050f20101000050f20401000050f20401000050f20 2

IE: WPA Version 1

Group Cipher : CCMP

Pairwise Ciphers (1) : CCMP

Authentication Suites (1) : PSK

Extra:rsn_ie=30140100000fac040100000fac040100000fac020000

IE: IEEE 802.11i/WPA2 Version 1

Group Cipher : CCMP

Pairwise Ciphers (1) : CCMP

Authentication Suites (1) : PSK

Quality=100/100 Signal level=91/100

Насколько мы вид им, системе удалось обнаружить две сети беспроводного типа. В командном выводе также можно увидеть протоколы, каналы (частоты), задействованные сетевые идентификаторы (ESSID), а также уровень сигнала, шифровальные методы и т.п.

В файле «/etc/network/interfaces» хранится ключ доступа к пользовательской WiFi-сети, а потому настройки сети следует производить именно в нем. Важно, чтобы доступ к этому файлу был ограничен. Ограничить это можно посредством команды «chmod 0600 /etc/network/interfaces», которая определяет права на запись и чтение файла только для владельца файла, то есть root.

Перед вами пример /etc/network/interfaces:

auto lo

iface lo inet loopback

auto wlan0

iface wlan0 inet dhcp

wpa-ssid "k-60-net"

wpa-psk "dsqTtfsvsNyfiCsNMaga"

В данном случае wpa-psk отвечает за пароль для доступа к сети. Фраза может задаваться в ASCII-формате, а также в виде шестнадцатеричного числа на 64 бита, генерируемого wpa_passphrase.

В свою очередь wpa-ssid определяет идентификатор для беспроводной сети.

Можно создавать настройку сети WiFi-сети для wpa_supplicant и в отдельном config-файле. Не забываем указать его в /etc/network/interfaces.

Приведем простой пример подобного файла:

auto lo

iface lo inet loopback

auto wlan0

iface wlan0 inet dhcp

wpa-conf /etc/network/wpa_supp.conf

Как только вы настроите конфигурационные файлы, нужно будет включить интерфейс посредством ifup wlan0. Чтобы проверить состояние беспроводных интерфейсов, используем wpa_cli status:

Selected interface 'wlan0'

bssid=1c:af:f7:26:bd:c8

ssid=k-60-net

pairwise_cipher=CCMP

group_cipher=CCMP

key_mgmt=WPA2-PSK

wpa_state=COMPLETED

ip_address=192.168.0.10

Варианты настройки подключений с применением WEP вместо WPA2 приводить не будем, поскольку WEP сам по себе морально устаревает. Помимо прочего сегодня его достаточно легко взломать.

Решение распространенных проблем, возникших при подключении WiFi устройства

Отсутствует интерфейс

В данном случае потребуется проверить устройство на наличие его подключения к системе. Также нужно посмотреть показывает ли она lspci (исключая телефоны) или lsusb. Возможно, потребуется обновление usb ids и pci ids.

Далее проверяем, содержатся ли в dmesg какие-либо данные о загруженных драйверах. После того, как вы убедитесь в том, что в dmesg проблема отсутствует, а значит дело не в виртуальной машине, возможно, понадобится опробовать последний compat-wireless (в отдельных случаях может потребоваться прошивка). Проверяем наличие Linux-Wireless drivers в драйверах беспроводного типа.

Интерфейс присутствует, но ничего невозможно сделать

Одной из возможных причин отсутствия доступа к Wi-Fi-модулю может быть отсутствие прошивки. Также не помешает проверить rfkill и прочие переключатели «железа». Можно покопаться в BIOS.

Т ак как на странице установки доступен официальны образ hassio для виртуальных машин, заметку удалось сильно сократить и теперь она содержит только инструкции по установке официального vdi образа.

В результате мы должны получить работающий Home Assistant, доступный по выделенному IP адресу в домашней сети или даже через интернет, если захочется.

  • Home Assistant (HA) - быстро развивающаяся система домашней автоматизации, написанная на языке Python, с огромным списком поддерживаемого оборудования и сервисов
  • Гостевая машина - виртуальная Linux машина с Home Assistant
  • Хост - физический компьютер с Microsoft Windows (или другой ОС), на которой установлен VirtualBox
  • Hass.io - набор docker контейнеров, позволяющий упростить установку и эксплуатацию HA, а также позволяющий расширить его функции с помощью большого количества готовых Hass.io аддонов, поддерживаемых коммьюнити.

Варианты установки Home Assistant:

  • Установка Home Assistant в виде python приложения в окружение virtualenv (для тех, кому по каким-то причинам не подходит docker)
  • Установка официального образа Home Assistant в контейнер на собственном docker-е (для тех, кто считает, что они сделают собственную копию Hass.io лучше, чем огромное комьюнити опытных разработчиков)
  • Установка Hass.io в виде образа SD карты для Raspberry Pi. Ранее этот образ был построен на базе ResinOS, которая недавно была заменена новой операционной системой HassOS, специально оптимизированной для запуска Hass.io (официально рекомендуется для установки на Raspberry Pi)
  • Установка Hass.io из готового образа виртуальной машины (ниже мы подробно опишем этот способ)

Новые скриншоты, добавленные в статью, сделаны с MacOS версии VirtualBox, так как Windows машины сейчас под рукой нет, но всё должно работать в обеих операционных системах.

Шаг 1: Устанавливаем VirtualBox и подключаем образ

Создаём виртуальную машину в VirtualBox, количество памяти указываем по вкусу, для улучшения проворности лучше указать 4 или 8 гигабайт, если есть возможность. В качестве типа ОС нужно указать Linux 64bit

В свойствах виртуальной машины в настройках жесткого диска указываем скачанный образ:

Шаг 2: Настраиваем виртуальную машину

Работа напрямую с гостевой машиной в окне VirtualBox неудобна как минимум по двум причинам:

  1. Невозможно открыть UI Home Assistant в браузере на хосте
  2. Неудобно работать в консоли гостевой машины с терминалом

Чтобы сделать её доступной в домашней сети, поменяем тип сетевого адаптера в гостевой машине с NAT на Bridged Adapter:

Также зайдём в раздел System и включим поддержку EFI (Enable EFI). Без этой настройки виртуальная машина не будет загружаться с нашего диска:

Шаг 3: Проверяем работу

Если хост-машина не очень быстрая, появление стартовой страницы может занять какое-то время.

Шаг 4: Использование командной строки Hass.io

Через консоль виртуальной машины можно также запустить утилиту командной строки hassio. Надо понимать, что это не полноценный доступ к операционной системе, а лишь набор утилит hassio, доступный из докер-контейнера.

Для входа откроем консоль виртуальной машины, если она была недавно запущена, подождём минуту для очистки совести, а потом нажмём Enter. Нас должна встретить радушная надпись:

Вводим root в качестве имени пользователя и оказываемся в оболочке командной строки hassio.

image-20200121101804014

Здесь можно, например, ввести команду help , чтобы получить список доступных опций или отредактировать файл конфигурации Home Asisstant введя следующую команду:

Читайте также: