Zum Hauptinhalt springen
  1. Beiträge/
  2. Kleines Homelab/
  3. k3s-prod: Kubernetes Cluster Konfiguration und Anwendungsbereitstellung/

Home Assistant

Inhaltsverzeichnis

Home Assistant
#

Deployment
#

Argo Deployment

Quelle
#

Die Anwendung wird als Helm-Chart aus einem privaten Repository auf git.zyria.de bezogen. Das verwendete Docker-Image ist die offizielle home-assistant-Version.

Dokumentation
#

Die offizielle Dokumentation von Home Assistant ist unter www.home-assistant.io/docs/ zu finden.

Funktion
#

Home Assistant (HA) ist eine Steuerungszentrale für Smart-Home-Geräte. Es integriert eine breite Palette von Geräten und Protokollen (z.B. Zigbee, Matter) und ermöglicht es, Automatisierungen zu erstellen, den Zustand von Geräten zu überwachen und alles über eine einheitliche Weboberfläche zu steuern.

Lokale Anpassungen
#

Die Konfiguration erfolgt über die values.yaml-Datei.

Wichtige Einstellungen
#

  • Host-Netzwerk: Home Assistant wird im hostNetwork-Modus betrieben, um die automatische Erkennung von Geräten im lokalen Netzwerk (z.B. über mDNS, UPnP) zu erleichtern.
  • Node Selector: Der Pod wird auf einem bestimmten Node mit dem Label conbee: "true" ausgeführt, an dem die für den Betrieb notwendige Hardware angeschlossen ist.
  • Geräte-Passthrough: Mehrere Geräte werden vom Host-System in den Pod durchgereicht:
    • /dev/ttyACM0: Ein Z-Wave/Zigbee-USB-Stick.
    • /dev/serial/by-id/...ConBee_II...: Ein ConBee II Zigbee-Gateway.
  • Matter-Server: Ein Matter-Server läuft als Sidecar-Container, um die Integration von Matter-Geräten zu ermöglichen.
  • Speicher: Die gesamte Konfiguration von Home Assistant wird persistent auf einem HostPath-Volume gespeichert.

Installation
#

Die Anwendung wird mittels Kustomize und Helm durch ArgoCD im Kubernetes-Cluster bereitgestellt. Die Konfiguration befindet sich im apps/home-assistant-Verzeichnis. Eine manuelle Installation kann mit folgendem Befehl durchgeführt werden:

1kubectl kustomize --enable-helm apps/home-assistant | kubectl apply -n home-assistant -f -

Abhängigkeiten
#

  • Spezifische Hardware: Benötigt einen Kubernetes-Node mit angeschlossenen USB-Geräten (ConBee II Stick).
  • NFS: Ein NFS-Server wird für das persistente Speichern der Konfiguration benötigt.
Per E-Mail antworten
Fabrice Kirchner
Autor
Fabrice Kirchner
stolzer Vater, Nerd, Admin