Home assistant не запускается на windows

Обновлено: 19.05.2024

Данный мануал составлен мной после нескольких недель штудирования форумов, для тех, кто захочет пройти моим путем. Критика приветствуется.

Выбор стека

Про Home Assistant (далее для краткости - HA) сказано было многое, и, на мой взгляд, это самая удачная система умного дома. По теме выбора можно почитать тут:

Почему HDD? Много раз на форумах писали, что малинка с Home Assistant на борту кушает SD карты по одной за год. Кроме того, HA еще и логи пишет не понятно до каких пределов. Так что никаких SD.

Оборудование в наличии

Переходник SATA - USB (при необходимости)

Ноут (комп) c возможностью записи SD карт. (У меня ноут под Windows 10)

Роутер для выхода в сеть

Официальный сайт предлагает нам несколько способов установки 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 и все заработает.

Шаг 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.

Траблшутинг: Лично у меня была проблема - не запускалась малинка после очередного обновления ядра 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.

Прикрепленное изображение

Краткое описание:
Система домашней автоматизации Home Assistant.
Описание:
Home Assistant-это open-source платформа для автоматизации, работающая на Python 3. Позволяет отслеживать и контролировать все устройства в доме и автоматизировать действия. Идеально может работать на одноплатном компьютере Raspberry PI. Так же может работать на платформах Windows, Linux. Интерфейс построен через браузер работа возможно на любом устройстве Android, iOS.

Личный опыт:
Свою домашнюю систему я строю на данной платформе. Уже больше полугода система находится в штатном режиме и все функционирует.

Прикрепленное изображение

Прикрепленное изображение

Причина редактирования: Переменные в скриптах и автоматизациях Приветствую! Тоже начал потихоньку строить умный дом на Orange Pi Zero + Armbian + Home Assistant. Пока добавил просто сенсоры погоды, transmission, cups и две wifi розетки от xiaomi.
Не получается настроить присутствие устройств (членов семьи). Использую компонент device_tracker: Keenetic NDMS2 Routers (У меня Zyxel keenetic lite с прошивкой NDMS 2). Ошибка при загрузке в логе (home-assistant.log):

Denn1982, Приложи файл конфигурации посмотрю что делаешь ни так. У тебя тут жалуется еще на плагин yahoo_finance. В своем случае я настроил с помощью SNMP модуля. HA SNMP

Да не знаю, что тут можно делать не так.
Все как в мануале:

device_tracker:
- platform: keenetic_ndms2
host: !secret router_ip
username: !secret router_username
password: !secret router_password

хост в секретах: 192.168.1.1

Еще тут одна проблема нарисовалась, после некоторого времени невозможно подключиться по ssh к апельсинке, причем HASS работает, но например некоторые выключатели не работают.

device_tracker:
- platform: keenetic_ndms2
host: !secret router_ip
username: !secret router_username
password: !secret router_password
interval_seconds: 10
consider_home: 180
track_new_devices: yes

Так же смотри после запуска в папке появится known_devices.yaml в нем тоже нужно настроить устройства которые будешь отслеживать. Вот мой пример одного из устройств.
bhughes_nexus6:
name: Phone
mac: AC:CF:85:D4:2B:93
icon: mdi:ninja
track: yes
hide_if_away: no В том то и дело, что файл не появляется автоматически, я его пробовал в ручную создавать, но тоже не прокатило. Еще интересно, что когда вставляю эти строчки в configuration.yaml, судя по логу еще и розетки не может найти, хотя в HASS они работают.

А если удалить секцию device_tracker то лог чистый.
UPD: Не, наврал - с розетками все время такая фигня.

Первая сложность с которой сталкиваются люди при работе с Home Assistant — как его поставить. Есть очень много способов установки системы.

С точки зрения использования системы все способы установки можно разбить на две группы:

  • Где есть супервизор (supervisor)
  • Где нет супервизора

Супервизор — это необязательная часть системы. Можно использовать Home Assistant и без супервизора.

Если есть супервизор, то в Home Assistant появляются дополнительные возможности:

  • Можно "в один клик" устанавливать разные дополнения
  • Появляется простая возможность делать бекапы системы
  • Супервизор проверяет что система работает корректно, например уведомляет если заканчивается место
  • Появляются дополнительные сервисы hassio.*

Вот статистика разных типов установок с этого сайта (скриншот сохранен 17 мая 2021 года):


Home Assistant OS — установка на хост

Это официально рекомендованный способ установки. Установка очень быстрая и простая. Устанавливается Home Assistant вместе с супервизором.

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

Нужно скачать специальный файл. Этот файл — это образ в котором находится не только Home Assistant, но еще и операционная система.

Вот несколько популярных образов:

Полный список всех образов находится на GitHub.

Этот образ нужно залить на sd карту (в случае Raspberry Pi) или на жесткий диск (в случае Nuc).

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

У этого способа установки есть особенность — вы получаете "черный ящик" Home Assistant полностью работает, но доступ к операционной системе на которой он работает очень ограничен.

Home Assistant OS — установка в виртуальную машину

Официальный способ установки. Устанавливается Home Assistant вместе с супервизором.

С помощью этого способа можно получить работющий Home Assistant на компьютере с Windows, macOs или Linux. На компьютере появляется вирутальная машина в которой работает Home Assistant.

Нужно сказчать файл с образом с GitHub.

А дальше из этого образа нужно создать виртуальную машину. Это можно сделать, например с помощью VirtualBox.

Home Assistant Supervised

Это официальный способ установки. Но разработчики Home Assistant не особо любят его рекомендовать. Устанавливается Home Assistant вместе с супервизором.

Это возможность установить Home Assistant на компьютер с Linux. Этот способ подходит людям кто знает и умеет использовать Linux консоль. При таком способе установки остается полный доступ к операционной системе, но так же появляется Home Assistant с супервизором.

Опасность этого способа установки — нужно очень точно следовать всем рекомендациям. Если что-то сделать не совсем так, то Home Assistant переходит в режим "You are running an unsupported installation." или даже в "Your installation is running in an unhealthy state", а в этом режиме Home Assistant работает исключительно плохо.

Главное требование — операционная система Linux обязательно должна быть Debian 10 aka Buster. Другие версии Linux официально не поддерживаются. Поддержка отсутствет даже для тех Linux дистрибутивов которые сильно похожи на Debian (например, Rasbperry OS, Ubuntu).

Прямо сейчас этот способ установки работает и на других операционных системах (Rasbperry OS, Ubuntu), но использование этих операционных систем выдает предупреждение "You are running an unsupported installation." и, возможно, что в будущем это будет выдавать не только предупреждение, но и вызывать какие-то проблемы с работой. Так что скорее всего, если ставить Home Assistant этим способом, то стоит соблюдать все требования, или использовать другой способ установки.

Home Assistant Container

Это официальный способ запуска Home Assistant. При использовании этого способа супервизора нет.

Для этого способа нужно чтобы на машине был установлен докер. Этот способ можно использовать на любой операционной системе (Windows, macOS, Linux).

Это просто запуск докер контейнера из официального докерного образа Home Assistant. Можно запускать контейнер как напрямую через docker, можно через docker-compose, а можно использовать какие-то другие способы.

Самый простой способ для запуска HA этим способом — это одна команда:

Home Assistant Core

HassWP

Это неофицильный способ установки. Супервизора тут нет. Это возможность запустить Home Assistant на Windows машине очень быстро и просто, и сразу с некоторым наборо предустановленных дополенний.


Конечно можно! Проблема заключается в том, что не все зависимости Home Assistant легко установятся на любую сборку Windows. Об этом можно почитать тут.

На портале уже была статья о подобной установке. В своей версии я чуть подробнее опишу детали.

Установка Home Assistant

Идём на сайт python и скачиваем последнюю на момент написания статьи версию . Можно скачать как обычную, так и 64-битную версию.

На первом экране выбираем Customize installation.

1600x_image.jpg?1580499490

На втором нам вполне хватит только pip. Остальные выключаем.

1600x_image.jpg?1580499491

На третьем - Add to environmen, так будет проще всё запускать.

И последние галочки про precompile и debug. Возможно они помогут при установке хитрых зависимостей Home Assistant, но это не точно :)

Я люблю устанавливать Python в корень диска. Так проще его найти и можно избежать проблем с кривыми путями.

1600x_image.jpg?1580499491

В процессе установки Python я встречал следующие проблемы:

  • установка не стартовала на "голой" Windows 7 без важных обновлений - нужно обновить систему стандартным способом
  • установка не завершалась с недоступным сайтом python (из-за РКН) - нужно отключить опции download debug.

Далее нажимаем на клавиатуре win R и запускаем cmd

В запустившейся консоли вводим :

Вот у вас и установлен последний Home Assistant.

На этом этапе у вас не должно возникнуть особых проблем. Python и HA должны установиться в практически любую систему.

Первый запуск Home Assistant

В той же консоли, что и ранее, просто вводим - hass.

Начнётся первый запуск HA. Он может быть достаточно долгим. HA будет скачивать и устанавливать разные библиотеки python, которые требуются конфигурации по умолчанию. А их не мало.

Плюс, если в процессе установки в вашей локальной сети обнаружатся поддерживаемые устройства - начнётся установка и их библиотек. В логе это отображается примерно так:

Вот на этом этапе вполне возможны проблемы и разные ошибки в консоли.

Терпеливо ждите пока HA делает свои дела. В идеале в конце лога вы должны увидеть строчку:

Далее попытайтесь открыть в любом браузере страницу:

Вполне возможно у вас ничего не откроется. Это нормально.

Нажимайте в консоли Ctrl C, это принудительно остановит HA. Если не получится - закрывайте консоль и запускайте её заново.

И снова вводите в консоли - hass . И снова ждём строчку Starting Home Assistant и пробуем открыть в браузере:

Если со второй попытки страница так и не открылась - останавливае м HA и открываем папку с конфигами. Путь до неё показывается сразу после ввода команды hass. Это должно быть что-то вроде:

Только с именем вашего пользователя. Проще вбить этот адрес сразу в проводнике Windows.

Теперь правим файл configuration.yaml.

Заменяем всё его содержимое на 3 простые строки:

Это минимальный набор модулей, необходимый для старта HA и отображения главной страницы. Сильно сократит перечень зависимостей и повысит шансы старта.

Снова запускае м hass и пробуе м открыть страницу.

Это не все проблемы с которыми можно столкнуться. Но, надеюсь, вам хватит советов, описанных в статье.

Если у Брандмауэра будут вопросы к Python - нужно разрешить доступ. Иначе к Home Assistant нельзя будет подключиться с других компьютер в вашей локальной сети.

Итак, сервер установлен, можно начинать подключать к нему всё, что под руку подвернётся. Но прежде не помешает облегчить себе дальнейшую работу, установив магазин компонентов HACS, удобный редактор конфигураций и немножко допилив интерфейсы.

UPD: немного изменил концепцию разделения конфигурации для удобства работы со встроенными редакторами.

Доработка интерфейса

В первую очередь включим расширенное меню управления сервером. Без расширенного управления меню Настройки - Сервер выглядит так:

Идём в настройки профиля и включаем Расширенный режим:

После этого управление сервером выглядит так:

Кроме этого, добавляется меню Кастомизация, в котором можно будет удобно менять параметры подключенных элементов:

Конфигуратор

Теперь подключим удобный редактор конфигураций.

Переключаемся на пользователя homeassistant:

Переходим в папку установки сервера и активируем виртуальное окружение:

После установки конфигуратора - делаем первый запуск:

И проверяем через браузер, что конфигуратор запустился и работает, заходим на адрес сервера по порту 3218, например:

Видим пустую панель конфигуратора:

Значит всё нормально, останавливаем в консоли службу (Ctrl+C) и добавляем службу в автозапуск.

В первую очередь выходим из виртуального окружения:

Создаём файл для запуска службы:

И вставляем текст:

[Service]
Type=simple
User=homeassistant
WorkingDirectory=/home/homeassistant/.homeassistant
ExecStart=/srv/homeassistant/bin/hass-configurator
Restart=always

Сохраняем (Ctrl+O) и выходим из редактора (Ctrl+X). Обновляем список служб, активируем и запускаем новую службу:

sudo systemctl --system daemon-reload
sudo systemctl enable hass-configurator.service
sudo systemctl start hass-configurator.service

Проверяем, что служба успешно запустилась:

Если видим, что статус active, значит служба успешно создана и запущена:

Теперь для полноценной работы нужно добавить конфигуратор в боковую панель HomeAssistant. Открываем конфигуратор в браузере:

В автозапуске мы уже указали нашу рабочую папку HomeAssistant, поэтому конфигуратор сразу же попадает в неё. Нажимаем на значок папки и выбираем файл configuration.yaml. Там уже присутствуют какие-то базовые настройки, нам же нужно добавить секцию panel_iframe, в которой мы будем перечислять все дополнительные компоненты для боковой панели. Добавим туда конфигуратор и, сразу же, справочник иконок, которыми мы будем пользоваться при добавлении разных датчиков и сенсоров. Внимательно следим за отступами! Язык размети yaml очень чувствителен к уровням вложения параметров (как и язык python). Если где-то отступы будут не на том месте, конфигуратор сообщит об этом красным значком с восклицательным знаком в правом верхнем углу.

Сохраняем изменения кнопкой с дискетой или нажатием Ctrl+S, переходим на страницу HomeAssistant, идём в Настройки - Сервер и проверяем конфигурацию. Если ошибок нет - перезапускаем сервер. После перезагрузки на боковой панели добавились две новые кнопки - Иконки и Конфигуратор.

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