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 Home Assistant přes terminál. To je hodně zbytečná práce, tak se jí pojďme vyhnout. Celý automatický start Home Assistant probíhá ve dvou krocích. Nejprve se musí spustit LXC kontejner a následně již Home Assistant.
Pokud Vás zajímá, jak Home Assistant na router nainstalovat, popisuji to v předchozím článku Jak nainstalovat Home Assistant Core na router Turris Omnia.
Automatické spuštění LXC kontejneru po restartu routeru
Automatický start LXC kontejneru nelze nastavit a administračním prostředí routeru. Musíme se připojit pomocí SSH v terminálu. Automatický start se nastavuje v souboru „/etc/config/lxc-auto“
Tento soubor již existuje a obsahuje zakomentovanou vzorovou konfiguraci. Tu můžeme buď upravit (pokud chcete zažít opravdové peklo, zkuste editor vi, napsáním „vi /etc/config/lxc-auto“), nebo prostě jen přidejte řádky do stávajícího souboru pomocí příkazu cat. Pojďme na to, krok po kroku.
Jak ovládat editor vi
Pro aktivování funkcí editoru vi stiskneme klávesu „ESC“, tím se nám dole v editoru zobrazí příkazový řádek, do kterého můžeme psát. Zadáváme příkaz, který potřebujeme a nakonec stiskneme ENTER.
Vyhledávání
/allow_anonymous hledá následující výskyt řetězce „allow_anonymous“
?allow_anonymous hledá předchozí výskyt řetězce „allow_anonymous“
n (next) opakuje poslední hledání
N (Next) opakuje poslední hledání směrem zpět
:wq uložení změn a ukončení editoru
:q! zkončení editoru bez uložení změn
- 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
- Zadejte heslo do administrace LuCI
- Zkontrolujte, zda jste opravdu root@turris:~# a zadejte následující příkaz. Část „HomeAssistant“ v mém příkladu, je název LXC kontejneru. Pokud jste zvolili jiný název, např. Hassio, nezapomeňte příkaz upravit.
cat <<EOF >> /etc/config/lxc-auto config container option name HomeAssistant option timeout 60 EOF
Automatické spuštění Home Assistant
Automatické spouštění Home Assistant nám zařídí linuxová služba systemd. Následujícím postupem vytvoříme soubor s šablonou, která automatické spuštění provede.
- Zůstáváme v terminálu a příkazem lxc-attach -n nazev_kontejneru připojíme LXC kontejner. Pokud jste kontejner pojmenovali „HomeAssistant“, stejně jako já, použijete příkaz
lxc-attach -n HomeAssistant
Ujistíme se, že jsme v terminálu jako „root@homeassistant:~#“
- Zkopírujeme všechny následující řádky do terminálu a stiskneme enter. Tím vytvoříme soubor, jehož obsah začíná 2. řádkem kopírovaného textu (kódu) a končí předposledním řádkem.
cat <<EOF >> /etc/systemd/system/home-assistant@homeassistant.service [Unit] Description=Home Assistant After=network.target [Service] Type=simple User=homeassistant ExecStart=/srv/homeassistant/bin/hass -c "/home/homeassistant/.homeassistant" [Install] WantedBy=multi-user.target EOF
- Načteme novou konfiguraci systému
systemctl --system daemon-reload
- Povolíme službu pro automatické spuštění
systemctl enable home-assistant@homeassistant
Na tento příkaz se nám v terminálu zobrazí odpověď: Created symlink /etc/systemd/system/multi-user.target.wants/home-assistant@homeassistant.service → /etc/systemd/system/home-assistant@homeassistant.service.
- Nyní můžeme znovu spustit Home Assistant a zkontrolovat jeho funkčnost. Případně rovnou restartovat router.
systemctl start home-assistant@homeassistant
- Restartujeme router. LXC kontejner a v něm Home Assistant se již sám spustí
Ahoj, tohle jsem taky používal, ale od Turris OS 6 je k dispozici docker a na něm je použití Home Assistentu jednodušší – viz můj příspěvek na Turris fóru: https://forum.turris.cz/t/docker-on-turris-os-6/18328/5?u=cendalc