Simulation Heizen mit PV Strom + Claude Code Übung

Hallo,

nach Experimente zur Heizlastanalyse - #5 von jensdecker ein neues Experiment mit claude code cli (sonnet 4.6) in Verbindung mit Home Assistant. Ich hab mich gefragt, wie ich eigentlich am besten berechnen kann, wieviel unseres WW- und Heizenergiebedarfs wir mit der PV inkl. Akku decken können und obs da irgendwelche etablierten Verfahren gibt. Also erstmal bischen mit Claude Desktop nach Methoden recherchiert und was es ggf. an Literatur gibt
PV_Heating_SelfSufficiency_Methodology.pdf (15,9 KB)

Offenbar zwei Verfahren:

a) Einfach zeitaufgelöst den Anteil der Heizung am produzierten bzw. der Batterie entnommenen Strom ermitteln und das bilanzieren. Problem: Wenn ich mit der Splitklima die Batterie leersauge bzw. verhindere, daß sie voll aufgeladen wird, muß ich ja eher wieder Strom aus dem Netz für den Rest des Hauses beziehen. Trotzdem wohl ne etablierte Methode.
b) Simulation des Hauses mit den gemessenen Daten zum Bezug und Einspeisung ins Netz, Stromerzeugung der PV und Ein-/Ausspeicherung in den Akku (mit Parametern für die angenommene Effizienz und Kapazität). Das ganze wird entweder mit oder ohne den beiden Splitklimas und der BWWP gerechnet und so der Unterschied des nötigen Netzbezugs ermittelt um entweder alles oder nur den restlichen Verbrauch des Hauses zu decken. Optional auch noch ohne Akku.

Für die Recherei hab ich mir erstmal Code schreiben lassen, der die Daten entweder von HA mit seiner eigenen DB abruft (Auflösung nur eine Stunde) oder InfluxDB, die ich leider erst im Januar eingerichtet habe, akkumuliert über jeweils 5 min. Genaue Entitätsnamen hab ich ihn selber rausfischen lassen, aufs Energydashboard von HA verwiesen. Dazu ien Jupyter Script zur Visualisierung. Anschließend Code für Variante b) und dazu ne Doku in pdflatex und ein readme zur Benutzung:
energy_analysis.pdf (208,2 KB)

Die Codesynthese war diesmal etwas hackelig im Detail, da das Abrufen der größeren Datenblöcke nicht gleich lief (seine Tests waren nur über ne Woche) und er nicht beachtet hatte, daß die Einheit einmal kWh statt Wh ist. Aber mit etwas Nachhaken und outputs als input ging das dann auch.

Zwischen den stündlichen und den 5min Daten gabs für den Februar einen Unterschied von erfreulicherweise nur 22.8 zu 23.0% bei der Selbstabdeckung mit PV+Akku. Monatlich aufgelöst über die Heizperiode (alles in %, gerechnet mit 85% Effizienz des Akkus, erstmal 14 kWh, Leistungslimit der Multiplus ignoriert), nur Solar und Solar+Akku:

October: 39.3 / 56.5
November: 20.7 / 25.5
December: 14.1 / 15.5
January: 7.8 / 9.8
February: 17.3 / 23.0
March: 56.2 / 92.9

Insgesamt 33.5%, ohne Akku wären es 24.2% Ich hatte so aus dem Bauch raus eigentlich weniger erwartet. Details zum Verbrauch und Haus in meinem monatlichen Verbrauchsfaden RHM 125 qm, Bremen - #55 von jensdecker

In Summe hab ich da mit verschiedenen Simulationsläufen so 3h gebaselt. Learnings:
Selber den verfügbaren Datenbereich prüfen, um nicht falschen Fehlern nachzulaufen, auf klare Beachtung der Einheiten hinweisen, Datenbanken bei Tests immer komplett vorab löschen lassen. Literatursuche funktioniert inzwischen!

python energy_analysis.py --start 2026-02-01 --end 2026-02-28 --battery-efficiency 0.85 --battery-capacity 14 --source ha
1. HVAC / Heat-pump Electricity Consumption
──────────────────────────────────────────────────────────────────
   BWWP (Brauchwasser-Wärmepumpe)       44.92 kWh
   Splitklima Wohnzimmer                42.90 kWh
   Splitklima Arbeitszimmer            162.27 kWh
──────────────────────────────────────────────────────────────────
   Total HVAC                          250.08 kWh
   Share of house consumption        41.3%

2. Measured Energy Balance (full system)
──────────────────────────────────────────────────────────────────
   House consumption (reconstructed)      606.01 kWh
   Solar production — Fronius Symo        122.44 kWh
   Solar production — Solar 2              14.60 kWh
   Solar production — combined            137.04 kWh
   Battery charged                         40.52 kWh
   Battery discharged                      34.59 kWh
   Battery losses (charged − dischgd)       5.93 kWh
   Actual grid draw                       476.70 kWh
   Actual grid feed-in                      1.80 kWh

3. Grid Simulation — Scenario Comparison
   Battery capacity : 14.0 kWh
   Battery efficiency: 85% round-trip

   Scenario                              Grid draw     Feed-in  Self-suf.
──────────────────────────────────────────────────────────────────
   A  No solar, no battery                  606.01 kWh           —       0.0%
   B  Solar only (no battery)               501.28 kWh       32.31 kWh    17.3%
   C  Solar + battery (re-simulated)        466.82 kWh        0.00 kWh    23.0%
   D  Actual measured                       476.70 kWh        1.80 kWh    21.3%
──────────────────────────────────────────────────────────────────

4. Grid Savings Summary
──────────────────────────────────────────────────────────────────
   Solar savings           (A → B)               104.73 kWh
   Battery savings on top  (B → C simulated)      34.46 kWh
   Total simulated savings (A → C)               139.19 kWh

   Actual total savings    (A → D measured)      129.31 kWh
   Sim. vs. actual difference (C − D)             -9.88 kWh
──────────────────────────────────────────────────────────────────

Das Problem ist, das die letzen Winter seeehr unterschiedlich, bezüglich des Ertrages waren. Da hilft das viele Rechnen auch nicht. Ansonsten hat PVGIS, im Inselmodus, bei mir sehr gute Durchschnittswerte für den Winter ausgespuckt. Und zwar dergestalt, das ich mit 26 kWp+100kWh Akku, an meinem Standort und Ausrichtung jeden Wintertag mindestens 10 kWh verbrauchen kann ohne das der Akku eines Morgens leer ist. Hat in Praxis zufällig(?) ziemlich genau gestimmt.

1 „Gefällt mir“

"Von Wiegen wird das Schwein nicht fett", stimmt schon. Aber mich hats halt einfach mal interessiert, wie das für unsere konkrete Situation mit einem RMH Ost/West Dach mit lediglich so etwa 8.5 kWp im nicht so von der Sonne im Winter verwöhnten Bremen aussieht und das ganze mit unseren konkreten Verbrauchs-Zahlen, die ich in der Form auch erst seit dieser Heizperiode habe. Vorher ja noch Gas. Dafür ist unser Heizbedarf sicherlich klar unterdurchschnittlich. Hätten wir vor 15 Jahren energetisch saniert, wäre die Eigenbedarfsdeckung für ein WP vielleicht bei einem Drittel, auch wenn dann die Heizperiode sich weiter in die stromreichern Übergangszeiten verlängert. Mit 26 kWp, die vielleicht dann noch nach Süden zeigen und "unendlich" Speicher ist man natürlich in einer anderen Situation und lassen sich zumindest einzelne trübe Tage wegglätten.

Sorry, muß meine Auswertung korrigieren. Der Code hatte de facto die Einsparungen für das gesamte Haus gerechnet, nicht das, was von PV+Akku her noch übrig ist, um damit zusätzlich zum normalen Hausbedarf die beiden Splitklimas+BWWP in der Heizperiode zu versorgen. War da nicht kritisch genug, mein Prompt zu wenig ausspezifiziert und ist mir erst letzte Woche aufgefallen, als ich mir doch mal den Code näher angeschaut habe.

Für 1.10. bis 31.3. sind es jetzt lediglich 10%. Mit Batterie in der Simulation sogar noch schlechter, zeigt die Limitierungen einer solchen Simulation auf, mit leider nur 1h Auflösung und der 0.1 kWh Quantisierung des Victron-Powermeters bzw. der berichteten Zahlen. Während die Simulation keine Beschränkungen für die Ladezustände bekommen hat, hab ich in den dunklen Monaten den Akku mehr oder weniger auf einem festen mittleren Level gehalten. Probehalber optional zugelassene negative Vergleich zum Übertrag zwischen den Zeitintervallen ergaben keine Änderung an den finalen Werten.
In der Doku läßt sich das LLM in Abschnitt 12 auch über die Limitierungen aus.

Monatsweise 11, 10, 10, 3, 8 und 71%
März mit wenig Heizbedarf, aber dafür viel Sonne :wink: Januar und Februar unterirdisch.

Anbei die generierte Dokumentation, wenn das jemand selber auch mal aufsetzen will.
Bestätigt leider, daß selbst bei unserem geringen Energiebedarf fürs Heizen zumindest mit unserer 8.5 kWp Ost/West Anlage kein nennenswerter Beitrag zum Heizen geleistet werden kann. Mit einem großen Süddach, weniger Grundbedarf und einer längeren Heizperiode mag es besser aussehen.

PV_Heating_SelfSufficiency_Methodology.pdf (15,9 KB)

Zusammenfassung

══════════════════════════════════════════════════════════════════
Extended Energy Analysis — Marginal HVAC Grid Savings
Period : 2025-10-01 00:00 -> 2026-03-31 23:00 UTC
(182.0 days, 4,368 x 1-hour intervals)
Database: /home/jens/python_projects/home-assistant/heating_pv/data/energy_hourly.db
══════════════════════════════════════════════════════════════════

  1. HVAC / Heat-pump Electricity Consumption
    ──────────────────────────────────────────────────────────────────
    BWWP (Brauchwasser-Waermepumpe) 278.23 kWh
    Splitklima Wohnzimmer 176.14 kWh
    Splitklima Arbeitszimmer 674.84 kWh
    ──────────────────────────────────────────────────────────────────
    Total HVAC (meter sum) 1129.21 kWh
    Effective HVAC (complete-pure) 1128.91 kWh
    Noise-clip adjustment 0.30 kWh (1 intervals where h_pure hit 0)

  2. House Consumption Decomposition
    ──────────────────────────────────────────────────────────────────
    Complete house consumption 3459.52 kWh

    • HVAC devices (effective) 1128.91 kWh
      = Pure house consumption (base) 2330.61 kWh
      HVAC share of complete load 32.6%
  3. Measured Energy Balance (full system, for reference)
    ──────────────────────────────────────────────────────────────────
    Solar production - combined 1270.09 kWh
    Battery charged / discharged 389.10 kWh / 366.83 kWh
    Actual grid draw / feed-in 2340.70 kWh / 129.00 kWh

  4. Grid Simulation — Complete House Consumption
    Battery: 14.0 kWh, 85% round-trip efficiency

    Scenario Grid draw Feed-in Self-suf.
    ──────────────────────────────────────────────────────────────────
    A No solar, no battery 3459.52 kWh — 0.0%
    B Solar only 2622.08 kWh 432.65 kWh 24.2%
    C Solar + battery 2300.51 kWh 58.49 kWh 33.5%
    ──────────────────────────────────────────────────────────────────

  5. Grid Simulation — Pure House Consumption (base load only)
    Battery: 14.0 kWh, 85% round-trip efficiency

    Scenario Grid draw Feed-in Self-suf.
    ──────────────────────────────────────────────────────────────────
    A No solar, no battery 2330.61 kWh — 0.0%
    B Solar only 1602.28 kWh 541.77 kWh 31.3%
    C Solar + battery 1242.21 kWh 115.98 kWh 46.7%
    ──────────────────────────────────────────────────────────────────

  6. Marginal HVAC Grid Demand (complete - pure)
    ──────────────────────────────────────────────────────────────────
    Scenario Complete Pure HVAC marg.
    ──────────────────────────────────────────────────────────────────
    A No solar, no battery 3459.52 2330.61 1128.91
    B Solar only 2622.08 1602.28 1019.80
    C Solar + battery 2300.51 1242.21 1058.31
    ──────────────────────────────────────────────────────────────────
    (all figures in kWh; HVAC marginal = grid energy the HVAC
    loads add on top of the base load in each scenario)

  7. HVAC Grid Savings from Solar / Battery
    ──────────────────────────────────────────────────────────────────
    HVAC additional demand, baseline A 1128.91 kWh
    HVAC grid demand with solar only (B) 1019.80 kWh
    HVAC grid demand with solar+battery (C) 1058.31 kWh
    ──────────────────────────────────────────────────────────────────
    Solar covers of HVAC demand (A->B) 109.12 kWh (9.7%)
    Battery covers on top of solar (B->C) -38.51 kWh (-3.4%)
    Total HVAC demand covered (A->C) 70.60 kWh (6.3%)
    HVAC demand still drawn from grid 1058.31 kWh (93.7%)
    ──────────────────────────────────────────────────────────────────
    Note: the battery's marginal contribution to the HVAC load is
    negligible (slightly negative). The base load already absorbs
    almost all stored energy; with a fixed-capacity battery, adding
    the HVAC load on top leaves no spare stored energy for it.

  8. Marginal vs. Average Self-Sufficiency
    ──────────────────────────────────────────────────────────────────
    Solar only Solar+batt
    ──────────────────────────────────────────────────────────────────
    Marginal HVAC load 9.7% 6.3%
    Pure base load 31.3% 46.7%
    Whole house (average) 24.2% 33.5%
    ──────────────────────────────────────────────────────────────────
    The marginal HVAC load is served less efficiently than the
    house average: the base load is satisfied from solar / battery
    first, so the HVAC devices only get the left-over capacity,
    which is scarce exactly when irradiance is low.

Mein Prompt:

Zusammenfassung

the energy_analysis unfortunately doesn't do what I expected. It actually calculates the additional demand from the grid
if I would not have a solar system and/or battery. That is just one aspect. What I would really be interested, is how
much I save for the specific demand of the Splitklima and BWWP devices because of the solar system and the battery. To
get that requires the following steps:
1.) calculate the complete house consumption as it is done now with house_consumption()
2.) calculate the pure house consumption without the splitklima and BWWP devices by subtracting their consumption
3.) determine how much energy would have to come from the grid for the complete and for pure house consumption in the
given time periods if there would be no solar system and no battery
4.) calculate how much of these two energies could come from the solar system alone or from the solar system + battery by
doing a time series simulation similar to how it is done now in simulate_battery().
5.) Compare the saving of grid supply with and without the splitklima and bwwp devices.
Only a part of the additional demand of the splitklima and bwwp can be supplied by solar, especially during times with
very low solar power. The fraction of the additional demand which can be supplied on top of the pure house consumption
is what I am ultimately interested in.
Please write a script energy_analysis_full.py which does this extended analysis and reports the various intermediate numbers in addition. I like the schema of the current report from energy_a
nalysis.py. Please do it in a similar way and write documentation in pdflatex for the exact implementation for this simulation. Run the code and check the results for plausibility.