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 3EMsensor.stromverbrauch_*/sensor.stromkosten_*— Verbrauch und Kostensensor.energy_*— Forecast-Sensorensensor.nous_*— Smart-Plug-Leistungsdatensensor.usv_*/sensor.ups_*— USV-Metrikensensor.powercalc_*— Virtuelle Leistungssensoreninput_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:
- Kennzahlen — Aktuelle Leistung (W), Tagesverbrauch (kWh), Tageskosten, Server-Last
- Power Flow Card Plus — Energiefluss-Diagramm: Netz → Einzelverbraucher (Server-Rack, Kuehlschrank, Waschmaschine, Geschirrspueler)
- 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:
- YAML-Syntax: Jede Config-Datei wird einzeln mit PyYAML geladen
- Secret-Referenzen: Alle
!secret-Keys werden gegensecrets.yaml.exampleabgeglichen
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 |