Zum Inhalt

Home Assistant Config

Modulare Home Assistant Konfiguration als Git-Repo, direkt als /config-Volume des HA-Docker-Containers auf dem Intel NUC gemountet.

  • Repo: ha-config
  • Pfad auf dem NUC: /opt/ha-config
  • Entwicklung: /home/coder/repos/ha-config

Architektur

Packages Pattern

Alle Domainlogik liegt in packages/*.yaml via !include_dir_named packages/. Ein Package = ein Thema = eine Datei. Jedes Package buendelt eigene Helfer (input_number, input_boolean), Template-Sensoren, Plattform-Sensoren, Utility Meter und Automationen.

configuration.yaml ist bewusst minimal gehalten — enthaelt nur:

  • Globale HA-Settings (Name, Zeitzone, Koordinaten via !secret)
  • Die packages: Include-Direktive
  • Prometheus-Endpoint-Config (fuer das Monitoring-Repo)
  • Standard-Includes fuer HA-UI-verwaltete Dateien (automations.yaml, scripts.yaml, scenes.yaml)

Packages

Package Beschreibung
energy_monitoring.yaml PowerCalc-Integration, Stromverbrauch/-kosten-Sensoren, Utility Meter (taeglich/woechentlich/monatlich/jaehrlich), Standby-Warnungen, Waschmaschinen-Fertig-Erkennung
heating.yaml Heizungssteuerung fuer 8 Raeume (Arbeitszimmer, Wohnzimmer, Badezimmer, Kueche, Esszimmer, Schlafzimmer, Abstellraum) mit Zeitplaenen und Urlaubsmodus
homekit.yaml Drei separate Apple HomeKit Bridges (Power, Climate, Fan) mit Entity-Filterung
influxdb.yaml InfluxDB v2-Anbindung fuer State-Tracking und Langzeit-Daten

Secrets

Alle sensitiven Werte nutzen !secret-Referenzen. secrets.yaml ist gitignored. secrets.yaml.example ist das Template und muss synchron gehalten werden — validate-config.sh prueft, dass alle referenzierten Secret-Keys in der Example-Datei existieren.

Aktuell verwaltete Secrets: home_latitude, home_longitude, home_elevation, influxdb_token.

Prometheus-Anbindung

Home Assistant exportiert Metriken unter dem Namespace homeassistant fuer den Monitoring-Stack. Gefilterte Entity-Gruppen:

  • sensor.shelly_pro_3em_* — Phasenleistung des 3EM
  • sensor.stromverbrauch_* / sensor.stromkosten_* — Verbrauch und Kosten
  • sensor.energy_* — Forecast-Sensoren
  • sensor.nous_* — Smart-Plug-Leistungsdaten
  • sensor.usv_* / sensor.ups_* — USV-Metriken
  • sensor.powercalc_* — Virtuelle Leistungssensoren
  • input_number.strompreis — Aktueller Strompreis

AppDaemon

Energy Forecast

ML-basierte 48-Stunden-Stromverbrauchsprognose via ha-energy-forecast.

  • Input: sensor.stromverbrauch_total_energy (kumulativer kWh-Zaehler)
  • Wetterdaten: Open-Meteo (kostenlos, kein API-Key)
  • Adaptives Re-Training: Schwellenwert 2.0
  • Backfill: 90 Tage aus der Recorder-Datenbank (einmalig)

Erzeugte Sensoren:

Sensor Beschreibung
sensor.energy_forecast_today / _tomorrow Tagesverbrauch-Prognose (kWh)
sensor.energy_forecast_today_00_03 bis _21_24 3-Stunden-Bloecke (8 pro Tag)
sensor.energy_forecast_next_3h Rollierender 3h-Ausblick
sensor.energy_forecast_model_mae Vorhersagegenauigkeit
sensor.energy_forecast_today_low / _high 80%-Konfidenzintervall

Dashboards

Energie Live (dashboards/energy/energy-live.yaml)

Echtzeit-Energieuebersicht mit drei Bereichen:

  1. Kennzahlen — Aktuelle Leistung (W), Tagesverbrauch (kWh), Tageskosten, Server-Last
  2. Power Flow Card Plus — Energiefluss-Diagramm: Netz → Einzelverbraucher (Server-Rack, Kuehlschrank, Waschmaschine, Geschirrspueler)
  3. Energy Sankey Card — Sankey-Diagramm mit Verteilung auf 7 Kategorien

Validierung

# YAML-Syntax-Check + Secret-Referenz-Validierung
./scripts/validate-config.sh

# Schneller YAML-Check fuer einzelne Datei
python3 -c "import yaml; yaml.safe_load(open('packages/energy_monitoring.yaml'))"

validate-config.sh prueft in zwei Schritten:

  1. YAML-Syntax: Jede Config-Datei wird einzeln mit PyYAML geladen
  2. Secret-Referenzen: Alle !secret-Keys werden gegen secrets.yaml.example abgeglichen

Es gibt keine CI-Pipeline. Validierung ist manuell vor dem Commit. Nach dem Push: In HA unter Entwicklerwerkzeuge → YAML → "Alles neu laden". Ein vollstaendiger HA-Neustart ist nur bei neuen Packages oder neuen Integrationen noetig.

Hilfsskripte

Skript Beschreibung
scripts/validate-config.sh YAML-Syntax + Secret-Validierung (siehe oben)
scripts/dump-energy-entities.sh Dumpt alle Energie-Entities via HA REST API — nuetzlich fuer Debugging und Inventarisierung

Hardware-Abhaengigkeiten

Geraet Typ Verwendung
Shelly Pro 3EM Energiemessung Stromverbrauch pro Phase (3-phasig)
NOUS A7Z (4x) Zigbee-Steckdosen Geraete-Monitoring (Kuehlschrank, Waschmaschine, Geschirrspueler, Wasserkocher)
CyberPower USV USV (NUT) Stromausfallschutz, Server-Last-Monitoring
ESP32/ESP8266 ESPHome Diverse Sensoren

HACS-Abhaengigkeiten

Komponente Typ Verwendung
PowerCalc Integration Virtuelle Leistungssensoren fuer Geraete ohne eigene Messung
Power Flow Card Plus Frontend Echtzeit-Energiefluss-Visualisierung im Dashboard
Energy Sankey Card Frontend Sankey-Diagramm fuer Energieverteilung

Multi-Repo-Strategie

Dieses Repo enthaelt ausschliesslich HA-Konfiguration. Prometheus/Grafana/VictoriaMetrics leben im separaten Homeserver-Repo. Referenz-Snippets fuer das Monitoring-Repo (Scrape-Configs, Alert-Rules, Grafana-Provisioning) liegen unter docs/monitoring-additions/ — das ist Dokumentation, keine Live-Config.

Dokumentation im Repo

Datei Inhalt
docs/SETUP.md Neuinstallation (Git Clone, Secrets, Docker, AppDaemon)
docs/MIGRATION.md 4-Phasen-Migrationsanleitung fuer bestehende HA-Installationen
docs/ENERGIE_DASHBOARD_KONZEPT.md Vollstaendiges Energie-Monitoring-Architekturkonzept
docs/monitoring-additions/ Referenz-Snippets fuer Prometheus Scrape-Config, Alert-Rules und Grafana-Provisioning