Статья

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

ОГЛАВЛЕНИЕ:Cтатья 1 (установка)
Cтатья 2 (базовая настройка)
Cтатья 3 (добавляем устройства)
Cтатья 4 (интеграция с HomeKit)
Статья 5 (автоматизации)
Статья 6 (GUI)Статья 7 (Z-Wave)Статья 8 (MQTT)Статья 9 (HTTPS, SSL)

UPD 28.06.2019

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

Сегодня начнем небольшой (а может быть и большой) курс статей по знакомству с Home Assistant. Это еще одна система управления умным домом, свежая, гибкая кроссплатформенная. Для простоты дальнейшего повествования буду называть его HA. Есть 4 пути заиметь сию систему на своем устройстве. Речь дальне пойдет про малинку, но забегая вперед, могу сказать, что установить его можно практически на любое устройство с Unix-like системой. Итак у нас есть 4 варианта из которых я на данный момент буду говорить об одном.1. Развертывание готового образа Hass.io на флешку2. Установка в виртуальное окружение питона3. Установка в Docker4. Развертывание Raspbian с установленным HA на флешкуЯ для себя выбрал второй вариант как более простой, понятный, а так же дающий более подробные знания о том что мы делаем.Для начала нам нужна малинка с установленной Raspbian. Подойдет любая, даже та которая сейчас используется. Статьи по её установке можно найти например тут и тут. Подключаемся к малинке по ssh и обновляем систему до актуального состояния:

bash
Копировать
sudo apt-get update
sudo apt-get upgrade -y

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

bash
Копировать
sudo apt-get install python3 python3-venv python3-pip

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

bash
Копировать
sudo useradd -rm homeassistant -G dialout,gpio

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

bash
Копировать
cd /srv
sudo mkdir homeassistant
sudo chown homeassistant:homeassistant homeassistant

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

bash
Копировать
sudo -u homeassistant -H -s
cd /srv/homeassistant
python3 -m venv .
source bin/activate
python3 -m pip install wheel

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

bash
Копировать
pip3 install homeassistant

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

bash
Копировать
hass

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

bash
Копировать
sudo nano /etc/systemd/system/homeassistant@homeassistant.service

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

yaml
Копировать
[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

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

bash
Копировать
sudo systemctl --system daemon-reload
sudo systemctl enable homeassistant@homeassistant.service
sudo systemctl start homeassistant@homeassistant.service

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

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

bash
Копировать
sudo -u homeassistant -H -s
source /srv/homeassistant/bin/activate
pip3 install --upgrade homeassistant

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


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

Обязательно будет!

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

Интересно было бы узнать, чем они отличаются.

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

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

Буду разбираться

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

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

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

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

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

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

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 $ 


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

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

(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: 


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

Пароль на судо должен быть такой же как и на подключение к ssh. По умолчанию он raspberry 

Странно, но у меня не подходит пароль от SHH. Что я делаю не так?

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

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

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

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

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

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

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

с этой установкой его быть не должно

А как поставить?

при установке 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/



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

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

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

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

1000x_image.png?1556450140

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

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

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

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

поддержу вопрос

зачем весь этот огород?



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

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

1000x_image.jpg?1560161246

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

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


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

https://sprut.ai/client/article/155#">https://sprut.ai/client/article/155#">https://sprut.ai/client/article/155#">https://sprut.ai/client/article/155#">https://sprut.ai/client/article/155#">https://sprut.ai/client/article/155#">


https://sprut.ai/client/article/155#">

https://sprut.ai/client/article/155#">

https://sprut.ai/client/article/155#">


https://sprut.ai/client/article/155#">Попытка установки 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

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

Объясните ,что я делаю не так . После того как я создаю homeassistant@homeassistant.service и сохраняю то в название  файле дописывается ....service.save и я не могу его запустить 


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

 дохожу до "pip3 install homeassistant" - говорит,что без sudo не будет выполнять, меняешь на "sudo pip3sinstallshomeassistan" - просит пароль



вводишь пароль raspberry - говорит ошибка

Решил также присоединиться

Установил Python 3.9, HA  202.2.3

Все заработало. Однако не могу подключить мобильное приложение

Logger: homeassistant.setup
Source: c:\users\serg\appdata\local\programs\python\python39\lib\site-packages\homeassistant\setup.py:138
First occurred: 7:47:57 (2 occurrences)
Last logged: 7:47:57

Setup failed for mobile_app: Requirements for mobile_app not found: ['PyNaCl==1.3.0'].
Setup failed for default_config: Could not set up all dependencies.

Никто не сталкивался?


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

  • remove .storage/auth*
  • remove .storage/onboarding

не получается , так как папки нет, НА то не запустился,

Помогите с поиском или сбросом пароля

а что это за виртуальное окружение питона? и в чём разница от докера?

Хотелось бы где-то почитать подробнее про различные варианты установки HA. Здесь среди статей как-то не нашёл...


Вернуться назад
Вернуться назад