Статья

Hassio в Docker - установка куда угодно включая Deconz

Чисто, чтобы не забыть чем пользовался в процессе мучений с разными инсталляциями:

Мануал по установке нативного софта для Deconz

Ссылка на образ Deconz для Raspberry Pi 3

SSH

пользователь: pi

пароль: raspbeegw

Алгоритм установки Docker который точно работает

Установка хассио в докер через скрипт

Установка

Исходное состояние:

компьютер с предустановленной операционной системой (Raspberry Pi или что то вроде того)

Ставим Docker

sudo apt-get update sudo apt-get install -y bash curl git jq avahi-daemon dbus apparmor-utils network-manager libavahi-compat-libdnssd-dev libatlas3-base sudo curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh

Дальше нам нужно убедиться, что мы залогинены под юзером а не под root

После выполнения последнего скрипта вы можете остаться под root - это будет понятно, если на конце командной строки вы увидите символ #, а в начале строки увидите root

выглядит это так:

root@raspberry:/home/pi# - это мы под рутом

pi@raspberry:~$ - это мы под пользователем

соответственно вам необходимо выполнять команду exit до момента появления на хвосте строки символа $

дальше добавляем группу docker и добавляем в нее пользователя

sudo groupadd docker sudo gpasswd -a $USER docker newgrp docker

Дальше ставим Portainer.io в докер - отдельно от hass.io чтобы он не зависел от управляющего супервизора хассио

docker pull portainer/portainer docker volume create portainer_data docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

Дальше проверяем работу portainer сходив по ссылке http://ip_малины:9000

Дальше продолжаем работу через ssh

sudo su curl -Lo installer.sh https://raw.githubusercontent.com/home-assistant/supervised-installer/master/installer.sh bash installer.sh --machine MY_MACHINE

где вместо MY_MACHINE вы должны подставить один из следующих вариантов:

  • intel-nuc
  • odroid-c2
  • odroid-xu
  • orangepi-prime
  • qemuarm
  • qemuarm-64
  • qemux86
  • qemux86-64
  • raspberrypi
  • raspberrypi2
  • raspberrypi3
  • raspberrypi4

  • raspberrypi3-64
  • raspberrypi4-64

  • tinker

Дальше пойдут недокументированные в официальных документациях варианты, но работающие и имеющие место быть

  • i386
  • amd64
  • armhf
  • aarch64

Эти варианты надо использовать, при условии что указанные ранее - вам не подходят.

Комментарии для подготовленных

Разница в работе систем заключается в том, что некоторые аддоны hassio не работают в некоторых режимах. То есть, если мы берем вариант с Raspberry Pi 3 B , то на ней можно работать как в варианте raspberrypi3 так и raspberrypi3-64. Разница в том, что первый 32-битный, а второй 64 битный. И вы потеряете аддоны, у которых нет репозиториев для этой архитектуры (их немного, в основном они все совместимы), но 64-битная система иногда работает быстрее чем 32-битная.

В вариантах, когда у вас не малина, а как у меня Rock64 или Le Potato, то тут все зависит от системы, которую вы поставите.

для Rock64 идет штатно DietPi aarch64

для Le Potato есть варианты ubuntu или debian с ядром aarch64, но хост системой с архитектурой armhf (лайфхак, ставьте вариант для odroid-c2, у них практически одинаковое железо)

супервизор при этом поставится исключительно под ту архитектуру, на которой крутится ядро хоста. То есть если у вас стоит raspbian aarch64 - то и супервизор поставится aarch64

Конец комментариев для подготовленных

Ну а дальше мы получаем рабочий hassio по адресу http://ip_малины:8123

Команды для проверки DNS серверов в контейнерах

docker exec homeassistant cat /etc/resolv.conf docker exec hassio_supervisor cat /etc/resolv.conf

Докер по умолчанию создает некий виртуальный DNS сервер по адресу 127.0.0.11

и он почему то лезет вообще во внешку и подцепляет DNS сервер провайдера

Поэтому начинает глючить телеграм, так как ДомРу, например, меняет ДНС записи.

Поэтому идем редактируем /etc/docker/daemon.json

и прописываем свой локальный адрес рутера

{"dns": ["IP_адрес_рутера"]}

Маленькое дополнение:

смена DNS не помогает в 60% случаев, поэтому нужно прописывать физически адреса в файл hosts

для этого делаем просто

docker exec -it homeassistant bash vi /etc/hosts

А дальше прописываем в файле 149.154.167.220 api.telegram.org сохраняем и перезагружаемся

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


  1. После установки network-manager вы можете потерять сетевые настройки как было у меня на raspbian. Добавлял инит интерфейсов кастомно.
  2. 2. Вторым днс адресом все же стоит добавить восьмерки, потому что докер контейнеры не всё будут нормально резолвить, у меня летсэнкрипт не мог увидеть своё, даже не смотря на то, что на хостовой машине все резолвилось.

1. Четыре разных установки, все четко и ничего не теряется

2. Если рутер умеет менять файл hosts то все это не нужно, но вот если не умеет, то у рутера ставим восьмерки а в докере ставим рутер. Иначе локально в домашней сети начнутся проблемы.

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

Если мы ставим в докер допом восьмерки, то включается round-robin. А если все ссылки в конфиге идут на duckdns, то если вы не откроете на рутере извне кучу портов внутрь, то будут проблемы. Именно поэтому на рутере я прописываю в hosts внутренний IP для duckdns домена своего НА

Вотоночё, михалыч! Сделал локальный резолв, спасибо за наводку!

для RasPI Zero W какой параметр выбрать? raspberrypi или armhf?

armhf

Можете написать так же коyфиг под docker-compose?

неа, у меня не встал компоуз, да он в данной версии и не нужен, так как для хассио он бесполезен. hassio supervisor сам занимается контролем запуска и жизни компонентов. Потому оно и не убиваемо практически. Реально убить хассио достаточно сложно, даже если это необходимо админу.

После выполнения этой команды малинка стала чудить.

sudo apt-get install -y bash curl git jq avahi-daemon dbus apparmor-utils network-manager libavahi-compat-libdnssd-dev libatlas3-base 

Каждый раз при подключении к сети меняется мак-адрес. С чем это связано?

После выполнения второго скирипта вообще докер умер...

curl -sL https://raw.githubusercontent.com/home-assistant/hassio-build/master/install/hassio_install | bash -s -- -m armhf

Теперь у меня не наботает ни новый НА, ни старый)

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

поэтому надо выуживать конфиги старого НА и ставить нулевую систему

Купил я новую RPi3B+ взамен RPi0W и все взлетело, спасибо за гайд!


Но почему-то устройства теперь не видят малину по имени хоста, только через айпишник работает.

Понимаю, что вопрос не первой свежести, но может кому-то сэкономлю время и нервы.

Сегодня с этим столкнулся. Спасибо, добрые люди решение подсказали. Такое поведение малинки - настройки по-умолчанию для network-manager (одного из поставленных пакетов). Он так сканирует WiFi сети с перебором MAC.

Чтобы его успокоить нужно добавить в файл /etc/NetworkManager/NetworkManager.conf строки:

[device]

wifi.scan-rand-mac-address=no

та же фигня. Надо или сносить нетворк менеджер или  

в NetworkManager.conf написать
[device]
wifi.scan-rand-mac-address=no

Установил на образ Deconz и потом активировал Deconz в контейнере через аддон, теперь у меня  при заходе с хассио в Деконз два Фоскона.

Один привязанный, а второй просит активироваться, у него ввести новый пароль. Если мысли? 

один фоскон из любого места может управлять любым деконзом... так что ничего удивительного. Можно пользовать оба, только смысл ? надо один снести и все :)

А как отключить автоматический перезапуск супервизора? я хочу потушить HA на время, но супервизору не могу скомандовать restart: none

супервизор это неубиваемая штука. И потушить НА на время это только запаузить контейнер ХА. Супервизор лучше ваще не трогать :)))

Возможно, так:

sudo systemctl stop hassio-supervisor.service

немного не так:

systemctl disable hassio-apparmor.service & systemctl disable hassio-supervisor.service

После установки останавливается контейнер 

http://192.168.20.100:9000/#/containers/f16ff6fc7eeb5f5f2ec3c120925ac84c078f21bdcd1b0118f0fc96b7e5b5f80a">hassio_dns. 

При этом hassio в логе:

19-11-02 09:29:14 WARNING (MainThread) [hassio.tasks] Watchdog found a problem with CoreDNS plugin!
19-11-02 09:29:14 WARNING (MainThread) [hassio.tasks] CoreDNS plugin is in fails state / Reset config

Как победить?

что за контейнер такой интересный ? и зачем он ? 

на чем стоит система, как установлен хассио? делались ли настройки днс как в статье ? правильный ли синтаксис в итоге ? 

Похоже, проблема в настройках маршрутизатора mikroTik. Подключил к TP-Link и все заработало.

Здесь все оказалось очевидно. Был закрыт для всех 53 порт ДНС на Микротике, открыл его для локалки и все заработало. Иначе контейнер DNS Hassio останавливался и перезапускался после неудачных попыток достучаться до сервера ДНС.

Победили проблему? Расскажите как!

Debian 10 Linux orangepioneplus 5.3.7-sunxi64 #5.99.191031 SMP Thu Oct 31 02:46:05 CET 2019 aarch64 GNU/Linux

хассио поставлен по вашей инструкции

Docker version 19.03.4, build 9013bf5

DNS правился так:

$ sudo nano /etc/docker/daemon.json

{
"dns": ["8.8.8.8", "8.8.4.4"]
}

На данный момент работает hassio в докере. Ставлю штатные аддоны. А вот если нужно поставить дополнительные компоненты в докере, какие будут действия? Хочу чтоб подключить Yandex Home. Думаю, инструкция об этом пригодится многим.

Интеграция в яндекс описана в статьях и в официальной документации тоже все просто :))

Да, уже сам разобрался

Если ставим на бомж ПК, принцип установки такой же?


Делаю всё по инструкции, вроде всё ставится, но дохожу до команды 


docker exec homeassistant cat /etc/resolv.conf

и он ругается, что директории нет.


В линукс системах вообще не понимаю ничего...  :(


Может есть вариант поднять сервер на чем нибудь другом?


Комп:  Мать Asus C60M1-I, двухъядерный процессор AMD С-60 и графическое ядро AMD Radeon HD 6290, 4 Гб оперативной памяти ну и винт какой то.


UPT.:


"Дальше продолжаем работу через ssh"


Обязательно Hassio устанавливать через SSH?



sudo su curl -sL https://raw.githubusercontent.com/home-assistant/hassio-installer/master/hassio_install.sh">https://raw.githubusercontent.... | bash -s -- -m MY_MACHINE  В этой строке вместо 

MY_MACHINE ставлю amd64?

Нет, ставим не amd64 а intel-nuc


А что касается команды, то все это надо чтобы обойти домрушные методики блокировки. Надо сначала проверить работает ли НА

docker exec homeassistant cat /etc/resolv.conf

Добрый день! Пытаюсь поставить по этому гайду на Orange pi pc2. 

изменения по гайду только в My_machine, заменяю на rawsberry3-64.

Если не вводить команды с ресолв, то hassio не открывается из браузера. Если вводить и править demon.json внося адрес роутера, то все стартует, но существует проблема. При включенном OrangePi начинает тупить домашний NAS (диагностировано при попытке посмотреть на телике видео с Синолоджи, идет долгая загрузка, видео не проигрывается). При отключении orange от сети - все начинает работать штатно. 

С armbian пока на "вы" :( Буду благодарен за наводку куда копать, а то даже сообразить не могу что гуглить. Поиск по симптомам разумеется ничего не дал :(


Подскажите, для чего нужно устанавливать образ докера под обычным пользователем, а не root?

Поставил по этой статье. все отлично все работает. по возможности допишите как пробрасывать usb устройства в контейнер что б hassio их видел. например usb modbus или usb uart для прошивки устройств напрямую с esphome.

Спасибо)

Дак он их видит. Если сходить в раздел hardware то при подключении устройств они появляются в виде /dev/четатам

Всем привет. Нужна помощь, установил по скрипту hassio в докер на расбери. Но когда захожу на raspberry_ip:8123 то ничего не вижу. Установка прошла без проблем. Перед установкой остановил уже настроенный HA, то есть по идее раз он остановлен то они не должны конфликтовать. Не могу понять почему не вижу hassio по адресу. Может кто поможет понять в чем причина?!

ага, пасиб, исправил

Доброго!


Железо RasberryPi 4b + ssd(в USB3.0 кармане) + microSD загрузочная. Загрузчик BerryBoot2.0. Система Raspbian


Проблема та же, что и у 

https://sprut.ai/client/user/profile/3808">(pruwait) 

:


<p>20-05-09 08:37:40 WARNING (MainThread) [supervisor.tasks] Watchdog found a problem with CoreDNS plugin!</p><p>
20-05-09 08:37:41 ERROR (MainThread) [supervisor.tasks] CoreDNS plugin is in fails state / Reset config</p><p>
20-05-09 08:37:41 INFO (MainThread) [supervisor.plugins.dns] Start CoreDNS plugin</p><p>
20-05-09 08:37:41 INFO (SyncWorker_7) [supervisor.docker.interface] Clean hassio_dns application</p><p>
</p>

daemon.json

{
"storage-driver": "vfs",
"dns": ["8.8.8.8", "8.8.4.4"]
}

Роутер Xiaomi R3@padavan 53 порт вроде открыт 


Разрешить диапазон для внутренних портов: 21-65535

Данный метод установки теперь не актуален. Как написал его автор, поддержка данного метода и обновление прекращены. Если интересно вот  https://www.home-assistant.io/blog/2020/05/09/deprecating-home-assistant-supervised-on-generic-linux/">Ссылка

ну судя по последнему обновлению поста - они пока не остановили. Вообще это забавный прецедент, когда создатели опенсорс решения, ссылаясь на перегруженность персонала - говорят "либо скидывайтесь на работников, либо извините" :)))

В итоге я думаю как только они отключат этот вариант, они потеряют очень большой пул своих пользователей. Альтернатив уже довольно достаточно.

Ну я не смог поставить hass.io по имеющейся ссылке. Хотя неделю назад ставил на тестовой машине. Сегодня уже не работает. 


Согласен с вами, что это только портит репутацию. 

Ага, спасибо поправил

Подскажите, пытаюсь установить Хассио с помощью выше приведенных скриптов. Но ничего не происходит. Просто выкидывает в командную строку. В чем может быть дело?

Установка через скрипт по прежнему актуальна, этот способ не закрыли? И как теперь устанавливать Ассистант?

спасибо за подсказку с Portainer, но у меня отчего то после перезапуска хассио перестает к себе пускать, хотя контейнер работает

Всем у кого в последнее время не получается с установкой Hassio в Docker.


Порядок установки указанный в статье рабочий. Подтверждаю как потративший 5-ть дней!!! (частично и ночей) на установку Hassio в Docker на Raspberry Pi4, а на 4-й день наткнувшийся на разъяснение - https://alerts.home-assistant.io/#docker_2010.markdown">тыц. 


Все дело в докере, на версиях Docker 20.10 и 20.10.1 Hassio-supervisor нормально не работает. Устанавливаться устанавливается, и даже запускается 1-й раз, но потом одни мучения после первой перезагрузки с устанавливаемыми контейнерами.


Нормально заработало на версии Docker 19.03.14. Для Raspberry Pi,  Docker устанавливается командой:


sudo apt install docker-ce=5:19.03.14~3-0~raspbian-buster


По указанной в статье команде установки Docker, устанавливается последняя версия, и соответственно если эта версия будет такая как указанные мною не пригодные для Hassio - 20.10 и 20.10.1

, то нормально ничего работать не будет (другие версии не проверял). Все остальное - по статье.

Подскажите, есть ли дистрибутив home Assistant для старенькой Raspberry pi b+  (armv6l
) ? 
пробовал версию под малинку 3. под PI - не стартует


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

Устройства


Raspberry Pi

Raspberry Pi 4

(16 отзывов)

Raspberry Pi

Raspberry Pi 3 Model B+

(22 отзыва)

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