# Auslegung Wärmerückgewinnung Milchkühlung Kommandozeilen-Werkzeug zur Auslegung einer Wärmerückgewinnung aus der Milchkühlung: Aus der täglich zu kühlenden **Milchmenge** werden Wärmepumpe, PV-Anlage, Batterie und Natriumacetat-Latentspeicher dimensioniert – inklusive Abhollogistik, versorgbarer Haushalte und Brennstoffkosten-Vergleich. Alle Annahmen liegen in einer `config.json`, sodass sich Varianten ohne Codeänderung nachrechnen lassen. ## Konzept ``` Milchabwärme (37→4 °C) ──► Wärmepumpe (Strom aus PV) ──► Latentspeicher (Natriumacetat, 58 °C) ──► Abholung per LKW ``` Da Natriumacetat-Trihydrat erst bei 58 °C schmilzt, die Milchabwärme aber nur bei ~37 °C anfällt, hebt eine Wärmepumpe das Temperaturniveau an. Der Speicher kann unterkühlt und damit isolierungsfrei transportiert werden. ## Voraussetzungen - Python 3.8+ - Keine externen Abhängigkeiten (nur Standardbibliothek) ## Dateien | Datei | Zweck | |---|---| | `auslegung.py` | Berechnungsprogramm | | `config.json` | Sämtliche Annahmen (kopieren für Varianten) | ## Verwendung ```bash # Detailreport für 1000 L Milch/Tag python auslegung.py 1000 # Kompakte Empfehlung (gerundete Größen + vorgeschlagener Abholzyklus) python auslegung.py 1000 --suggest-size # Variante mit eigener Config und Ergebnis-Export als JSON python auslegung.py 1500 --config meine_variante.json --json ergebnis.json ``` | Argument | Beschreibung | |---|---| | `milch_l_tag` | (Pflicht) Milchmenge pro Tag in Litern | | `--config PFAD` | Pfad zur JSON-Konfiguration (Standard: `config.json`) | | `--json PFAD` | Ergebnis zusätzlich als JSON schreiben | | `--suggest-size` | Kompakte Empfehlung statt Detailreport | ## Was berechnet wird - **Milchkühllast** (kWh/Tag) aus Menge und Temperaturhub - **Wärmepumpe**: Kälte-, Heiz- und elektrische Leistung, Strombedarf, in den Speicher gelieferte Wärme - **PV-Anlage**: Leistung (kWp) und Dachfläche für die Jahresbilanz des WP-Strombedarfs - **Netzbezug**: jährlicher Zukauf-Anteil durch die Wintermonate (Monatsbilanz) - **Batterie**: nutzbare und Nennkapazität für den Tag-/Nacht-Ausgleich - **Latentspeicher**: Masse, Volumen, LKW-Auslastung, Energieinhalt einer Ladung - **Versorgte Haushalte**: Warmwasser (ganzjährig) und Winterfall (Heizung + WW) - **Brennstoffkosten**: Wert der Wärme als Ersatzkosten für Gas, Heizöl, Pellets ## Konfiguration (`config.json`) | Abschnitt | Wichtigste Parameter | |---|---| | `milch` | Ein-/Austrittstemperatur, Dichte, spez. Wärme | | `waermepumpe` | `cop`, `laufzeit_h_pro_tag` | | `pcm` | `modus` (`latent_only` / `latent_plus_hub`), Latentwärme, Dichte, c-Werte, Lade-/Entladetemperatur | | `abholung` | `zyklus_tage`, LKW-Nutzlast und -Volumen | | `pv` | spez. Jahresertrag, Fläche je kWp, Monatsprofil | | `batterie` | Direkt-PV-Stunden, nutzbarer Anteil, Reservefaktor | | `haushalt` | Personen, Warmwasser je Person, Winter-Heizbedarf | | `brennstoffe` | Preis (ct/kWh) und Wirkungsgrad für Gas/Öl/Pellets | ### Wichtigste Stellschrauben - `pcm.modus` – `latent_only` (nur Phasenwechsel) oder `latent_plus_hub` (mit Überhitzung): bestimmt Energiedichte und Speichergröße. - `abholung.zyklus_tage` – Abholrhythmus, steuert die Speichergröße direkt. - `waermepumpe.cop` – bestimmt Strombedarf und damit PV-Größe. - `haushalt.heizbedarf_winter_kWh_tag` – stark gebäudeabhängig (saniert ~40, Altbau ~100, 0 = nur Warmwasser). - `brennstoffe` – Preise sind Stand Juni 2026 (DE) und jederzeit überschreibbar. ## Ausgabe Der Detailreport schreibt einen formatierten Konsolentext mit allen Blöcken. Mit `--json` wird das vollständige Ergebnis zusätzlich als strukturiertes JSON gespeichert (alle Zwischengrößen, im Suggest-Modus zusätzlich der `vorschlag`-Block). ### Beispiel (gekürzt, 1000 L) ``` WAERMEPUMPE (COP 2.60, Laufzeit 18 h/Tag) Strombedarf ................. 24.0 kWh/Tag Waerme in den Speicher ...... 62.4 kWh/Tag PV-ANLAGE Leistung .................... 8.8 kWp Dachflaeche ................. 44 m2 NETZBEZUG (durch Wintermonate) Netzbezug ................... 1941 kWh/a = 22 % VERSORGTE HAUSHALTE (2 Erw. + 2 Kinder) -> Warmwasser ganzjaehrig ... 11.1 Haushalte -> im Winter ................ 1.0 Haushalte LATENTSPEICHER (Natriumacetat-Trihydrat, Modus: latent_plus_hub) Energieinhalt voller LKW .... 2185 kWh WERT DER WAERME BEIM KAEUFER Gas | 11.6 ct/kWh | 253 EUR/LKW | 2635 EUR/Jahr Pellets | 8.0 ct/kWh | 174 EUR/LKW | 1810 EUR/Jahr ``` ## Modell-Annahmen & Vereinfachungen - Milch wird thermisch als Wasser gerechnet. - Der zurückkehrende Speicherbehälter wird als „warm" (nahe Schmelzpunkt) angenommen; sonst müsste die WP ihn zusätzlich aufheizen. - Der Netzbezug ist eine **Monatsbilanz** und setzt einen Tag-/Nacht-Ausgleich per Batterie voraus. Ohne Batterie liegt der reale Zukauf höher (~50–60 %). - `--suggest-size` optimiert den Abholzyklus auf **Transportauslastung**, nicht auf die Verweildauer der Wärme im Speicher. - Die Brennstoffkosten sind der **Brutto-Substitutionswert** der Wärme, kein erzielbarer Verkaufspreis (Transport, Strom, Abschreibung noch nicht abgezogen). ## Mögliche Erweiterungen - Anbieterseite: Transportkosten, WP-Stromkosten und Speicher-Abschreibung → echte Marge bzw. Mindestverkaufspreis je kWh. - Monatlich aufgelöste PV-Deckung als Diagramm.