⚡ Dynamische Stromkosten-Optimierung mit Home Assistant, EcoFlow & PV
Ich überwache den Stromverbrauch im Haus schon eine Weile mittels Home Assistant. Das funktioniert auch wirklich super mit den entsprechenden Einstellungen. Nach einiger Auswertung habe ich vor allem die Heizung als einen der größten Verbraucher ausgemacht. Ist ja auch klar: Pumpen laufen, der Heizkessel hat einen Lüfter – alles in allem wird ständig Strom verbraucht.
Zum Setup an sich: Ich habe einen Holzvergaser (wie ich den ein wenig smart gemacht habe, könnt ihr hier nachlesen) mit Warmwasser und Pufferspeicher. Zusätzlich gibt es noch eine Solarthermie-Anlage für den Sommer.
Dynamische Stromtarife wie z. B. Tibber ermöglichen es, Strom dann zu nutzen, wenn er günstig ist. Gleichzeitig steigen die Preise in bestimmten Zeitfenstern (typischerweise abends) deutlich an.
Die Idee:
👉 Günstigen Strom speichern und teuren Strom vermeiden
Für mich stand bei diesem Projekt die Frage im Raum, ob es sinnvoll ist, den Strom, wenn er tagsüber günstig ist, zu speichern und ihn dann abends für die Heizung zu nutzen. Da ich nicht gleich „in die Vollen“ gehen wollte, habe ich das Ganze erstmal im Kleinen getestet und meine EcoFlow River 2 Max als „Speicher“ dazwischengeschaltet.
Mein Aufbau sieht aktuell so aus:
Steckdose → Smart Plug → EcoFlow River 2 Max → Smart Plug → Heizung
Durch die Sensoren und Messwerte kann ich an der Stelle genau nachvollziehen, ob sich das Ganze lohnt oder nicht.
Zusätzlich wird eine vorhandene PV-Anlage integriert. Das Ganze ist eine Mietanlage, daher kann ich sie nicht direkt steuern – sonst wäre es natürlich deutlich einfacher.
Das System kombiniert:
- dynamische Strompreise
- Batteriespeicher (EcoFlow)
- PV-Überschuss
- intelligente Steuerung in Home Assistant
Inhalt
Inhaltsverzeichnis
🧠 Grundprinzip
Das System basiert auf drei einfachen Ideen:
- Strom ist nicht immer gleich teuer
- Energie kann zwischengespeichert werden
- PV-Strom kann effektiv „kostenlos“ genutzt werden
Ziel
- 🔋 Akku laden bei günstigem oder PV-Strom
- 🔥 Akku nutzen bei hohen Preisen
- ⚡ reale Kosten transparent messen
⚙️ Systemaufbau
Hardware
- EcoFlow River 2 Max
- Heizungsanlage (~200 W Dauerlast)
- PV-Anlage mit Wechselrichter
- Messsteckdosen (Shelly / ähnliche)
Relevante Sensoren
| Sensor | Bedeutung |
|---|---|
sensor.tibber_prices |
aktueller Strompreis |
sensor.sd_heizung_plug1 |
Gesamtverbrauch Heizung |
sensor.sd_heizung_plug2 |
Netzbezug |
sensor.stromzahler_wirkleistung |
Netzfluss (Import/Export) |
sensor.river2max_0902_battery_level |
Akkustand |
☀️ PV-Integration
Kernidee
👉 Wenn Strom eingespeist wird:
➡️ steht überschüssige Energie zur Verfügung
Umsetzung
- name: "PV Überschuss"
unit_of_measurement: "W"
state: >
{% set grid = states('sensor.stromzahler_wirkleistung') | float(0) %}
{% if grid < 0 %}
{{ (grid * -1) | round(0) }}
{% else %}
0
{% endif %}
Erklärung
- negativer Netzwert → Einspeisung
- wird zu positivem Überschuss umgerechnet
👉 Vorteil:
- berücksichtigt automatisch Hausverbrauch
- berücksichtigt Batterie
- keine zusätzliche Berechnung nötig
💰 Effektiver Strompreis
Idee
👉 PV-Strom ist nicht kostenlos, aber sehr günstig
➡️ wir setzen:
- PV → 0,10 €/kWh
- sonst → Tibber Preis
Sensor
- name: "Effektiver Strompreis"
unit_of_measurement: "€/kWh"
state: >
{% set p = states('sensor.tibber_prices') %}
{% set surplus = states('sensor.pv_überschuss') | float(0) %}
{% if p in ['unknown','unavailable','none',''] %}
0.30
{% elif surplus > 200 %}
0.10
{% else %}
{{ p | float }}
{% endif %}
Ergebnis
👉 Das System entscheidet nicht mehr nur nach Marktpreis, sondern nach:
- realer Verfügbarkeit
- tatsächlichen Kosten
📊 Kostenberechnung
Prinzip
👉 Kosten = Leistung × Preis
Ohne Akku
- name: "Heizung Kosten ohne Akku aktuell"
unit_of_measurement: "€/h"
state: >
{% set power = states('sensor.sd_heizung_2_power') %}
{% set price = states('sensor.effektiver_strompreis') %}
{% if power in ['unknown','unavailable','none','']
or price in ['unknown','unavailable','none',''] %}
0
{% else %}
{{ ((power | float / 1000) * (price | float)) | round(4) }}
{% endif %}
Mit Akku
- name: "Heizung Kosten mit Akku aktuell"
unit_of_measurement: "€/h"
state: >
{% set power = states('sensor.sd_heizung_netz_power') %}
{% set price = states('sensor.effektiver_strompreis') %}
{% if power in ['unknown','unavailable','none','']
or price in ['unknown','unavailable','none',''] %}
0
{% else %}
{{ ((power | float / 1000) * (price | float)) | round(4) }}
{% endif %}
Ersparnis
- name: "Heizung Ersparnis aktuell"
unit_of_measurement: "€/h"
state: >
{{ (states('sensor.heizung_kosten_ohne_akku_aktuell') | float(0)
- states('sensor.heizung_kosten_mit_akku_aktuell') | float(0)) | round(4) }}
📅 Tagesauswertung
👉 wichtig: Momentwerte sind nicht aussagekräftig
➡️ Integration über Zeit notwendig
Integration
- platform: integration
source: sensor.heizung_kosten_ohne_akku_aktuell
name: heizung_kosten_ohne_akku_total
unit_time: h
- platform: integration
source: sensor.heizung_kosten_mit_akku_aktuell
name: heizung_kosten_mit_akku_total
unit_time: h
Daily Werte
utility_meter:
heizung_kosten_ohne_akku_daily:
source: sensor.heizung_kosten_ohne_akku_total
cycle: daily
heizung_kosten_mit_akku_daily:
source: sensor.heizung_kosten_mit_akku_total
cycle: daily
Ersparnis pro Tag
- name: "Heizung Ersparnis heute"
unit_of_measurement: "€"
state: >
{{ (states('sensor.heizung_kosten_ohne_akku_daily') | float(0)
- states('sensor.heizung_kosten_mit_akku_daily') | float(0)) | round(2) }}
🤖 Automationslogik
Betriebsmodi
Das System arbeitet mit klar definierten Zuständen:
fast_charge→ günstig ladensolar_charge→ PV ladenbattery→ Akku nutzenslow_charge→ moderates Ladennotfall→ Akku kritisch
Entscheidungslogik
Reihenfolge:
- Notfall (Akku < 10%)
- Akku niedrig
- PV verfügbar
- Strom teuer → Akku nutzen
- Strom günstig → laden
- Mittelbereich → langsam laden
Beispiel
price > 0.35 → Akku nutzen
price < 0.25 → laden
PV Überschuss → immer laden
📊 Dashboard
Anzeigen
- aktueller Preis
- effektiver Preis
- Kosten mit/ohne Akku
- Tageswerte
- Akkustand
Interpretation
Laden
- Kosten mit Akku > ohne Akku
- System „investiert“
Entladen
- Kosten mit Akku ≈ 0
- reale Einsparung
🔥 Erkenntnisse aus dem Testbetrieb
- System reagiert stabil
- keine unnötigen Umschaltungen
- PV wird effizient genutzt
- Einsparung messbar
Wichtigste Erkenntnis
👉 Momentwerte sind oft negativ (Laden)
👉 Tageswert ist entscheidend
⚠️ Typische Fehler
- falsche Einheit (
k€) unknownWerte → Integration stoppt- falscher Sensor für PV
🚀 Erweiterungen
- Prognose (morgen günstiger Strom)
- PV-Vorhersage
- größere Speicherlösung
- automatische Optimierung
🧠 Fazit
Mit wenigen, gut durchdachten Sensoren lässt sich ein erstaunlich leistungsfähiges Energiemanagement aufbauen.
Das System basiert auf:
- realen Messwerten
- einfacher Logik
- klaren Prioritäten
Und erreicht damit:
- geringere Stromkosten
- bessere Nutzung von PV
- transparente Auswertung
👉 ohne komplexe KI oder externe Systeme
👉 Der Ansatz ist einfach, nachvollziehbar und lässt sich jederzeit erweitern.
🔭 Ausblick
Das Ganze ist aktuell bewusst als Testaufbau im kleinen Maßstab umgesetzt. Ziel ist es zunächst, herauszufinden, ob sich durch das gezielte Laden und Entladen bei dynamischen Strompreisen tatsächlich messbare Einsparungen erzielen lassen.
Sollte sich das Konzept im Alltag bewähren, ist der nächste Schritt bereits klar:
Ein größerer, fest installierter Speicher auf Basis von LiFePO₄-Akkus in Kombination mit einem passenden Wechselrichter.
Damit ließe sich nicht nur mehr Energie zwischenspeichern und längere Zeiträume überbrücken, sondern auch eine echte Notstromfunktion realisieren. Gerade in Verbindung mit der vorhandenen Heizungsanlage wäre das ein zusätzlicher Vorteil, um auch bei Stromausfällen handlungsfähig zu bleiben.
Das aktuelle Setup dient also nicht nur der Optimierung, sondern auch als Grundlage für einen möglichen späteren Ausbau zu einem vollwertigen Energiespeichersystem.