Home Assistant перфекциониста. Часть 1: знакомство, железо, установка

30 октября 2020, 15:40

Знакомство

Добавляя очередное, только что приобретенное, устройство в HA, я понял, что так дальше продолжаться не может и архитектура моего проекта должна быть переписана с чистого листа. Мой зоопарк устройств насчитывает не так много жителей, всего около 30 различных лампочек, кнопочек, датчиков и прочих вещей, которых, раз вы читаете эту статью, и в вашем доме не меньше. Home Assistant дает огромные, если не безграничные, возможности для реализации управления своим умным домом, но в этом и кроется проблема, так как нет единых стандартов, даже нет примеров как "хорошо" и как "плохо", и вы вольны творить то, что вашей душе угодно, пока весь ваш проект превращается в одну большую свалку, где все автоматизации и компоненты живут своей жизнью, а не являются частью однородной системы. 

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


Железо

Рассматривать Raspberry как основой сервер умного дома стоит только в том случае, если вы пока не готовы тратить большую сумму на полноценное оборудование. Моя сборка основана на Raspberry Pi 4B, так как это один из самых мощных вариантов из доступного ценового сегмента.

1600x_image.png?1603932404
1600x_image.png?1603932404

Многие знают, а кто-то и сталкивался, с проблемой умирающих карт памяти, которые просто изнашивают весь свой заложенный цикл перезаписи за год, а иногда и меньше, поэтому было принято решение использовать чип eMMC с помощью переходника с Aliexpress. Кстати, сейчас вышли новые версии, я так понимаю, на основе ROCK PI 4, выглядят посимпатичнее.

Конечно же, не забудем про корпус, ибо внешний вид никто не отменял. На KickStarter представили еще один очень крутой корпус от Cooler Master, но пока он только едет и не известно, когда придет. Поэтому пока воспользуемся Argon Neo, один из самых красивых, как по мне, и подходящих под наши задачи корпус (потому как Argon One, например, больше предназначен как компьютерный корпус, а не серверный).

1600x_image.png?1603932404

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

1600x_image.png?1603937096
1600x_image.png?1603937096
1600x_image.png?1603937096

Установка

Первая проблема, с которой вы столкнетесь, если будете использовать eMMC память - ее поддержку добавили только с недавним обновлением bootloader'а, так что для начала необходимо будет обновить его. Есть несколько вариантов как это сделать, я выбрал самый простой и воспользовался утилитой Raspberry Pi Imager. Берем обычную карту памяти (которая работает в raspberry без танцев с бубном), подключаем к компьютеру, устанавливаем и открываем утилиту, там идем по пути "Choose OS -> Misc utility images -> Raspberry Pi 4 EEPROM boot recovery" и записываем образ на карту памяти. После этого вставляем в вашу малинку, подключаем питание, ждем пока зеленый светодиод не начнет мигать (около 10 секунд) - все, загрузчик обновлен, можно двигаться дальше.

Наконец подготовительные работы закончены и мы перейдем к пункту, который охватит большую часть читателей. Установка Home Assistant. Перепробовав разные способы за длительное время - от HassOS до голой установки HA Core, я сделал следующие выводы по каждому из способов.

  • Home Assistant OS - должен использоваться тем, кто впервые сталкивается с HA, так как иначе справиться с наплывом информации весьма проблематично. По сути, единственный минус, который вы получаете при таком варианте установки - у вас нет возможности пользоваться операционной системой как линуксом, от слова совсем, нельзя установить никакие дополнительные программы, пакеты, надстройки напрямую в ОС.
  • Home Assistant Container - лучший вариант, если вы хотите абсолютного контроля над каждым программным компонентом на вашем сервере. Вы всегда контролируете к каким данным, интерфейсам, портам имеет доступ любой из контейнеров. Но это так же и главный минус, так как вы очень сильно теряете в удобстве, у вас больше нет вкладки Hassio и вы один в поле, любой addon (к примеру, zigbee2mqtt, node-red, mosquitto и тд) вам придется устанавливать, настраивать и интегрировать это все в контейнер Home Assistant вручную. Лично мне этот вариант нравится идеей, но сам я не смог протянуть, слишком много времени необходимо уделять на то, что при обычном раскладе делается одной кнопкой.
  • Home Assistant Core - самый странный вариант из всех. Произведя установку данным способом, вы лишаетесь все того же пресловутого hassio со своим магазином (все те минусы, что были описаны выше), так еще и полностью засорите вашу основную систему (в отличии от варианта с докер контейнером, где система остается первозданно чистая).
  • Home Assistant Supervised - вариант, если мы хотим удобства базовой Home Assistant OS, но при этом нужен доступ к операционной системе. Магазин Hassio доступен только при установке этим и базовым способами. К минусам можно отнести то, что нужно соблюдать некоторые требования и быть весьма аккуратным при работе в основной операционной системе, так как supervised решение устанавливает все пакеты прямо внутрь вашей ОС.

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

Хорошо, с вариацией мы определились. Теперь приступим к самой установке. Для начала определимся с дистрибутивом. Мне лично больше нравится Ubuntu, по разным причинам, это дело каждого, и на Ubuntu есть возможность поставить HA Supervised. Но я столкнулся с большим количеством проблем уже после установки, в виде неработающего network manager и некоторыми незначительными, но вплоть до сегодняшнего дня я пользовался именно такой версией. Сегодня мы попробуем максимально приблизиться к официально поддерживаемой установке, хотя и осознанно будем нарушать правила. Информацию о том, как сделать установку официально поддерживаемой, можно найти тут. Если вы прочитаете требования, которые там предоставлены, то увидите пункт "Debian Linux Debian 10 aka Buster (no derivatives)", то есть Raspbian не является поддерживаемой ОС. Подумав, я принял решение все же ставить Raspbian, так как в ней заложено и настроено много софта для работы с Raspberry Pi (обновления загрузчика, настройки, управление внутренними регистрами, конфигами и тп), при этом Lite версия ничем не отличается от голой установки Debian 10.

1600x_image.png?1603938503

Установка Raspbian (новое название Raspberry Pi OS) очень проста. Воспользуемся все той же утилитой Raspberry Pi Imager, выбираем образ Raspberry Pi OS Lite, выбираем eMMC память и нажимаем кнопку записи. На выходе будем иметь разбиение на несколько разделов, заходим в самый маленький раздел (он единственный форматирован в fat32 и потому будет доступен и из под windows), и создаем пустой файл ssh (можете создать текстовый файл и переименовать без расширения .txt)

Вставляем карточку в малинку, подключаем по ethernet к роутеру/маршрутизатору (да, никакого wifi не будет, лично мне дополнительные задержки в связи устройств абсолютно не нужны). Смотрим, какой присвоился локальный ip адрес. Открываем консоль и пишем ssh pi@ip.ip.ip.ip, подтверждаем обмен ключами и далее вводим стандартный пароль raspberry. 

k01-1.jpg
1600x_image.png?1603941769

Далее создаем нового пользователя (в моем случае, flamingo) согласно инструкции по обеспечению безопасности. Удаляем базового пользователя pi и его домашнюю директорию, больше они нам не понадобятся. На этом этапе соединение ssh разорвется, подключитесь снова, используя новые данные.

Теперь открываем конфигуратор Raspberry, командой 

sudo raspi-config. Выбираем 4 пункт и в нем настраиваем часовой пояс согласно вашему. В 3 пункте можете выбрать страну, чтобы активировать WiFi модуль (отключен, пока не выберете доступные частоты). Далее очень важный 7 пункт, в нем выбираем первую опцию "A1 – expand file system", после чего подтверждаем, нажимаем Finish и соглашаемся на перезагрузку.

1600x_image.png?1603941769
1600x_image.png?1603941769

После того, как сервер включился, опять подключаемся по ssh и вводим команду для обновления всех пакетов 
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y. После чего необходимо еще раз перезагрузиться, можно использовать команду sudo reboot.

Теперь непосредственно установка Home Assistant Supervised.

Для начала подготавливаем систему. 

  1. Вводим команду sudo apt-get install -y software-properties-common apparmor-utils apt-transport-https avahi-daemon ca-certificates curl dbus jq network-manager для установки всех недостающих пакетов.
  2. Отключаем ModemManager, так как возможны конфликты, командой sudo systemctl disable ModemManager & sudo systemctl stop ModemManager.
  3. Устанавливаем Docker командой curl -fsSL get.docker.com | sudo sh, если у вас возникла ошибка во время установки - перезагружаем Raspberry и вводим команду еще раз, перезагрузкой все лечится :) 
  4. Добавляем текущего пользователя в группу docker (flamingo поменять на имя своего пользователя) командой sudo usermod -aG docker flamingo.
  5. Загружаем установщик HA в текущую директорию curl -Lo installer.sh https://raw.githubusercontent.com/home-assistant/supervised-installer/master/installer.sh.
  6. Запускаем установщик с необходимыми нам параметрами, указав директорию конфигурации по удобному нам пути (например, прям в /home/flamingo, либо /home/flamingo/hassio, я выбрал второй вариант, так как не хочу захламлять домашнюю директорию) командой sudo bash installer.sh -m raspberrypi4 -d /home/flamingo/hassio.

После этого начнется установка Home Assistant Supervised. Через пару минут будет доступен онлайн статус по адресу http://ip.ip.ip.ip:8123, можете следить за ходом выполнения. 


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


Все новости мира умных домов - t.me/SprutAI_News или Instagram
Остались вопросы? Мы в Telegram - @SprutAI

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. (Kuskiv54)
    (Kuskiv54) 10 месяцев назад

    Вообще круто расписываешь - продолжай 

  2. (densavage)
    (densavage) 10 месяцев назад

    Аффтат пиши исчо

  3. (igor.l)
    (igor.l) отредактировано 10 месяцев назад
    Жду продолжения, интересно видеть твою точку зрения идеальной конфигурации. Сам последние время задаюсь решением этой задачи, тем более приехал Synology DS720+ и буду туда переносить HA с чистого листа.
  4. (Antonio_b10)
    (Antonio_b10) 10 месяцев назад

    ну прям не для каждого

  5. (zlo82)
    (zlo82) 10 месяцев назад

    У меня HA в контейнере, и доступен магазин HASSIO. Что-то изменилось за год?

    • Александр Л.           (AlexOwl)
      Александр Л. (AlexOwl) 10 месяцев назад

      Скорее всего, у вас именно Supervised вариант установлен..? Потому как он управляет контейнерами под капотом, в том числе и контейнером HA. Про голую установку Home Assistant Container можете почитать тут. (На модерации, увы, повырезали много ссылок из статьи)

      • (zlo82)
        (zlo82) отредактировано 10 месяцев назад

        Видимо так и есть.

        Стоило похвастаться, и всё сломалось :) HA работает, на главной странице всё показывает (данные с датчиков и т.п.), а при выборе в боковом меню любого пункта, выдает ошибку (не найден какой-то файл .js). Сижу переустанавливаю. Нашел вот такой вариант: https://peyanski.com/home-assistant-supervised-and-container-how-to/ 

        Вот только на CentOS не встает, хочет AppArmor :(

        P.S. Сейчас посмотрел, тот же самый вариант что и у вас, а если из скрипта убрать проверку AppArmor?

        P.P.S. Убрал из скрипта все строки с AppArmor, установка прошла, HA запустился, буду проверять работу :)

        Спасибо!

  6. (Keri2)
    (Keri2) 10 месяцев назад

    Очень интересно, как раз для моего уровня. Что значить "полноценное оборудование"? Я думал что либо Малина, либо Sprut Hub...

    • Александр Л.           (AlexOwl)
      Александр Л. (AlexOwl) 10 месяцев назад

      В идеале взять что-то из линейки Intel NUC на процессоре i5 или лучше. Это уже полноценное оборудование)

      • (igor.l)
        (igor.l) отредактировано 10 месяцев назад
        Был такой (nuc 10 с i5), недавно продал, сильно избыточно данное оборудование для HA. Только если брать его ещё и для других целей. Идеальное решение на котором остановился я, это NAS Synology из линейки +. Там и управление контейнерами удобное и куча приколюх, допустим можно сделать что при падении или перезагрузке нужных контейнеров будет приходить уведомление на тел. Ну и главное в этом что это ещё и HAS с кучей функций.
        • (Keri2)
          (Keri2) 10 месяцев назад

          Интересно было бы почитать мнение опытных товарищей по поводу "достаточности" железа для HA. Кстати, Sprut Stick работает под какими системами? Он работает под Windows?

  7. (khmm12)
    (khmm12) 10 месяцев назад

    Как альтернативу eMMC, можно взять M2 SSD Case и любой, вызывающий доверие, SSD. Проживёт такая конфигурация дольше. 

    • Александр Л.           (AlexOwl)
      Александр Л. (AlexOwl) 10 месяцев назад

      Присмотритесь к новому корпусу от Argon. Починили проблему того, что невозможно сделать автозапуск малинки и добавили слот для m2 диска :)

      • (khmm12)
        (khmm12) 10 месяцев назад

        Была такая идея, но уже был как раз Argon Neo, и менять на Argon One не хотелось 🙂. Хотя в качестве монолитного решения Argon One очень хорош. 

        • Александр Л.           (AlexOwl)
          Александр Л. (AlexOwl) 10 месяцев назад

          Neo хорош тем, что он менее габаритный и позволяет поставить Zigbee стик (по gpio) скрытно, так чтобы вообще ничего не торчало. One выглядит чуть поинтереснее, а теперь еще добавили возможность установки m2 диска и ИК-порт, но с Zigbee придется что-то мастерить... Очень жду обновления Neo :)

  8. (klishchenkov)
    (klishchenkov) 10 месяцев назад

    Ждем продолжения!

  9. Alexander Mextner (invntrm)
    Alexander Mextner (invntrm) 10 месяцев назад
    > Информацию о том, как сделать установку официально поддерживаемой, можно найти тут

    Можно чуть раскрыть мысль? Там ничего не понятно, какой-то RFC просто
    У меня тоже Supervised версия. HA пишет что неподдерживаемая конфигурация

    • (zlo82)
      (zlo82) 10 месяцев назад

      У меня на CentOS так же пишет. Но ведь работает? :)

    • (FriendlyGuy)
      (FriendlyGuy) 9 месяцев назад

      "Официально поддерживаемая" - это установленный образ, когда никаких модификаций в Raspbian не предусматривается

  10. (atb2005@rambler.ru)
    (atb2005@rambler.ru) отредактировано 10 месяцев назад

    Как узнать, какая вериация установки НА?

  11. (klishchenkov)
    (klishchenkov) отредактировано 9 месяцев назад
    Комментарий удален
  12. (densavage)
    (densavage) отредактировано 10 месяцев назад
    Комментарий удален
  13. (klishchenkov)
    (klishchenkov) 9 месяцев назад

    Очень сильно ждем продолжения! Желательно про подключение zigbee стика!

    • Александр Л.           (AlexOwl)
      Александр Л. (AlexOwl) 9 месяцев назад

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

  14. (spear)
    (spear) отредактировано 9 месяцев назад

    Несколько дней назад перестал стартовать HA. Даже после установки на чистую систему запускается только до ребута. После ребута уже не работает.

    P.S. Нашел вот такое: https://community.home-assista...

    The new docker version will not start my ha. I searched now on the forum and found following solution:

    sudo apt remove docker-ce docker-ce-cli
    sudo apt autoremove --purge -y
    sudo reboot
    

    and install it again with an older version and stay with this:

    sudo apt install docker-ce-cli=5:19.03.14~3-0~raspbian-buster
    sudo apt install docker-ce=5:19.03.14~3-0~raspbian-buster
    sudo apt-mark hold docker-ce docker-ce-cli containerd.io
    sudo reboot

    Помогло.

  15. (densan)
    (densan) 8 месяцев назад

    Здравствуйте. 
    А почему все пытаются построить ядро умного дома на малинке или её аналогах? Почему не взять полноценный б/у неттоп, можно даже безвентиляторный и получить SATA2/3, 4-6 USB 2.0, езернет 100/1000 Мб/с, WiFi ... и все это в базовом наборе. Например https://www.avito.ru/saratov/n.... Потребляет 40 Вт/ч, но если поставить SSD, настроить динамическое понижение частоты CPU в ОС, то этот показатель можно снизить.
    Я 8 лет назад на таком организовал домашний сервер: роутер для проводной и беспроводной сети, файловый сервер, принт-сервер, DLNA для ТВ, сейчас на нем же настраиваю HA.

  16. (Sashik259)
    (Sashik259) 8 месяцев назад

    Когда продолжение темы?

К списку статей

Устройства в материале

Raspberry Pi 4

Производитель: Raspberry Pi
Заказать на:

Тематические чаты

Похожие статьи

17 декабря 2019, 17:49
Универсальный привод для автоматического удаленного открытия окон с простой интеграцией в умные дома.
04 сентября 2018, 12:14
Интеграция RGB ленты на ESP8266 с прошивкой tasmota в систему HomeBridge (HomeKit)
15 октября 2018, 09:05
Прошивка для Sonoff c нативным HomeKit
02 ноября 2018, 12:14
Кнопка звонка с уведомлениями в HomeKit
27 октября 2018, 12:20
Нативный Термостат для котла на ESP8266 с поддержкой Apple HomeKit
25 сентября 2020, 11:49
Сенсорный монитор для управления умным домом. Настройка и использование.
20 октября 2018, 22:57
Теоретические основы протокола MQTT и описание того, как он работает и для чего используется
24 августа 2018, 12:18
Пошаговая установка HomeAssistant
15 ноября 2018, 09:42
Способы автоматизации механических ворот
28 августа 2018, 09:48
От голого Raspbian до веб-интерфейса homebridge за четыре команды в терминале.