GNU/Linux >> Znalost Linux >  >> Linux

Domácí automatizace:Spuštění Home Assistant s Podmanem

Chytrá zařízení nás obklopují a dlouhý seznam zařízení, která jsou připravena k připojení k internetu věcí (IoT), se každým dnem prodlužuje. Například popularita chytrých žárovek za posledních několik let rychle vzrostla a trh nadále roste, a to natolik, že se předpokládá, že půjde o „nejrychleji rostoucí zařízení pro chytrou domácnost v příštích pěti letech“. Zatímco na trhu dominuje několik velkých jmen v oboru, existuje mnoho menších konkurentů, kteří se připojují k boji a nabízejí levnější alternativy s ještě více funkcemi. To je skvělé pro konkurenci, ale vyvolává to jednu vážnou obavu a situaci, kterou mnoho systémových administrátorů až příliš dobře zná – integrační noční můru.

[ Také by se vám mohlo líbit: Pomoc s výzkumem COVID-19 pomocí Folding@home v systému Linux ]

Problém je v tom, že každý výrobce má tendenci poskytovat vlastní vestavěné a uzavřené zdrojové řešení pro ovládání svých zařízení – obvykle ve formě mobilní aplikace. Co se ale stane, když se rozhodnete koupit nové zařízení od jiného výrobce, než kterého jste již integrovali do své domácí automatizace? Je pravděpodobné, že budete muset k ovládání zařízení používat více aplikací a nezačínejme mluvit o tom, jak je přimět ke spolupráci nějakým druhem automatizovaného způsobu. Existují cloudové služby, které pomáhají tento problém vyřešit a poskytují prostředky pro vytváření aplikací a automatizaci pro ovládání zařízení od různých výrobců. Tyto služby nabízejí skvělou platformu pro nastartování vaší cesty k automatizaci chytrých zařízení, ale tyto služby obvykle fungují s placeným předplatným nebo na velmi omezených „freemium“ modelech a zjistíte, že se na tuto cloudovou službu budete stále více spoléhat. .

V roce 2013 byl zahájen projekt s otevřeným zdrojovým kódem, který řeší tyto druhy problémů a přináší místní ovládání chytrých zařízení z cloudu a zpět do domácnosti. Dnes je projekt silný, s více než 2 500 přispěvateli a často se objevují nové integrace a funkce. V tomto článku vám představím open source platformu pro automatizaci domácnosti s názvem Home Assistant.

Nasazení kontejneru Home Assistant

Home Assistant lze nasadit pomocí různých instalačních metod, z nichž doporučeným způsobem je nasazení Home Assistant OS, který je dodáván se vším, co potřebujete. Pro tuto ochutnávku však použijeme obrázek kontejneru, který nám poskytne rychlý náhled na to, jak Home Assistant funguje. Následující kroky předpokládají, že již máte na svém systému nasazené runtime kontejneru, jako je například Podman. Home Assistant pracuje na portu TCP 8123, takže se musíte ujistit, že tento port již není ve vašem systému používán.

1. Začněte vytažením obrázku kontejneru:

$ podman pull docker.io/homeassistant/home-assistant:stable

2. Nastavte konfigurační adresář:

$ mkdir ~/hass_config

3. Rozmístěte kontejner pomocí Podman:

$ podman run --init -d \
--name homeassistant \
--restart=unless-stopped \
-v /etc/localtime:/etc/localtime:ro \
-v ~/hass_config:/config:Z \
--network=host \
homeassistant/home-assistant:stable

4. Jakmile je kontejner v provozu, otevřete preferovaný webový prohlížeč a přejděte na http://127.0.0.1:8123/ . Vytvořte svůj uživatelský účet správce vyplněním požadovaných polí.

5. Pokud již máte nějaká chytrá zařízení připojená k domácí síti, můžete na další obrazovce zjistit, že je Home Assistant již objevil a prezentuje je jako integrace k okamžité instalaci. Tento krok přeskočíme a v další části si projdeme, jak nastavit integrace. Klikněte na Dokončit přejděte do grafického uživatelského rozhraní Lovelace GUI Home Assistant a trochu prozkoumejte okolí, abyste se seznámili s rozložením země.

Poznámka :Pokud si všimnete, že některé položky nabídky chybí nebo se v protokolu Home Assistant objeví chybová zpráva, jako je tato:

Nelze nastavit závislosti default_config. Nastavení se nezdařilo pro závislosti:automatizace.

Jednoduše restartujte Home Assistant prostřednictvím Konfigurace -> Ovládací prvky serveru -> Restartovat .

Integrace a automatizace

S nasazeným kontejnerem Home Assistant se pustíme do konfigurace. Integrace v Home Assistant nám dává možnost propojit se s externími vstupy, ať už se jedná o online API, jako je jízdní řád veřejné dopravy, nebo fyzické chytré zařízení, jako je světelný pásek LED nebo chytrý zvlhčovač. V době psaní tohoto článku nabízí Home Assistant sbírku 1 765 integrací a tato knihovna rychle roste. Zjistíte, že mnoho velkých značek je již podporováno, a pokud váš domov již obsahuje nějakou chytrou žárovku, televizi nebo kávovar, pak je velká šance, že Home Assistant již má integraci. Pokud ne a chcete si ušpinit ruce, projekt je open source, hostovaný na GitHubu a neustále hledá příspěvky!

Pro tento příklad nastavím Met.no integrace pro získávání předpovědí počasí v severských zemích. Pokud chcete, můžete využít jiného poskytovatele meteorologických služeb.

  1. V GUI Home Assistant přejděte na Konfigurace -> Integrace -> Přidat integraci . Vyhledejte „Meteorologisk institutt (Met.no)“ a zadejte požadovaný název, zeměpisnou šířku a délku. Možná je již za vás vyplnil Home Assistant, ale pokud ne, můžete je získat jinde na internetu a zadat je sami.
  2. Klikněte na tlačítko Odeslat a poté Dokončit pro přidání integrace do vaší konfigurace Home Assistant. Pomocí navigačního panelu vlevo klikněte na Přehled přejděte do svého grafického rozhraní Lovelace.
  3. Ve výchozím nastavení je Home Assistant nakonfigurován tak, aby za vás automaticky vyplnil grafické uživatelské rozhraní Lovelace, ale v určitém okamžiku budete chtít převzít kontrolu a nastavit jej tak, jak chcete. Klikněte na ikonu nabídky kebab (tři svislé tečky) nahoře vpravo a vyberte Upravit panel -> Převzít kontrolu .
  4. Klikněte na tlačítko Přidat kartu a jako typ karty vyberte Předpověď počasí . Poté se zobrazí možnosti konfigurace pro tuto kartu. Ve většině případů za vás Home Assistant automaticky vybere správnou entitu, ale v případě potřeby můžete entitu změnit pomocí rozbalovací nabídky. V mém případě jsem své integraci Met.no dal název „Home“, takže entita se automaticky jmenuje „weather.home“. Nastavil jsem také Sekundární atribut na "Rychlost větru."
  5. Po stisknutí tlačítka Uložit , karta je přidána do GUI Lovelace. Karty můžete odstranit kliknutím na ikonu nabídky kebab v pravém dolním rohu příslušné karty a výběrem možnosti Smazat kartu . Po dokončení úprav řídicího panelu stiskněte X nahoru vlevo nahoře pro návrat do režimu zobrazení.

Nyní, když jsme přidali integraci, můžeme se podívat na nastavení automatizace. Vytvoříme automatizaci, která každé ráno odešle krátkou zprávu o počasí do vašeho telefonu prostřednictvím push notifikace. Aby to fungovalo, budete si muset do svého mobilního zařízení nainstalovat aplikaci Home Assistant a přihlásit se. Po přihlášení se váš telefon začne hlásit zpět na váš server Home Assistant. Podívejte se do části Konfigurace -> Entity , najdete seznam různých senzorů, které váš telefon hlásí zpět do Home Assistant. Mezi vaším telefonem a kontejnerem Home Assistant v místní síti musí být povolena komunikace přes TCP port 8123, takže možná budete muset odpovídajícím způsobem upravit pravidla brány firewall.

1. Přejděte na Konfigurace -> Automatizace -> Přidat automatizaci -> Začněte s prázdnou automatizací .

2. Automatizaci pojmenujte „Ranní zpráva o počasí.“

3. V části Spouštěče , vyberte Ne pro typ a zajištění Událost je nastaven na Východ slunce . Můžete přidat posun, například „01:00:00“ na jednu hodinu po východu slunce nebo „-01:00:00“ na jednu hodinu před východem slunce. Můžete také jednoduše nastavit pevný čas pomocí Času typ.

4. V části Akce , nastavte typ na Volání služby a nastavte Službu na "notify.mobile_app_your_phone_model" . Pro Službu data, potřebujeme zapsat naši konfiguraci ve formátu YAML a ke spuštění některých podmíněných příkazů použijeme šablonu Jinja2. Další informace o šablonách najdete v Asistentovi domácnosti.

title: Weather Report
message: >-
  The current temperature is {{state_attr("weather.home", "temperature") }} degrees
  with an expected maximum of {{ state_attr("weather.home","forecast")[0]["temperature"] }} degrees.
  {%if state_attr("weather.home", "forecast")[0]["precipitation"] | float == 0 %}
    There is no rain forecast today
  {% else %}
    You can expect {{ state_attr("weather.home","forecast")[0]["precipitation"] }}mm of rain today
  {% endif %}
  {% if state_attr("weather.home","wind_speed") | float > 20%}
    and it's a little windy outside, so hold on to your hat!
  {% else %}
    and it's not too windy.
  {% endif %}

5. Stiskněte modré tlačítko Uložit tlačítko pro uložení automatizace. Na stránce Automatizace můžete otestovat svou lesklou, novou automatizaci kliknutím na Provést . Nyní byste měli mít na telefonu push oznámení s krátkou zprávou o počasí od Home Assistant, která vypadá asi takto:

[ Potřebujete více o Ansible? Absolvujte bezplatný kurz technického přehledu od společnosti Red Hat. Ansible Essentials:Jednoduchost v technickém přehledu automatizace. ] 

Sbalit

Toto je základní instalace, konfigurace a nasazení Home Assistant. Nastavil jsem novou integraci na ovládacím panelu Lovelace a umožnil jsem vám nahlédnout do automatizace. I když jsem stěží poškrábal povrch hojnosti integrací, automatizací a konfigurovatelnosti Home Assistant, měl by vám alespoň dát ochutnat, co je možné. Díky plnému využití nabídky Home Assistant objevíte téměř nekonečné množství možností; jste opravdu omezeni pouze svou představivostí. Pokud se vám tento krátký úvod líbil, doporučuji pokračovat v hraní si s obrázkem kontejneru, abyste získali představu o tom, co pro vás Home Assistant může udělat. Pokud chcete nastavit produkční prostředí, podívejte se na Home Assistant OS.


Linux
  1. Spuštění rootless Podman jako uživatel bez root

  2. Automatizace hesel SSH v Linuxu pomocí sshpass

  3. Sdílení doplňkových skupin s kontejnery Podman

  1. Spravujte domovské adresáře uživatelů Linuxu pomocí systemd-homed

  2. Jak odstranit uživatelské účty pomocí domovského adresáře v systému Linux

  3. Spuštění skriptu s „. “ A se „zdrojem“?

  1. Náhled technologie:Spuštění kontejneru uvnitř kontejneru

  2. pytest běžící s jinou verzí pythonu

  3. Dochází vám místo na disku v adresáři /home?