GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Heimautomatisierung:Home Assistant mit Podman ausführen

Intelligente Geräte umgeben uns und die lange Liste der Geräte, die bereit sind, sich mit dem Internet der Dinge (IoT) zu verbinden, wird jeden Tag länger. Beispielsweise ist die Popularität intelligenter Glühbirnen in den letzten Jahren rapide gestiegen, und der Markt wächst weiter, so stark, dass es Prognosen zufolge „das am schnellsten wachsende Smart-Home-Gerät in den nächsten fünf Jahren“ sein wird. Während einige wenige große Namen auf dem Gebiet den Markt dominieren, treten viele kleinere Konkurrenten in den Kampf ein und bieten billigere Alternativen mit noch mehr Funktionen an. Das ist großartig für den Wettbewerb, aber es wirft eine ernsthafte Sorge auf und eine Situation, mit der viele Systemadministratoren nur allzu vertraut sind – ein Integrationsalbtraum.

[Das könnte Ihnen auch gefallen: Hilfe bei der COVID-19-Forschung mit Folding@home unter Linux]

Das Problem ist, dass jeder Hersteller dazu neigt, seine eigene integrierte und geschlossene Lösung zur Steuerung seiner Geräte bereitzustellen – normalerweise in Form einer mobilen App. Doch was passiert, wenn Sie sich für ein neues Gerät eines anderen Herstellers entscheiden, als das, das Sie bereits in Ihre Hausautomation integriert haben? Wahrscheinlich müssen Sie am Ende mehrere Apps verwenden, um die Geräte zu steuern, und lassen Sie uns nicht darüber sprechen, wie Sie sie auf irgendeine Art und Weise automatisiert zusammenarbeiten lassen können. Es stehen Cloud-Dienste zur Verfügung, um dieses Problem zu umgehen, indem sie Mittel zum Erstellen von Anwendungen und zur Automatisierung zum Steuern von Geräten verschiedener Hersteller bereitstellen. Solche Dienste bieten eine großartige Plattform, um Ihre Reise in die Automatisierung intelligenter Geräte anzukurbeln, aber diese Dienste werden in der Regel mit einem kostenpflichtigen Abonnement oder auf sehr begrenzten „Freemium“-Modellen betrieben, und Sie werden feststellen, dass Sie sich immer mehr auf diesen Cloud-basierten Dienst verlassen werden .

2013 wurde ein Open-Source-Projekt gestartet, um diese Art von Problemen anzugehen und die lokale Steuerung intelligenter Geräte aus der Cloud zurück ins Haus zu bringen. Heute läuft das Projekt mit über 2.500 Mitwirkenden und häufig eingeführten neuen Integrationen und Funktionen auf Hochtouren. In diesem Artikel stelle ich Ihnen die Open-Source-Hausautomatisierungsplattform namens Home Assistant vor.

Bereitstellen des Home Assistant-Containers

Home Assistant kann mit verschiedenen Installationsmethoden bereitgestellt werden, von denen die empfohlene Methode die Bereitstellung von Home Assistant OS ist, das mit allem ausgestattet ist, was Sie benötigen. Wir werden jedoch das Container-Image für diesen Vorgeschmack verwenden, der uns einen schnellen Einblick in die Funktionsweise von Home Assistant geben wird. Bei den folgenden Schritten wird davon ausgegangen, dass Sie bereits eine Containerlaufzeit auf Ihrem System bereitgestellt haben, z. B. Podman. Home Assistant arbeitet auf TCP-Port 8123, daher müssen Sie sicherstellen, dass dieser Port nicht bereits auf Ihrem System verwendet wird.

1. Ziehen Sie zunächst das Container-Image:

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

2. Richten Sie ein Konfigurationsverzeichnis ein:

$ mkdir ~/hass_config

3. Stellen Sie den Container mit Podman bereit:

$ 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. Sobald der Container betriebsbereit ist, öffnen Sie Ihren bevorzugten Webbrowser und gehen Sie zu http://127.0.0.1:8123/ . Erstellen Sie Ihr Admin-Benutzerkonto, indem Sie die erforderlichen Felder ausfüllen.

5. Wenn Sie bereits einige intelligente Geräte mit Ihrem Heimnetzwerk verbunden haben, stellen Sie möglicherweise auf dem nächsten Bildschirm fest, dass Home Assistant diese bereits erkannt hat und sie als Integrationen zur sofortigen Installation anzeigt. Wir werden diesen Schritt überspringen und im nächsten Abschnitt erläutern, wie Integrationen eingerichtet werden. Klicken Sie auf Fertig stellen , um zur Lovelace-GUI von Home Assistant zu gehen und ein wenig die Umgebung zu erkunden, um sich mit der Lage des Landes vertraut zu machen.

Hinweis :Wenn Sie feststellen, dass einige Menüpunkte fehlen oder eine Fehlermeldung wie die folgende in Ihrem Home Assistant-Protokoll erscheint:

Abhängigkeiten von default_config können nicht eingerichtet werden. Setup für Abhängigkeiten fehlgeschlagen:Automatisierung.

Starten Sie Home Assistant einfach über Konfiguration neu -> Serversteuerung -> Neustart .

Integrationen und Automatisierung

Lassen Sie uns mit Ihrem bereitgestellten Home Assistant-Container in die Konfiguration einsteigen. Integrationen in Home Assistant geben uns die Möglichkeit, mit externen Eingaben zu kommunizieren, sei es eine Online-API wie ein Fahrplan für öffentliche Verkehrsmittel oder ein physisches intelligentes Gerät wie eine LED-Lichtleiste oder ein intelligenter Luftbefeuchter. Zum Zeitpunkt des Verfassens dieses Artikels bietet Home Assistant eine Sammlung von 1.765 Integrationen an, und diese Bibliothek wächst schnell. Sie werden feststellen, dass viele große Marken bereits unterstützt werden, und wenn Ihr Zuhause bereits eine Art intelligente Glühbirne, einen Fernseher oder eine Kaffeemaschine enthält, besteht eine große Chance, dass Home Assistant bereits eine Integration dafür hat. Wenn nicht, und Sie möchten sich die Hände schmutzig machen, das Projekt ist Open Source, wird auf GitHub gehostet und sucht immer nach Beiträgen!

Für dieses Beispiel werde ich Met.no einrichten Integration zum Abrufen von Wettervorhersagen in Skandinavien. Sie können gerne einen anderen Wetterdienstanbieter verwenden, wenn Sie möchten.

  1. Navigieren Sie in der Benutzeroberfläche von Home Assistant zu Konfiguration -> Integrationen -> Integration hinzufügen . Suchen Sie nach „Meteorologisk institutt (Met.no)“ und geben Sie den gewünschten Namen, den Breitengrad und den Längengrad ein. Diese werden möglicherweise bereits von Home Assistant für Sie ausgefüllt, aber wenn nicht, können Sie diese an anderer Stelle im Internet abrufen und selbst eingeben.
  2. Klicken Sie auf Senden und dann Fertig stellen , um die Integration zu Ihrer Home Assistant-Konfiguration hinzuzufügen. Klicken Sie im Navigationsbereich auf der linken Seite auf Übersicht , um zu Ihrer Lovelace-GUI zu gelangen.
  3. Home Assistant ist standardmäßig so konfiguriert, dass es die Lovelace-GUI automatisch für Sie ausfüllt, aber irgendwann werden Sie die Kontrolle übernehmen und es so einrichten wollen, wie Sie es möchten. Klicken Sie oben rechts auf das Kebab-Menüsymbol (drei vertikale Punkte) und wählen Sie Dashboard bearbeiten aus -> Übernimm die Kontrolle .
  4. Klicken Sie auf Karte hinzufügen und wählen Sie als Kartentyp Wettervorhersage aus . Daraufhin werden Ihnen die Konfigurationsoptionen für diese Karte angezeigt. In den meisten Fällen hat Home Assistant automatisch die richtige Entität für Sie ausgewählt, aber Sie können das Dropdown-Menü verwenden, um die Entität bei Bedarf zu ändern. In meinem Fall habe ich meiner Met.no-Integration den Namen „Home“ gegeben, sodass die Entität automatisch „weather.home“ benannt wird. Ich habe auch das Sekundäre Attribut gesetzt zu "Windgeschwindigkeit."
  5. Nachdem Sie auf Speichern geklickt haben , wird die Karte zur Lovelace-GUI hinzugefügt. Sie können Karten entfernen, indem Sie auf das Döner-Menü-Symbol unten rechts auf der jeweiligen Karte klicken und Karte löschen auswählen . Wenn Sie mit der Bearbeitung des Dashboards fertig sind, klicken Sie auf das X oben links, um zum Ansichtsmodus zurückzukehren.

Nachdem wir nun eine Integration hinzugefügt haben, können wir uns mit der Einrichtung einer Automatisierung befassen. Wir werden eine Automatisierung erstellen, die jeden Morgen einen kurzen Wetterbericht per Push-Benachrichtigung an Ihr Telefon sendet. Damit dies funktioniert, müssen Sie die Home Assistant-App auf Ihrem Mobilgerät installieren und sich anmelden. Nach der Anmeldung beginnt Ihr Telefon mit der Rückmeldung an Ihren Home Assistant-Server. Indem Sie unter Konfiguration nachsehen -> Entitäten finden Sie eine Liste der verschiedenen Sensoren, die Ihr Telefon an Home Assistant zurückmeldet. Die Kommunikation über TCP-Port 8123 muss zwischen Ihrem Telefon und Ihrem Home Assistant-Container im lokalen Netzwerk zugelassen werden, daher müssen Sie möglicherweise Ihre Firewall-Regeln entsprechend anpassen.

1. Gehen Sie zu Konfiguration -> Automatisierungen -> Automatisierung hinzufügen -> Beginnen Sie mit einer leeren Automatisierung .

2. Benennen Sie die Automatisierung "Morgenwetterbericht."

3. Unter Trigger , wählen Sie Sonne aus für den Typ und stellen Sie Event sicher auf Sonnenaufgang eingestellt ist . Sie können einen Versatz hinzufügen, z. B. "01:00:00" für eine Stunde nach Sonnenaufgang oder "-01:00:00" für eine Stunde vor Sonnenaufgang. Sie können auch einfach eine feste Zeit festlegen, indem Sie die Zeit verwenden Typ.

4. Unter Aktionen , setzen Sie den Typ auf Service anrufen und stellen Sie den Dienst ein zu "notify.mobile_app_your_phone_model" . Für Service data müssen wir unsere Konfiguration im YAML-Format schreiben, und wir werden Jinja2-Vorlagen verwenden, um einige bedingte Anweisungen auszuführen. Weitere Informationen zum Erstellen von Vorlagen finden Sie in Home Assistant.

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. Klicken Sie auf das blaue Speichern Taste, um die Automatisierung zu speichern. Auf den Automatisierungen Seite können Sie Ihre glänzende, neue Automatisierung testen, indem Sie auf Ausführen klicken . Sie sollten jetzt eine Push-Benachrichtigung mit einem kurzen Wetterbericht von Home Assistant auf Ihrem Telefon haben, der ungefähr so ​​aussieht:

[ Brauchen Sie mehr zu Ansible? Nehmen Sie an einem kostenlosen technischen Überblickskurs von Red Hat teil. Ansible Essentials:Einfachheit in der Automatisierung Technischer Überblick. ] 

Abschluss

Dies ist eine einfache Installation, Konfiguration und Bereitstellung von Home Assistant. Ich habe eine neue Integration im Lovelace-Dashboard eingerichtet und Ihnen einen kleinen Einblick in Automatisierungen gegeben. Obwohl ich kaum an der Oberfläche der Fülle an Integrationen, Automatisierungen und Konfigurierbarkeit von Home Assistant gekratzt habe, sollte es Ihnen zumindest einen Vorgeschmack auf das geben, was möglich ist. Indem Sie die Angebote von Home Assistant voll ausschöpfen, werden Sie eine nahezu unendliche Anzahl von Möglichkeiten entdecken; Sie sind nur wirklich durch Ihre Vorstellungskraft begrenzt. Wenn Ihnen diese kurze Einführung gefallen hat, empfehle ich, weiterhin mit dem Container-Image herumzuspielen, um ein Gefühl dafür zu bekommen, was Home Assistant für Sie tun kann. Wenn Sie eine Produktionsumgebung einrichten möchten, sehen Sie sich Home Assistant OS an.


Linux
  1. Verwalten Sie die Home-Verzeichnisse von Linux-Benutzern mit systemd-homed

  2. Rootless Podman als Nicht-Root-Benutzer ausführen

  3. Technologievorschau:Ausführen eines Containers in einem Container

  4. Laufendes Skript mit „. “ Und mit „Quelle“?

  5. Kein Speicherplatz mehr im /home-Verzeichnis?

Beginnen Sie mit Sweet Home 3D unter Linux

Podman-Tutorial – Erste Schritte mit Podman

Automatisierung von ServiceNow mit Red Hat Ansible Automation Platform

So führen Sie Pods als systemd-Dienste mit Podman aus

Einführung in das Ausführen eines OpenVPN-Servers

Bash-Anfängerserie Nr. 10:Automatisierung mit Bash