Dieses Repository enthält eine Steuerlogik für eine ON/OFF Wärmepumpe und EVCC Mechanismus für Home Assistant. Die Idee hinter der Steuerung der Heizung kam aus Energie&Hobby - Wärmepumpe frisst Strom? Nicht mehr nach diesem Trick! und da ich keine Hysterese oder ähnliches in meiner Viessmann Vitocal 300-G BWC 301.B17 einstellen konnte habe ich überlegt, wie ich die Taktung trotzdem verlängern kann. Einfach erklärt, sobald ich mit bekomme, dass der Kompressor Anspringt gehe ich in den Komfort-Modus und warte bis der Pufferspeicher eine gewisse Sättigung erfahren hat. Der EVCC Mechanismus ist mir im Chatten mit Gemini gekommen. Ich habe vorher über die Home Assistant REST API die Calls durchgeführt und wollte von Gemini wissen ob und wie es mit MQTT zu lösen ist. Das Warmwasser Management ist eigentlich recht unspektakulär, da war die Idee einfach was ich Manuell die letzte Zeit gemacht habe das ich es automatisiere.
- Gradient-Based-Cutoff: Die Abschaltung erfolgt nicht nach Erreichen einer fixen Temperatur, sondern basierend auf der thermischen Sättigung des Pufferspeichers (Ableitung nähert sich Null).
- Smart-Grid & Preis-Optimierung: Volle Integration von Octopus Energy (Intelligent Go) zur Nutzung günstiger Nachtfenster.
- Dynamische Hysterese: Automatische Anpassung der Warmwasser-Parameter basierend auf Solcast PV-Prognosen und Strompreis.
- EVCC MQTT-Bridge: Bidirektionale Kommunikation zur Steuerung der WP-Modi und Warmwasserladung über EVCC.
- Transparenz: Getrennte Leistungsmessung für Heizung und Warmwasser zur COP-Analyse.
- Wirtschaftlichkeits-Check: Live-Berechnung der Ersparnis durch Octopus Energy (Intelligent Go) & PV Preise.
graph TD
subgraph "Energiemarkt & Logik (EVCC)"
E[EVCC] -- "MQTT: ha_bridge/.../set" --> B
P[Börsenstrompreis / PV] --> E
end
subgraph "Home Assistant (Die Brücke)"
B[evcc_bridge.yaml] -- "Übersetzt Befehle" --> L[waermepumpe_management.yaml]
L -- "Berechnet Sättigung (Ableitung)" --> V
B -- "Status Update MQTT" --> E
end
subgraph "Hardware (Physische Ebene)"
V[Viessmann WP / ViCare]
W[Wallbox / Charger]
end
Für ein tiefes Verständnis der physikalischen Zusammenhänge und der Entscheidungsmatrix besuche bitte den: [cite_start]👉 Logik-Workflow & Entscheidungsmatrix
Damit dieses System funktioniert, müssen folgende Komponenten installiert und konfiguriert sein:
- Wärmepumpe: Viessmann Vitocal (oder kompatibel) via ViCare Integration oder Modbus.
- EVCC: Als zentraler Energiemanager für PV-Überschuss und dynamische Tarife.
- MQTT Broker: (z.B. Mosquitto) für die Kommunikation zwischen EVCC und Home Assistant.
- HACS: Zur Installation der Frontend-Karten.
- ApexCharts-Card: Für die detaillierte Takt- und Gradienten-Analyse.
- Mini-Graph-Card: Für kompakte Verlaufsanzeigen.
- Solcast PV Forecast: Zur Ermittlung der prognostizierten Sonnenenergie.
Die Kommunikation erfolgt bidirektional über einen MQTT-Broker. Home Assistant fungiert hierbei als Bridge zwischen der Wärmepumpen-Hardware und EVCC.
| Topic | Richtung | Funktion |
|---|---|---|
ha_bridge/heizung/mode/set |
EVCC ➔ HA | Setzt den Betriebsmodus (1: Eco, 2: Home, 3: Comfort) |
ha_bridge/heizung/mode/state |
HA ➔ EVCC | Aktueller Status des Heizungs-Preset-Modes |
ha_bridge/warmwasser/mode/set |
EVCC ➔ HA | Trigger für einmalige WW-Ladung (Payload: "3") |
ha_bridge/warmwasser/mode/state |
HA ➔ EVCC | Status der Warmwasser-Ladung (2: Standby, 3: Aktiv) |
ha_bridge/warmwasser/temp |
HA ➔ EVCC | Aktuelle Speichertemperatur des Warmwassers |
ha_bridge/warmwasser/target_temp |
HA ➔ EVCC | Aktuelle Zieltemperatur des Warmwasserspeichers |
Um die Wärmepumpe in EVCC als steuerbares Gerät einzubinden, kann die folgende Konfiguration verwendet werden. Diese nutzt die oben definierten MQTT-Topics der Home Assistant Bridge:
# Beispielhafte Einbindung in die evcc.yaml für Warmwasser-Steuerung
waterheating:
- name: my_heatpump
type: custom
setmode:
source: mqtt
topic: ha_bridge/warmwasser/mode/set
payload: ${mode}
getmode:
source: mqtt
topic: ha_bridge/warmwasser/mode/state
temp:
source: mqtt
topic: ha_bridge/warmwasser/temp
limittemp:
source: mqtt
topic: ha_bridge/warmwasser/target_tempFunktionsweise der Bridge
setmode: Wenn in EVCC eine Ladung angefordert wird (Payload "3"), empfängt der evcc_bridge: Command Receiver dies und löst die button.cu401b_g_warmwasser_einmalige_ladung in HA aus.
getmode & temp: Home Assistant sendet bei jeder Statusänderung (z. B. Kompressor-Start oder Temperatur-Update) die aktuellen Werte aktiv via MQTT an EVCC zurück.
Heizungssteuerung: Über das Topic ha_bridge/heizung/mode/set kann EVCC den Preset-Mode der Heizung (eco, comfort oder home) direkt umschalten und auch Bereit für EnWG §14a.
/packages: Enthält die gesamte YAML-Logik (Sensoren, Templates, Automationen)./dashboards: Enthält die Konfiguration der Lovelace-Views inkl. ApexCharts./docs: Zusätzliche Dokumentation und Screenshots.
- Packages aktivieren: Stelle sicher, dass Packages in deiner
configuration.yamlaktiviert sind:homeassistant: packages: !include_dir_named packages
- Dateien kopieren: Kopiere
waermepumpe_management.yamlundevcc_bridge.yamlin deinenpackages-Ordner. - Entitäten anpassen: Ersetze alle Platzhalter-Entitäten (z.B.
sensor.cu401b_g_...) durch deine tatsächlichen Entitäten. - Dashboard importieren: Erstelle eine neue Dashboard-Ansicht und kopiere den Inhalt aus
01_wp_analyse_gradient.yaml,02_wp_wirtschaftlichkeit.yaml,03_wp_status_steuerung.yamlund04_wp_vicare_system.yamlhinein.
Die Dashboard-Konfigurationen sind in vier Module unterteilt. So kannst du gezielt die Komponenten wählen, die zu deinem Setup passen.
Fokus auf die Visualisierung der Sättigungskurve und Takt-Dauer.
Datei: dashboards/01_wp_analyse_gradient.yaml
Anzeige von Kosteneffizienz, Sparstunden und Energiequelle.
Datei: dashboards/02_wp_wirtschaftlichkeit.yaml
Bedienelemente für EVCC-Modi und Warmwasser-Ladung.
Datei: dashboards/03_wp_status_steuerung.yaml
Native Sensoren der ViCare-Integration (individuell anpassbar).
Datei: dashboards/04_wp_vicare_system.yaml
Important
[cite_start]Da die ViCare-Integration je nach Wärmepumpen-Modell unterschiedliche Entitätsnamen vergibt, dient Modul 04 primär als Referenz.
Der Takt-Manager überwacht den Status binary_sensor.wp_status_heizbetrieb. Bei Aktivierung wird die Komforttemperatur angehoben, um einen langen Takt zu erzwingen. Der Takt endet erst, wenn:
- Der Sättigungspunkt erreicht ist (Ableitung < Zielwert).
- Ein Warmwasser-Vorrang angefordert wird.
- Die Wärmepumpe intern abschaltet.
Um die Vitosolic S1 in Home Assistant einzubinden, wird ein physischer NTC 20k Sensor simuliert. Dies ermöglicht die Nutzung von Funk-Sensoren (z.B. LoRaWAN) zur Steuerung der Solar-Luftabsorber einer Eisheizung.
- Galvanische Trennung: 100% Schutz der Heizungsregelung durch den ISO1640 I2C-Isolator.
- Plug & Play: Aufbau basierend auf dem easyC/Qwiic-System für eine einfache und sichere Verkabelung.
- Präzision: Mathematisch exakte Nachbildung der NTC-Kennlinie via Home Assistant Template.
- Boards verbinden: Dasduino Connect ➔ Pololu ISO1640 ➔ 100k Digipot (alles via easyC Kabel).
- Anschluss: Poti-Ausgang mit dem S1-Eingang der Vitosolic verbinden.
- Logik: YAML-Templates für Home Assistant übernehmen (siehe Dokumentation).
👉 Detaillierte Hardware-Dokumentation, Schaltpläne und 3D-Druck-Infos findest du hier (HARDWARE.md)
Dieses Projekt steht unter der MIT-Lizenz.
- EVCC: Übernimmt die Logik für "Wann ist Strom günstig?" und "Haben wir PV-Überschuss?".
- MQTT: Dient als Protokoll-Brücke. EVCC sendet auf Topics wie
ha_bridge/heizung/mode/set, die HA-Bridge übersetzt dies inclimate-Befehle. - waermepumpe_management.yaml: Hier findet die "Physik" statt – die Berechnung der Ableitungen und die Steuerung der Hysterese.
- Core-Logik: Implementierung der Gradienten-Überwachung (Ableitung) zur thermischen Sättigungserkennung und Taktoptimierung.
- Energy Management: Integration dynamischer Octopus Energy Tarife (Intelligent Go) via EVCC MQTT-Bridge.
- Smart Hot Water: Einführung der prädiktiven Warmwasser-Hysterese basierend auf Solcast-PV-Prognosen und Netz-Lade-Erlaubnis.
- Monitoring: Launch des Analyse-Dashboards mit ApexCharts zur Visualisierung von Ist-Ableitung vs. Ziel-Limit.
- Schnittstellen: Bidirektionale Kommunikation zwischen EVCC und Home Assistant für WP-Modi und Ladestatus.
- §14a EnWG Integration: Vorbereitung auf Modul 3 zur automatisierten Reaktion auf variable Netzentgelte.
- AI-Sättigungs-Prognose: Einbindung von maschinellem Lernen zur dynamischen Anpassung der Abschaltschwelle je nach Gebäude-Außentemperatur-Gradient.
- COP-Live-Analyse: Echtzeit-Effizienzberechnung durch Zusammenführung von thermischen Abgabedaten und elektrischer Leistungsaufnahme.
- Auto-Calibration: Automatisches Einmessen der optimalen Ableitungs-Zielwerte während der Übergangszeit.