Home Assistant, статья 1 (установка)

24 августа 2018, 12:18

UPD 28.06.2019

На данный момент я ушел с этого пути и использую установку HA в Docker. Мой готовый образ для Raspberry PI3b/3b+ можно найти тут. Мой актуальный конфиг HA тут.

Сегодня начнем небольшой (а может быть и большой) курс статей по знакомству с Home Assistant. Это еще одна система управления умным домом, свежая, гибкая кроссплатформенная. Для простоты дальнейшего повествования буду называть его HA. Есть 4 пути заиметь сию систему на своем устройстве. Речь дальне пойдет про малинку, но забегая вперед, могу сказать, что установить его можно практически на любое устройство с Unix-like системой. Итак у нас есть 4 варианта из которых я на данный момент буду говорить об одном.

1. Развертывание готового образа Hass.io на флешку

2. Установка в виртуальное окружение питона

3. Установка в Docker

4. Развертывание Raspbian с установленным HA на флешку

Я для себя выбрал второй вариант как более простой, понятный, а так же дающий более подробные знания о том что мы делаем.

Для начала нам нужна малинка с установленной Raspbian. Подойдет любая, даже та которая сейчас используется. Статьи по её установке можно найти например тут и тут. Подключаемся к малинке по ssh и обновляем систему до актуального состояния:

sudo apt-get update
sudo apt-get upgrade -y

После того как процесс удачно завершится, необходимо установить дополнительные пакеты, необходимые для дальнейшей работы:

sudo apt-get install python3 python3-venv python3-pip

Далее добавляем нового пользователя для запуска и работы с HA, с его домашней директорией, где будут храниться конфиги:

sudo useradd -rm homeassistant -G dialout,gpio

Этой же командой мы добавили нового пользователя в группы dialout и gpio для управления интерфейсами самой малины. Далее создадим директорию для установки HA и назначим хозяина директории:

cd /srv
sudo mkdir homeassistant
sudo chown homeassistant:homeassistant homeassistant

После этого создадим виртуальную машину от нашего нового пользователя homeassistant:

sudo -u homeassistant -H -s
cd /srv/homeassistant
python3 -m venv .
source bin/activate
python3 -m pip install wheel

Первоначальные приготовления на этом закончены. можно ставить HA. Проделываем это следующей командой:

pip3 install homeassistant

После ввода команды ждем от 5 до 25 минут в зависимости от скорости вашей флешки, пока все это добро установится. Теперь запускаем наш HA первый раз для создания первоначальных каталогов и конфигов:

hass

Ждем еще минут 10 минимум, пока скачаются необходимые файлы, после этого останавливаем HA комбинацией ctrl c. Выходим из под шелла пользователя homeassistant командой exit. После необходимо создать сервис, который будет запускать HA при перезагрузки малинки. Создадим для этого файл сервиса:

sudo nano /etc/systemd/system/homeassistant@homeassistant.service

Вставляем в него следующий текст и сохраняем файл:

[Unit]
Description=Home Assistant
After=network-online.target

[Service]
Type=simple
User=%i
ExecStart=/srv/homeassistant/bin/hass -c "/home/homeassistant/.homeassistant"

[Install]
WantedBy=multi-user.target

Далее надо активировать наш сервис в системе и запустить его:

sudo systemctl --system daemon-reload
sudo systemctl enable homeassistant@homeassistant.service
sudo systemctl start homeassistant@homeassistant.service

Если вы все сделали правильно, через небольшой промежуток времени вы сможете увидеть свой свежеустановленный в браузере. Для этого необходимо перейти по ссылке http://ip.малинки:8123 и откроется что-то похожее на это:

Как видите это долго, но совсем не сложно! В дальнейшем для обновления HA необходимо подключиться к малине по ssh и выполнить следующие три команды:

sudo -u homeassistant -H -s
source /srv/homeassistant/bin/activate
pip3 install --upgrade homeassistant

На этом мы заканчиваем первоначальную установку и настройку и увидимся с вами в следующих статьях!


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

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

    Жду продолжения с возможностями системы ;)

  2. Алексей Новосельцев (novo)

    Обещаю, по твоим статьям поставлю HA на ноут, чтобы сравнить с Хобридж. Спасибо за труды!

  3. Александр Жабунин (OXOTH1K)

    Это только начало! В дальнейшем распишу все подробно.

  4. Алексей Новосельцев (novo)

    у меня почему-то на иФоне когда тапаешь на скриншот ХА не подгружается картинка, в затемнённом фоне «булькает» прогресс в виде окружности и ничего больше, нажатие на крестик не возвращает обратно к статье, помогает только перезагрузка страницы

  5. Gülahmet Müslim (axyskus)
    Gülahmet Müslim (axyskus) год назад

    попробую что за зверь такой НА и с чем его едят ))) спасибо за труд. 

  6. (Efremove)
    (Efremove) год назад

    Спасибо! очень ждём продолжения!

  7. Антон Фаюк (LowriderA)

    Спасибо. Жду продолжения. Сам сижуна hassio.

  8. Денис Игнат (iGnat78)

    H.A устанавливается на малину с установленным homebridge? или отдельную SD?

    • Gülahmet Müslim (axyskus)
      Gülahmet Müslim (axyskus) отредактировано год назад

      да. можно утанавливать уже на карту с хомбриджем.

    • Gülahmet Müslim (axyskus)
      Gülahmet Müslim (axyskus) год назад

      да. можно утанавливать с уже установленным на карту с хомбриджем.

  9. Денис Игнат (iGnat78)

    Processing triggers for libc-bin (2.24-11+deb9u3) ...

    pi@raspberrypi:~ $ sudo useradd -rm homeassistant -G dialout,gpio

    pi@raspberrypi:~ $ cd /srv

    pi@raspberrypi:/srv $ sudo mkdir homeassistant

    pi@raspberrypi:/srv $ sudo chown homeassistant:homeassistant homeassistant

    pi@raspberrypi:/srv $ cd /srv

    pi@raspberrypi:/srv $ sudo mkdir homeassistant

    mkdir: cannot create directory ‘homeassistant’: File exists

    pi@raspberrypi:/srv $ sudo chown homeassistant:homeassistant homeassistant

    pi@raspberrypi:/srv $ ^C

    pi@raspberrypi:/srv $ 

    дальше дело не пошло...

    • Александр Жабунин (OXOTH1K)

      А что не так то? Вы попытались создать директорию два раза, он второй раз ругнулся. Ничего страшного, двигайтесь дальше!

  10. Денис Игнат (iGnat78)

    (homeassistant) homeassistant@raspberrypi:/srv/homeassistant $ sudo nano /etc/systemd/system/homeassistant@homeassistant.service

    We trust you have received the usual lecture from the local System

    Administrator. It usually boils down to these three things:

        #1) Respect the privacy of others.

        #2) Think before you type.

        #3) With great power comes great responsibility.

    [sudo] password for homeassistant: 

    Sorry, try again.

    [sudo] password for homeassistant: 

  11. Денис Игнат (iGnat78)

    что дальше? пароль admin не походит

  12. Денис Игнат (iGnat78)

    Спасибо за статью! Удалось поставить даже новичку

  13. Алексей Новосельцев (novo)

    Ждем еще минут 10 минимум, пока скачаются необходимые файлы, после этого останавливаем HA комбинацией ctrl c. 

    А как определить что скачались все файлы, я через 15 минут нажал ctrl c 3 раза, иначе командная строка не выходила. В итоге непонятно я этот шаг правильно прошёл или поторопился нажав ctrl c.

    Деда...второй раз обламываюсь с написание комментария, нажимаю "отправить" и вылетаю на страницу с логином. Понимаю что через некоторое время бездействия ты выкидываешь (зачем не знаю), но пока статью прочитаешь, пока поэксперементируешь, напишешь комментарий (при этом не уходя со страницы и не перегружая её) то нажав "отправить" получаешь страницы где тебе нужно ввести пароль чтобы залогинится и понять что твой комментарий потерян. Либо время увеличить надо, либо при написании комментария должен сохраняться черновик на сервере автоматом.

    • Сергей Сафронов (deda)
      Сергей Сафронов (deda) отредактировано год назад

      Никого не выкидываю. Открывай в нативном браузере, не во внутреннем какого то приложения

      На сервере срок жизни авторизации год

  14. (gvasiliy)
    (gvasiliy) отредактировано год назад

    Установил, по мануалу в окружении питона, раздел HASS.IO в веб интерфейсе не появился. Он должен быть или его необходимо как то доустанавливать. Дважды переустанавливал с нуля .

  15. (konner)
    (konner) отредактировано 10 месяцев назад

    при установке homeassistant получается следущий лог:


    Building wheels for collected packages: cffi

    Running setup.py bdist_wheel for cffi ... error

    Complete output from command /srv/homeassistant/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-f_2dgv7l/cffi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmpm2ibr5ebpip-wheel- --python-tag cp35:

    Package libffi was not found in the pkg-config search path.

    Perhaps you should add the directory containing `libffi.pc'

    to the PKG_CONFIG_PATH environment variable

    No package 'libffi' found

    Package libffi was not found in the pkg-config search path.

    Perhaps you should add the directory containing `libffi.pc'

    to the PKG_CONFIG_PATH environment variable

    No package 'libffi' found

    Package libffi was not found in the pkg-config search path.

    Perhaps you should add the directory containing `libffi.pc'

    to the PKG_CONFIG_PATH environment variable

    No package 'libffi' found

    Package libffi was not found in the pkg-config search path.

    Perhaps you should add the directory containing `libffi.pc'

    to the PKG_CONFIG_PATH environment variable

    No package 'libffi' found

    Package libffi was not found in the pkg-config search path.

    Perhaps you should add the directory containing `libffi.pc'

    to the PKG_CONFIG_PATH environment variable

    No package 'libffi' found

    running bdist_wheel

    running build

    running build_py

    creating build

    creating build/lib.linux-armv7l-3.5

    creating build/lib.linux-armv7l-3.5/cffi

    copying cffi/setuptools_ext.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/pkgconfig.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/cparser.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/__init__.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/vengine_gen.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/recompiler.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/verifier.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/api.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/ffiplatform.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/cffi_opcode.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/backend_ctypes.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/commontypes.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/model.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/error.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/vengine_cpy.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/lock.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/_cffi_include.h -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/parse_c_type.h -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/_embedding.h -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/_cffi_errors.h -> build/lib.linux-armv7l-3.5/cffi

    running build_ext

    building '_cffi_backend' extension

    creating build/temp.linux-armv7l-3.5

    creating build/temp.linux-armv7l-3.5/c

    arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fdebug-prefix-map=/build/python3.5-6waWnr/python3.5-3.5.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DUSE__THREAD -DHAVE_SYNC_SYNCHRONIZE -I/usr/include/ffi -I/usr/include/libffi -I/srv/homeassistant/include -I/usr/include/python3.5m -c c/_cffi_backend.c -o build/temp.linux-armv7l-3.5/c/_cffi_backend.o

    c/_cffi_backend.c:15:17: fatal error: ffi.h: Нет такого файла или каталога

    #include

    ^

    compilation terminated.

    error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1

    ----------------------------------------

    Failed building wheel for cffi

    Running setup.py clean for cffi

    Failed to build cffi

    Installing collected packages: asn1crypto, six, cffi, cryptography, pip, certifi, urllib3, requests, bcrypt, homeassistant

    Running setup.py install for cffi ... error

    Complete output from command /srv/homeassistant/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-f_2dgv7l/cffi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-1uox2556-record/install-record.txt --single-version-externally-managed --compile --install-headers /srv/homeassistant/include/site/python3.5/cffi:

    Package libffi was not found in the pkg-config search path.

    Perhaps you should add the directory containing `libffi.pc'

    to the PKG_CONFIG_PATH environment variable

    No package 'libffi' found

    Package libffi was not found in the pkg-config search path.

    Perhaps you should add the directory containing `libffi.pc'

    to the PKG_CONFIG_PATH environment variable

    No package 'libffi' found

    Package libffi was not found in the pkg-config search path.

    Perhaps you should add the directory containing `libffi.pc'

    to the PKG_CONFIG_PATH environment variable

    No package 'libffi' found

    Package libffi was not found in the pkg-config search path.

    Perhaps you should add the directory containing `libffi.pc'

    to the PKG_CONFIG_PATH environment variable

    No package 'libffi' found

    Package libffi was not found in the pkg-config search path.

    Perhaps you should add the directory containing `libffi.pc'

    to the PKG_CONFIG_PATH environment variable

    No package 'libffi' found

    running install

    running build

    running build_py

    creating build

    creating build/lib.linux-armv7l-3.5

    creating build/lib.linux-armv7l-3.5/cffi

    copying cffi/setuptools_ext.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/pkgconfig.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/cparser.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/__init__.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/vengine_gen.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/recompiler.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/verifier.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/api.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/ffiplatform.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/cffi_opcode.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/backend_ctypes.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/commontypes.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/model.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/error.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/vengine_cpy.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/lock.py -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/_cffi_include.h -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/parse_c_type.h -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/_embedding.h -> build/lib.linux-armv7l-3.5/cffi

    copying cffi/_cffi_errors.h -> build/lib.linux-armv7l-3.5/cffi

    running build_ext

    building '_cffi_backend' extension

    creating build/temp.linux-armv7l-3.5

    creating build/temp.linux-armv7l-3.5/c

    arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fdebug-prefix-map=/build/python3.5-6waWnr/python3.5-3.5.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DUSE__THREAD -DHAVE_SYNC_SYNCHRONIZE -I/usr/include/ffi -I/usr/include/libffi -I/srv/homeassistant/include -I/usr/include/python3.5m -c c/_cffi_backend.c -o build/temp.linux-armv7l-3.5/c/_cffi_backend.o

    c/_cffi_backend.c:15:17: fatal error: ffi.h: Нет такого файла или каталога

    #include

    ^

    compilation terminated.

    error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1

    ----------------------------------------

    Command "/srv/homeassistant/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-f_2dgv7l/cffi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-1uox2556-record/install-record.txt --single-version-externally-managed --compile --install-headers /srv/homeassistant/include/site/python3.5/cffi" failed with error code 1 in /tmp/pip-build-f_2dgv7l/cffi/

  16. (ArtemUkolov)
    (ArtemUkolov) 7 месяцев назад

    Не понимаю почему но все сделал несколько раз по инструкции но во время установки  Homeassistant (pip3 install homeassistant) выдает много ошибок и выделяет красным. А потом не запускается команда Hass пишет что такой нет.

    далее файл сервиса создать удалось и занести туда несколько строчек кода.

    но после проделанных всех операций в браузе не заходит на страницу HA: http://10.0.1.19:8123

    подскажите плиз что не так? 

    1000x_image.png?1556450140
  17. (jonimant)
    (jonimant) 7 месяцев назад

    Если при установке выводит ошибку "Failed building wheel for cffi" и "Failed cleaning build dir for cryptography" , то поможет установка: sudo apt-get install libssl-dev libffi-dev python-dev

    • (Locy)
      (Locy) 6 месяцев назад

      Золотой человек! Для знающего может это и элементарно, а для новичка, эта строка - целое решение и куча сэкономленных нервов и времени!

  18. Артем Симоненко (TopGun)
    Артем Симоненко (TopGun) 6 месяцев назад

    Народ скажите как полностью снести HA? какой командой? 

  19. (Locy)
    (Locy) 6 месяцев назад

    Почему все пытаются его запихнуть в виртуалку, да еще и под новым пользователем? У малины и так ресурсов с гулькин нос, в тут еще виртуалкой его убивать. Да и отдельный пользователь добавляет лишних шагов и сложности управления. Или в этом есть какой-то сакральный смысл, который я еще не понимаю?! )

  20. Владимир Карпенко (Reliable_bob)

    Приветствую!

    После обновления на 0.94 появилась такая ошибка:

    1000x_image.jpg?1560161246

    Как правильно обновить Python, что бы ничего не поломать?

  21. Карен  Закарян (Karen)
    Карен Закарян (Karen) отредактировано месяц назад

    полное удаление! Для нулевой установкиsudo pip3 uninstall homeassistant

    sudo pip3 uninstall homeassistant
    sudo userdel -f homeassistant
    sudo rm -r /home/homeassistant/
    sudo rm -r /srv/homeassistant/


    Попытка установки Python-3.7.3 ( Это может занять долгое время )

    sudo apt-get install build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev
    wget -O /tmp/Python-3.7.3.tar.xz <a href="https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz" class="redactor-autoparser-object">https://www.python.org/ftp/pyt...</a>
    cd /tmp
    tar xf Python-3.7.3.tar.xz
    cd Python-3.7.3
    ./configure
    sudo make altinstall
    sudo apt -y autoremove
    cd
    sudo rm -r /tmp/Python-3.7.3
    rm /tmp/Python-3.7.3.tar.xz
    
  22. Карен  Закарян (Karen)
    Карен Закарян (Karen) месяц назад

    Измените статью что установилась сразу Python-3.7.3

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

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

15 ноября 2018, 09:42
Способы автоматизации механических ворот
15 июня 2018, 12:13
Охранная система в гараж на ESP8266 с интеграцией в Apple HomeKit
27 августа 2018, 10:14
Интегрируем ХА в HomeKit
20 октября 2018, 22:57
Теоретические основы протокола MQTT и описание того, как он работает и для чего используется
03 октября 2018, 22:03
Как собрать и настроить Hyperion Ambilight - адаптивную подсветку ТВ.
01 ноября 2018, 09:27
Настройка Deconz USB стика ConBee от Dresden Elektronik в Hass.io и некоторые особенности эксплуатации
24 августа 2018, 10:15
Краткий экскурс в настройку Home Assistant
11 мая 2019, 19:57
Как активировать русский язык в Google Assistant для Google Home
03 февраля 2019, 16:57
Устанавливаем Hass Configurator на Home Assistant и редактируем конфиги прямо в браузере.
14 сентября 2018, 19:34
Изучаем автоматизации в Home Assistant