Jak nainstalovat Home Assistant Core na router Turris Omnia

Před pár dny jsem si koupil nový router. Nakonec jsem se nechal nalákat na český výrobek Turris Omnia. Mezi ostatními zvítězil díky pravidelným aktualizacím, dynamickému firewallu a také slibovanému dostatečnému výkonu, díky kterému na něm má jít provozovat Home Assistant. V tomto návodu jsem sepsal postup, jak nainstalovat Home Assistant Core na router Turris Omnia.

Na začátek bych chtěl upozornit, že Home Assistant Core má jednu nevýhodu. Chybí mu doplňky, zálohy a supervisor. Pro začátek to možná nevadí a spoustu běžných integrací zde zprovozníte. Funguje MQTT, ESPHome, Tasmota, Shelly a spoustu dalších. Ale přijdete například o doplněk File editor, Zigbee2mqtt nebo o možnost automatického zálohování před každou aktualizací.

Všechny výše popsané chybějící položky nalezneme v Home Assistant Supervised. Ten se pokusím nainstalovat příště.

Přehled podporovaných funkcí pro verze Home Assistant
Home Assistant Core podporuje tyto funkce
Home Assistant Core - Doplňky, zálohy a Supervisor v menu nenajdete
Doplňky, zálohy a Supervisor v menu nenajdete

Před samotným návodem ještě zmíním jednu věc k routeru. Router nabízí 2 administrační rozhraní.

reForis (redesignované Foris) – zjednodušené administrační rozhraní, pro snadné nastavení základních parametrů, které se složitostí příliš neliší od jiných Wi-Fi routerů
LuCI (vychází z Unified Configuration Interface – systém pro centralizaci konfigurace) – nabízí velké množství pokročilých nastavení, stále bez zadávání příkazů v terminálu

Připojení flash disku jako externího úložiště

Router Turris Omnia má v sobě interní úložiště (eMMC flash paměťový čip), na kterém je uložen firmware routeru a zároveň další uživatelská data. Pro běžné používání routeru je to úplně v pořádku, ale pokud v routeru začnete používat aplikace které často zapisují data na disk, může to interní paměť poškodit. Proto je lepší pro provoz Home Assistanta připojit minimálně USB flash disk. Lepší je použít HDD nebo SSD disk.

Poznámka k životnosti USB flash disků a SD karet

Pro životnost USB disků se udává přibližně 3 000 – 5 000 smazání. Pro SD karty se nejčastěji udává životnost 100 000 smazání. Pokud se tedy říká, že se provoz Home Assistant na SD kartě nedoporučuje, USB flash disk je na tom ještě hůře. Bohužel výrobci u naprosté většiny USB flash / SD karet počet zápisů neuvádí.

Životnost USB disků také ovlivňuje použitý souborový systém. Pokud USB disk naformátujeme systémem FAT32, vydrží disk méně zápisů, než při použití novějších žurnálovacích souborových systémů.

Kvůli ceně jsem zvolil méně bezpečnou (z pohledu uložení dat) variantu s USB flash diskem. Do routeru Turris Omnia můžete umístit i malý SSD disk s rozhraním mSATA.

2. Poznámka k životnosti USB flash disků a SD karet

Ani ne po měsíci používání USB flash disku značky SanDisk, disk přestal fungovat. V počítači je vidět jako připojený, ale nelze naformátovat. Čekal jsem tedy o dost delší výdrž.

(Aktualizace článku 28.1.2022)

Pokud k routeru připojíte 2 externí disky, můžete je spojit do vícenásobného pole RAID1 a zabezpečit tak data proti selhání disku. Tento návod se věnuje připojení jen jednoho disku.

  1. Připojte USB disk do jednoho z USB slotů.
  2. V administraci routeru (reForis) přejděte na položku „Storage“
Robrazení nového USB disku v administraci reForis
Robrazení nového USB disku v administraci reForis
  1. Zaškrtnutím vyberte USB disk a spusťte jeho formátování.
  2. Formátování nějakou dobu zabere a až bude hotové, nedozvíte se to a stále bude zobrazen Stav: Formatting a kolečko se bude točit. Občas můžete obnovit stránku, ať víte, jestli už je formátování dokončeno.
Průběh formátování USB disku
  1. Restartujte router. Nevím proč, ale u mě bylo první restartování nějaké rychlé a požadavek na restart stále svítil v notifikacích.
Požadavek na restartování v reForis storage
Notifikace upozorňující na nutnost restartování
  1. Druhý restart už trval déle a po přihlášení se objevila informace, že je disk úspěšně připojen.

Instalace nástrojů pro správu linuxových kontejnerů LXC

  1. V administraci routeru, v rozhraní reForis přejděte v menu na „Správa balíčků“ a dále na Balíčky
  2. Zaškrtněte balíček „Nástroje pro LXC“ a úplně dole klikněte na „Uložit“
Aktivujte nástroje pro LXC
  1. Počkejte, až se nástroje stáhnou a nainstalují
  2. V levém menu klikněte na „Pokročilá správa“. Tím přejděte z reForis do pokročilé administrace LuCI.

Správa LXC kontejnerů v pokročilé administraci LuCI

  1. Po přihlášení přejděte v horním menu na „Služby“ a „LXC Containers“
  2. Vytvořte nový kontejner pojmenovaný HomeAssistant a jako šablonu zvolte „Debian Bullseye“ nebo jinou současnou stabilní verzi.
    Edit 13.3.2024 – šablony repozitářů jsou nyní prázdné, nastavte si vlastní URL kontejnerů, například na „lxc.hosts.name“
Vytvořte nový kontejner
  1. Stisknutím tlačítka „Vytvořit“ spustíte vytvoření nového kontejnere. Bohužel není vidět aktuální stav průběhu vytváření. Pokud se něco pokazí, nedozvíte se proč. Dejte tomu chvilku.
  2. Když bude vše připravené, začne fungovat tlačítko „Start“, kliknutím na něj a rozsvítí se zelená.
Zapnutý kontejner Home Assistant
  1. OK, vyhýbali jsme se tomu jak dlouho to jen šlo, ale nadešel čas, se přepnout do terminálu.

Připojení do routeru Turris Omnia přes SSH

  1. spusťte příkazový řádek a připojte se přes ssh k IP adrese routeru. Pokud používáte výchozí IP adresu, zadejte
ssh root@192.168.1.1
  1. Zadejte heslo do administrace LuCI (při prvním spuštění ještě musíte napsat „yes“, ale při dalších připojeních už nemusíte)
  2. Příkazem lxc-ls -f vypíšeme dostupné kontejnery. V prvním sloupci „NAME “ vidíme název kontejneru, v druhém sloupci, pojmenovaném „STATE“, vidíme jeho stav. Pokud je stav „RUNNING“, můžeme kontejner připojit. V terminále tedy napište
lxc-ls -f
  1. Kontejner se připojuje příkaze lxc-attach -n nazev_kontejneru. Pokud jste kontejner pojmenovali „HomeAssistant“, stejně jako já, použijete příkaz
lxc-attach -n HomeAssistant
  1. Jak jste si jistě všimli, byli jste uživatel root na stroji turris (root@turris) a nyní jste uživatel root na stroji LXCNAME (root@LXCNAME). Pokud se podíváte do seznamu připojených zařízení, uvidíte zde také zařízení pojmenované LXCNAME. To není moc praktické, tak to půjdeme změnit. Tahle změna se v DHCP úplně moc nepovedla, ale pro ssh funguje. Měl bych zjistit, jak se to dělá.
  2. Do terminálu napíšeme příkaz „hostnamectl set-hostname HomeAssistant“ a stiskneme enter. Pro ověření funkčnosti odpojíme a znovu připojíme kontejner pomocí příkazů exit a lxc-attach. V terminálu byste měli vidět stejný výpis
hostnamectl set-hostname HomeAssistant
exit
lxc-attach -n HomeAssistant
  1. Pro instalaci a správnou funkci Home Assistanta potřebujeme doinstalovat nějaké další balíčky. Postupujeme podle oficiálního instalačního návodu pro ze stránek https://www.home-assistant.io/installation/linux#install-home-assistant-core (s pár drobnými změnami)
  2. Provedeme aktualizaci dostupných repozitářů a nainstalujeme python. Postupně zadejte následující příkazy
apt-get update
apt-get upgrade
apt-get install -y python3 python3-dev python3-venv python3-pip libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5 libturbojpeg0 tzdata rustc
  1. Vytvoříme uživatele pro Home Assistant
useradd -rm homeassistant
  1. Do terminálu zadáme následující 2 příkazy. Prvním příkazem vytvoříme adresář, kam nainstalujeme Home Assistant, druhý příkaz nastaví vlastníka adresáře na vytvořeného uživatele „homeassistant“
mkdir /srv/homeassistant
sudo chown homeassistant:homeassistant /srv/homeassistant
  1. Aktivujeme virtuální prostředí. Všimněte si, jak se při tom změnil prompt v terminálu (viz obrázek níže)
su -s /bin/bash homeassistant
cd /srv/homeassistant
python3.9 -m venv .
source bin/activate
Sledujte, jak se změní prompt v terminálu
  1. Nainstalujte python balíček wheel
python3 -m pip install wheel

Instalace a spuštění Home Assistant Core

  1. Nyní můžete konečně nainstalovat Home Assistant Core
pip3 install --upgrade homeassistant
  1. Home Assistant Core spustíme zadáním příkazu
hass

Když hass spustíte poprvé, vytvoří výchozí konfigurační soubor. Následně se stahují a instalují potřebné knihovny a závislosti. U mě trvalo asi 15 minut, než byl Home Assistant plně připraven a byly v něm k dispozici všechny funkce. Další spuštění po restartu už jsou mnohem rychlejší.

Nainstalovaný Home Assistant se nachází na http://homeassistant.local:8123, pokud tato adresa nefunguje, můžete zkusit http://homeassistant:8123 a nebo se podívejte v administraci routeru, jaká IP adresa byla Home Assistantu přidělena. Home Assistant pak spustíte na http://x.x.x.x:8123

Home Assistant Core v routeru najdete jako zařízení pojmenované LXCNAME. Zatím jsem nepřišel na to, proč se změna hostname nepromítne i do názvu počítače v routeru. Po restartu routeru je místo názvu počítače symbol mínus.

A to je konec tohoto návodu. Další dny se budu pokoušet nainstalovat Home Assistant Supervised, na který následně přesunu své současné centrum chytré domácnosti. Všechno je to úplně jinak, než jsem původně plánoval. Řekl jsem si, že to s Home Assistant Core ještě chvíli zkusím, že se naučím něco nového a že instalaci Home Assistant Supervised ještě chvilku odložím.

Jak jsem si tak s novým routerem hrál, zjistil jsem, že po každém restartu routeru musím opět zapínat kontejner a následně spouštět HomeAssistanta přes terminál. To je hodně zbytečná práce, tak se jí pojďme vyhnout. V článku automatický start LXC a Home Assistant popisuji, jak na to.

Router Turris Omnia 2020

Když si budete kupovat router Turris Omnia 2020, tak předpokládám, že to nebude kvůli instalaci Home Assistant. Na to existují určitě vhodnější zařízení.

Pokud již tento router vlastníte, nemusíte kvůli centru chytré domácnosti kupovat další zařízení.

Prohlášení na závěr

Nejedná se o reklamní článek. Za napsání tohoto článku jsem nedostal zaplaceno.
Nejedná se o zapůjčený produkt k testování. Router Turris Omnia vlastním několik dní a doufám, že budu jeho spokojeným uživatelem.
Článek může obsahovat affiliate odkazy, díky kterým snad jednou pokryji náklady na provoz blogu.

3 názory na “Jak nainstalovat Home Assistant Core na router Turris Omnia”

  1. Jiří Hanzlík

    Dobrý den,
    děkuji za postup.
    Postup fungoval až do kroku 24 a příkazu „sudo chown homeassistant:homeassistant /srv/homeassistant“ (zobrazovala se hláška „sudo: unable to resolve host“), který jsem musel zaměnit za „chown homeassistant:homeassistant /srv/homeassistant“.
    Je to v pořádku?

  2. Dobrý den,
    máte v HA Core zprovozněno zařízení s Tasmotou? Nemohu na to příjít, tak hledám rady.
    Děkuji Jirka

Diskuze

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Přejít nahoru