blog.vyoralek.cz

Centrum chytré domácnosti – HomeAssistant (Hass.io) – 1 část

Představte si situaci, že máte nakoupeno spoustu různých „chytrých“ IoT zařízeních od různých výrobců, které byste chtěli ovládat z jednoho místa. Právě tohle je základní úloha systému HomeAssistant, který je integrátorem všemožných jak hardwarových IoT zařízeních (různé chytré žárovky, spínače atp) tak i služeb (předpověď počasí, hlasové ovládání atp).

Tímto článkem začnu větší sérii a tom jak si toto chytré integrační centrum připravit a později i hlavně jak to všechno dohromady propojit.

První díl bude věnován čistě instalaci, jelikož je hned několik možností a může se i lišit na základě použitého hardwaru.

Instalace Hass.Io z image

V první části se podíváme jak nainstalovat HomeAssistant jako tzv. Hassio, což je předpřipravený Docker image. Ukážeme si několik možností instalace pro různé desky.

1. Raspberry Pi – Hass.OS image

Nejjednodušším způsob pro Raspberry PI je stažení hotových diskových obrazů, tzv. image. Ty jsou k dispozici na základě typu pro:

Raspberry Pi Zero W
  • Raspberry Pi 1 Model B (již se neprodává)
  • Raspberry Pi 2 Model B (deska k dostání na např. Alza)
  • Raspberry Pi 3 Model B (deska k dostání na např. Alza, AliExpress) a B+ (Alza, AliExpress)
Raspberry Pi 3 Model B

Ze stánek projektu home-asisstant si pouze stáhneme hotový obraz, který pak pomocí např. aplikace etcher.io nahrajeme na SD kartu a tím máme hotovo.

2. Raspberry Pi – Raspbian + docker

Pokud plánujete na Raspberry provozovat ještě další systémy, které nejsou obsažené v Hass.IO ani v jeho addonech, pak je lepší volbou nainstalovat klasický operační systém – v případě Raspberry zvolíme Raspbian.

V tomhle případě má pak instalace více kroků a je poněkud komplikovanější. Nicméně popíšu všechny kroky detailně.

Základní instalace Raspbianu

  1. Stáhneme Raspbian Stretch Lite ze stránek Raspbianu.
  2. Image nahrajeme pomocí např. aplikace Etcher na připravenou SD kartu.
  3. SD kartu zasuneme do Raspberry a nabootujeme
  4. Pro přihlášení použijeme jméno pi a heslo raspberry
  5. (volitelně) Pokud plánujeme přihlašovat se na Raspberry vzdáleně tak povolíme SSH server pomocí utility raspi-config.
  6. (volitelně) Pokud si nejsme jistí IP adresou přidělenou Raspberry můžeme použít například příkaz ifconfig.

Instalace Dockeru

Než začneme se samotnou instalací dockeru je dobré provést veškeré aktualizace pomocí kombinace:

sudo apt update && sudo apt upgrade

Jakmile máme hotovo můžeme se vrhnout na instalaci dockeru se všemi závislostmi

sudo apt install avahi-daemon jq 
sudo apt install apparmor
sudo apt install network-manager

Jelikož nám nebude stačit docker, který je ve standardním repositáři Raspbianu stáhneme si instalační skript:

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

… který se o celou instalaci postará. Spustíme ho pomocí:

sudo sh get-docker.sh

Instalace Hass.Io

Nejrpve si stáhneme instalační skript:

curl -sL https://raw.githubusercontent.com/home-assistant/hassio-build/master/install/hassio_install > hassio_install

… a pak už ho jen spustíme:

chmod 775 ./hassio_install
sudo ./hassio_install -m raspberrypi3

Na konci úspěšné instalace by poslední řádek měl být Run Hass.io.

[Info] Install supervisor Docker container
[Info] Install supervisor startup scripts
Created symlink /etc/systemd/system/multi-user.target.wants/hassio-supervisor.service → /etc/systemd/system/hassio-supervisor.service.
[Info] Install AppArmor scripts
Created symlink /etc/systemd/system/multi-user.target.wants/hassio-apparmor.service → /etc/systemd/system/hassio-apparmor.service.
[Info] Run Hass.io

Zadáme http://<IPAdresaServeru>:8123 a měli bychom vidět, že Hass.io se momentálně připravuje, což může trvat až 20minut.

Zvědavci a nebo v případě problému se můžou kouknout na Git repositář instalačního skriptu Hass.io.

3. Orange PI – Armbian s Ubuntu + docker

V případě Orange PI je instalace poněkud delší, jelikož nejsou k dispozici oficiální diskové obrazy, ale i tak není instalace nějak šíleně komplikovaná.

Orange Pi Zero +2 H5
Příklad Orange Pi desky v provedení Zero +2 H5
(tuhle desku mimochodem používám já)

Nejprve si stáhneme diskový obraz Armbianu, který např. pomocí etcher.io nahrajeme na SD kartu.

Dále nainstalujeme docker + potřebné balíčky

add-apt-repository universe && sudo apt-get update
apt-get install docker.io avahi-daemon jq
apt install apparmor

… stáhneme si instalační skript pro Hass.io:

curl -sL https://raw.githubusercontent.com/home-assistant/hassio-build/master/install/hassio_install > hassio_install

… a instalaci spustíme:

chmod 775 ./hassio_install
./hassio_install -m qemuarm-64

Po dokončení instalace zadáme http://<IPAdresaServeru>:8123 a měli bychom vidět, že Hass.io se momentálně připravuje, což může trvat až 20minut.

Instalace HomeAssistant z Python balíčků

Alternativním způsobem k diskové image či docker image je instalace z balíčků Pythonu.

Tenhle způsob má snad pouze jedinou výhodu a to univerzálnost – postup instalace by měl být totožný pro všechny desky bez ohledu na výrobce. Jediným předpokladem je tak Ubuntu či Debian nějaké novější verze.

Na druhou stranu nedostanete plnou funkcionalitu jako u Hass.Io – zejména pak možnost doinstalovávat balíčky přímo z webového prostředí a složitější způsob aktualizace. Nicméně i přesto pojďme si tenhle postup ukázat také.

Nejprve si předpřipravíme všechny závislosti:

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

Pro větší bezpečí si založíme speciálního uživatele homeassistant, pod kterým celá služba poběží a vytvoříme základní adresář:

sudo useradd -rm homeassistant -G dialout,gpio
cd /opt
sudo mkdir homeassistant
sudo chown homeassistant:homeassistant homeassistant

Dalším krokem je pak vytvoření virtuální prostředí Pythonu pro Homeassistant, což vytvoříme pod homeassistant uživatelem:

sudo -u homeassistant -H -s
cd /opt/homeassistant
python3 -m venv .
source bin/activate

… a v již virtuálním prostředí spustíme:

python3 -m pip install wheel
pip3 install homeassistant

Homeassistant pak můžeme spustit pomocí příkazu hass a nebo si lépe připravíme službu, kterou necháme spustit při startu systému. Vytvoříme proto nový soubor /etc/systemd/system/home-assistant.service:

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

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

[Install]
WantedBy=multi-user.target

.. a zapneme službu:

sudo systemctl enable home-assistant.service

Můžeme pak buď systém restartovat a nebo rovnou službu spustit:

sudo service start home-assistant

Inicializace po prvotním startu

Po úspěšné inicializaci vyskočí obrazovka s vytvořením přihlašovacího účtu

Do výzvy k přihlášení vyplníme uživatelský účet, který jsme právě vytvořili a měli bychom se dostat na úvodní dashboard.

Na mém dashboardu už se automaticky přidalo ovládání na Bose reproduktor.

Bose reproduktor SoundTouch 20 III

Homeassistant si totiž provádí jakýsi sken zařízení v síti a snaží se je rovnou přidat. Většinu zařízení však budeme muset nakonfigurovat – o tom ale až později.

Konfigurační soubor obsahující vše zatím popsané v této sérii článků můžete zkouknout na mém Github repozitáři.

Kompletí série o HomeAsistentovi obsahuje následující články:

  • 1. část – Představení HomeAsisstent – tento článek
  • 2. částIntegrace Sonoff s firmware Sonoff-Tasmota
  • 3. částIntegrace Homekit
  • 4. částIntegrace Sonoff s firmware Sonoff-Tasmota – 2 část
  • 5. částIntegrace s Wemos D1 a senzory teploty
  • 6. částIntegrace Sonoff s firmware ESPHome
  • 7. částIntegrace Sonoff POW s firmware ESPHome
  • 8. částIntegrace LED Magic Home s firmware ESPHome
  • 9. částIntegrace Xiaomi Mijia a Aqara

8 komentářů

Napsat komentář

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..

  • Zdravím. Jedu podle vašeho návodu na Raspberry. Nainstaloval jsem Raspberry. Všechno jede. Pak jsem na stávající SD kartu pomocí etcher.io naflashoval hasio image. Etcher se na nic neptal a flashoval. Poté už nejde spustit Raspberry. Mmch, návod pro „Raspberry“ končí odstavcem o „ORANGE PI“, nebo mám něco použít i z něho. Mám za to, že pak po flashi to rovnou naběhne do „inicializace po prvotním startu“, ale u mně se to zaseklo. Jakoby přepsalo systém Raspberry a nic nejede. Dík za rady.

    • Tak vše v pořádku, do návodu je třeba připsat, že Rasp musí být připojen ethernetem. 🙂 1. stránka v pořádku.

        • Teď jsem narazil na problém, jak do existujícího hasio přidat wifi. 🙂 Ty 2 týdny budou dlouhá doba. S váma bych to dokončil. 🙂

  • Dík za návody. V souvislosti s HA bych se rád zeptal, jak vyřešit životnost SD karty na Raspberry? Nebo Orange Pi je na tom lépe?

    • Odpovím si sám. Hassio nepodporuje USB. Takže kdo chce provozovat Rsp na SSD musí najít způsob jak to nahrát na SSD bez potřeby SD karty.

    • Dnes jsem se vrátil konečně zpět do ČR a postupně během týdne se pokusím odpovědět i na všechny komentáře. Co se týče SD – zřejmě jste to už slyšel, že se obecně doporučuje koupit kvalitní značky. Určitým „lepším“ řešením by měly být eMMC, které mají obvykle i benefit, že jsou rychlejší, ale konkrétní čísla jsem nikde zatím nanašel. SSD je v tomhle případě nejspolehlivějším a nejrychlejším řešením, ale také nejdražším.

%d blogerům se to líbí: