Instalare Home Assistant in Docker

Home Assistant
Home Assistant @ home-assistant.io

In tutorialul anterior am aratat doua posibilitati de a instala Home Assistant pe Raspberry PI. Intruna dintre ele foloseam o imagine completa a sistemului care are avantajul ca vine la pachet cu toate optiunile oferite de serverul smart home, insa fiind o imagine stand-alone nu se vor mai poutea face alte instalari pe sistem in afara de Home Assistant, ceea ce pe de o parte aduce beneficii in siguranta si securitate insa pe de alta parte se pierde o parte din potentialul minicomputerului pe care il utilizam. O alata metoda expusa in tutorial era instalarea Home Assistant direct in sistemul de operare, insa si aceasta metoda are dezavantajul ca nu vine la pachet cu toate optiunile serverului de smart home Home Assistant, mai exact lipsind optiunea de „Supervisor”, limitand astfel utilizarea sistemului.

O alta metoda de a instala Home Assistant, in varianta completa, este folosind un software aditional si anume Docker.

Ce este Docker

Docker este o platforma software pentru construirea de aplicatii bazate pe containere – medii de executie mici și usoare care utilizeaza în comun sistemul kernelului de operare, dar care se executa în mod izolat unele de altele. Multa vreme solutia la această problema au fost mașinile virtuale, care mentin aplicatiile pe acelasi hardware în totalitate separate, reducand la minimum conflictele dintre componentele software și concurenta pentru resursele hardware. Dar mașinile virtuale sunt voluminoase – fiecare are nevoie de propriul sistem de operare, resurse alocate și este dificil de întreținut utilizat și de actualizat.

Containerele, prin contrast, izoleaza mediile de executie ale aplicatiilor unele de altele, dar împartasesc nucleul de baza al sistemului de operare. Ele sunt de obicei de mici dimensiuni, folosesc resurse mult mai reduse decat masinile virtuale și se pornesc aproape imediat.

Docker este un proiect open source care facilitează crearea de containere și aplicații bazate pe containere. Initial construit pentru Linux, Docker ruleaza acum si pe Windows sau MacOS.

Observam ca avem o structura pe verticala la baza acesteia fiind resursa hardware, peste care venim cu resursa software de baza si anume sistemul de operare, unde vom instala Docker, iar in interiorul acestui mediu protejat vom instala Containere care se vor baza pe sistemul de operare existent, adaugand doar librariile necesare pentru a rula o anumita aplicatie.

Hardware necesar pentru rulare

Componente necesare inainte de a incepe:

Inainte de instalare:

  • Raspberry PI software complet instalat, asa cum am aratat intr-un tutorial anterior.
  • Secure Shell – SSH activ.
  • DNS activ, de exemplu noip.com, pentru conectarea ulterioara la sistem din afara retelei locale.

Instalare Docker

Inainte de orice instalare vom face un update software si curatare de pachete care nu mai sunt necesare, urmat de un restart la sistem.

Ne conectam prin SSH la Raspberry PI si rulam urmatoarea comanda:

sudo apt-get update && sudo apt-get upgrade -y && sudo apt autoremove -y && sudo apt-get clean && sudo reboot

Dupa restart instalarea Docker se face prin doua simple comenzi:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Practic prin intermediul scriptului de mai sus instalarea se va face automat si dureaza aproximativ 5-10 minute, functie de rapiditatea conexiunii la internet.

La finalul instalarii vom vedea ce versiune de Docker s-a instalat, si folosind apt-cache madison docker-ce putem verifica prin comparatie daca este versiunea actuala.

Pentru stabiltatea viitoare a sistemului marcam aceasta instalare cu hold. Asta inseamana ca ulterior la upgrade de sistem Docker-ul nu se va updata la ultima versiune.

sudo apt-mark hold docker-ce docker-ce-cli containerd.io

Pentru a putea lansa comenzi in Docker din userul PI trebuie sa adaugam acest user la grupul acestuia:

  sudo usermod -aG docker pi

Cu aceasta ultima comanda Docker este instalat pe sistem si putem adauga containere.

Instalare Home Assistant in Docker

Pentru instalarea Home Assistant in Docker este nevoie sa ne logam ca si administrator de sistem:

sudo su

Pentru instalare avem nevoie de inca cateva dependinte de sistem. Aceste ale vom instala cu:

apt-get install -y software-properties-common apparmor-utils apt-transport-https avahi-daemon ca-certificates curl dbus jq network-manager socat

Aceste dependinte pot fi instalate si din userul „pi”, folosind „sudo” inainte de comanda.

Dezactivam ModemManager:

systemctl disable ModemManager
systemctl stop ModemManager

Daca folosim Raspberry PI 3, atunci vom folosi urmatoarea comanda:

curl -sL "https://raw.githubusercontent.com/Kanga-Who/home-assistant/master/supervised-installer.sh" | bash -s -- -m raspberrypi3

Pentru Raspberry PI 4 comanda de instalare Home Assistant in versiunea completa este:

curl -sL "https://raw.githubusercontent.com/Kanga-Who/home-assistant/master/supervised-installer.sh" | bash -s -- -m raspberrypi4-64

La aparitia mesajului: Do you want to proceed with overwriting the /etc/network/interfaces file? [N/y] confirmam cu „y” si instalarea va continua.

Dupa cateva secunde vom primi confirmarea ca sistemul de smart home Home Assistant se instaleaza si va fi accesibil urmand linkul dat, sau http://192.168.IP.rPI:8123. Instalarea continua in background. La finalizarea acesteia urmam procedura de creare a unui user nou.

Sesiunea de instalare se incheie cu exit.

Mai departe nu ne ramane decat sa ne conectam deviceurile compatibile la sistemul smart home si sa le integram in Home Assistant. Pentru a fi acesibil din exteriorul retelei va trebui sa deschideti portul 8123, si sa folositi un DNS, sau puteti utiliza optiunea de cloud disponibila in Home Assistant, care insa este contra cost.

De Iulian Susnea

Pasionat de tehnologie, gadgeturi smart home si automatizari si am pornit la drum in crearea acestui site cu tutoriale pentru cele mai importante sisteme Smart Home ale momentului din dorinta de a-i ajuta pe cei la inceput de drum.

2 comentarii

  1. Salut Iulian,
    Nu stiu daca tie ti-a mers procesul asta pe un RPI 4-64 fara un OS pe 64bit. Tot incercam si nu mergea, dadea eroare de container ca nu este os-ul potrivit. Ce am facut:
    1. am verificat ce echipament am (inca zul meu un RPi 400 care suporta 64bit)
    2. am dat un $uname -m si am vazut ca am OS pe 32 bit
    3. am mers pe site-ul de la RPI si am gasit ca au si OS pe 64 bit (pe care nu le gasesti direct RPI Imager)
    4. am descarcat local – am folosit RPI Imager si am instalat imaginea
    5. am urmat instructiunile apoi de aici si a mers perfect.

    Cred ca ar merge sa faci si un tutorial cum sa faci HA-ul disponibil din internet + integrarea cu Google Home / Alexa
    Toate bune!
    – Radu

    1. Hei Radu,
      Ma bucur tare mult ca ți-au fost de folos informațiile prezentate, și în primul rând apreciez perspicacitatea ta de a ieși din încurcătură.
      Voi revizui tutorialul atâta pentru versiunea de 64 cât și cea de 32bit, cu adaugirile necesare.

      Uma dintre metodele de accesare a serverului este explicata aici: https://www.homeready.ro/fhem/acces-server-fara-port-forwarding/

      O alta metoda, dacă folosești digi ca ISP, este sa iti faci la ei un DNS, și port forwarding din router-ul tău. Vei accesa cu link-ul de genul https://NUMEdns.go.rob8123

      Alexa și google home sunt în lucru. În curând voi finaliza și tutorialele respective.

Lasă un comentariu

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *