Vergleich mit Brennstoffkosten dazu
This commit is contained in:
+20
-5
@@ -61,10 +61,25 @@
|
||||
"_kommentar": "Warmwasser je Person/Tag. heizbedarf_winter = max. taeglicher Raumheizbedarf eines Haushalts im tiefsten Winter, stark gebaeudeabhaengig (Neubau/saniert ~40, Altbau ~100). Auf 0 setzen, wenn nur Warmwasser betrachtet werden soll."
|
||||
},
|
||||
|
||||
"brennstoffe": {
|
||||
"gas": {"preis_ct_pro_kWh": 11.0, "wirkungsgrad": 0.95},
|
||||
"oel": {"preis_ct_pro_kWh": 11.5, "wirkungsgrad": 0.90},
|
||||
"pellets": {"preis_ct_pro_kWh": 7.0, "wirkungsgrad": 0.88},
|
||||
"_kommentar": "Vergleichswert: was der Kaeufer fuer dieselbe Nutzwaerme aus fossilen/Holz-Brennstoffen zahlen wuerde. preis_ct_pro_kWh = Brennstoffpreis je kWh Brennstoffenergie (Stand Juni 2026, Deutschland: Gas ~11, Oel ~11.5 (=115 ct/L bei 10 kWh/L), Pellets ~7 (=350 EUR/t bei 5 kWh/kg)). wirkungsgrad = Kesselwirkungsgrad. Nutzwaermekosten = preis/wirkungsgrad."
|
||||
"brennstoffe": [
|
||||
{
|
||||
"name": "Gas",
|
||||
"preis_ct_kWh": 11.0,
|
||||
"wirkungsgrad": 0.95,
|
||||
"_kommentar": "Erdgas Juni 2026, Brennwertkessel."
|
||||
},
|
||||
{
|
||||
"name": "Heizoel",
|
||||
"preis_ct_kWh": 11.5,
|
||||
"wirkungsgrad": 0.90,
|
||||
"_kommentar": "Heizoel EL Juni 2026 (~115 ct/L bei 10 kWh/L), Brennwertkessel."
|
||||
},
|
||||
{
|
||||
"name": "Pellets",
|
||||
"preis_ct_kWh": 7.0,
|
||||
"wirkungsgrad": 0.88,
|
||||
"_kommentar": "Holzpellets Juni 2026 (~350 EUR/t bei 5 kWh/kg), moderner Pelletskessel."
|
||||
}
|
||||
],
|
||||
"_kommentar_brennstoffe": "Vergleichswert: Nutzwaermekosten = preis_ct_kWh / wirkungsgrad. Reihenfolge bestimmt die Anzeigereihenfolge im Report."
|
||||
}
|
||||
|
||||
+57
-1
@@ -215,6 +215,32 @@ def haushalte(q_speicher_tag: float, cfg: dict) -> dict:
|
||||
}
|
||||
|
||||
|
||||
def brennstoffkosten(e: dict, cfg: dict) -> dict:
|
||||
"""Vergleichswert der Waerme gegenueber fossilen Brennstoffen / Pellets.
|
||||
|
||||
Nutzwaermekosten = Brennstoffpreis / Kesselwirkungsgrad.
|
||||
Bewertet werden der Energieinhalt eines vollen LKW und die Jahresmenge.
|
||||
"""
|
||||
energie_lkw = e["speicher"]["voller_lkw_energie_kWh"]
|
||||
energie_jahr = e["waermepumpe"]["speicher_kWh_tag"] * TAGE_PRO_JAHR
|
||||
vergleich = []
|
||||
for b in cfg.get("brennstoffe", []):
|
||||
nw_ct = b["preis_ct_kWh"] / b["wirkungsgrad"]
|
||||
vergleich.append({
|
||||
"name": b["name"],
|
||||
"preis_ct_kWh": b["preis_ct_kWh"],
|
||||
"wirkungsgrad": b["wirkungsgrad"],
|
||||
"nutzwaerme_ct_kWh": nw_ct,
|
||||
"eur_pro_lkw": energie_lkw * nw_ct / 100.0,
|
||||
"eur_pro_jahr": energie_jahr * nw_ct / 100.0,
|
||||
})
|
||||
return {
|
||||
"energie_lkw_kWh": energie_lkw,
|
||||
"energie_jahr_kWh": energie_jahr,
|
||||
"vergleich": vergleich,
|
||||
}
|
||||
|
||||
|
||||
def rechne(milch_l_tag: float, cfg: dict) -> dict:
|
||||
q_milch = milch_kuehllast(milch_l_tag, cfg)
|
||||
wp = waermepumpe(q_milch, cfg)
|
||||
@@ -223,7 +249,7 @@ def rechne(milch_l_tag: float, cfg: dict) -> dict:
|
||||
netz = netzbezug(wp["strom_kWh_tag"], pv["kWp"], cfg)
|
||||
bat = batterie(wp["strom_kWh_tag"], cfg)
|
||||
hh = haushalte(wp["speicher_kWh_tag"], cfg)
|
||||
return {
|
||||
e = {
|
||||
"eingang": {"milch_l_tag": milch_l_tag},
|
||||
"milch_kuehllast_kWh_tag": q_milch,
|
||||
"waermepumpe": wp,
|
||||
@@ -233,6 +259,9 @@ def rechne(milch_l_tag: float, cfg: dict) -> dict:
|
||||
"batterie": bat,
|
||||
"haushalte": hh,
|
||||
}
|
||||
if "brennstoffe" in cfg:
|
||||
e["brennstoffkosten"] = brennstoffkosten(e, cfg)
|
||||
return e
|
||||
|
||||
|
||||
def runde_auf(wert: float, schritt: float) -> float:
|
||||
@@ -376,6 +405,17 @@ def report(e: dict, cfg: dict) -> str:
|
||||
L.append(f" passt in einen LKW .......... {passt:>8}")
|
||||
L.append(f" voller LKW voll nach ........ {sp['voller_lkw_tausch_tage']:8.1f} Tagen")
|
||||
L.append(f" Energieinhalt voller LKW .... {sp['voller_lkw_energie_kWh']:8.0f} kWh")
|
||||
bk = e.get("brennstoffkosten")
|
||||
if bk and bk["vergleich"]:
|
||||
L.append("")
|
||||
L.append("WERT DER WAERME BEIM KAEUFER (Ersatzkosten fossil/Holz)")
|
||||
L.append(f" {'Brennstoff':<10} | {'ct/kWh':>7} | {'EUR/LKW':>9} | {'EUR/Jahr':>9}")
|
||||
L.append(f" {'-'*10}-+-{'-'*7}-+-{'-'*9}-+-{'-'*9}")
|
||||
for v in bk["vergleich"]:
|
||||
L.append(f" {v['name']:<10} | {v['nutzwaerme_ct_kWh']:>7.1f} | "
|
||||
f"{v['eur_pro_lkw']:>9.0f} | {v['eur_pro_jahr']:>9.0f}")
|
||||
L.append(f" Bewertet: voller LKW ~{bk['energie_lkw_kWh']:.0f} kWh, "
|
||||
f"Jahreserzeugung ~{bk['energie_jahr_kWh']:.0f} kWh")
|
||||
L.append("=" * 62)
|
||||
return "\n".join(L)
|
||||
|
||||
@@ -475,6 +515,22 @@ def report_md(e: dict, cfg: dict, quelldateien: list[str] | None = None) -> str:
|
||||
L.append(f"| voller LKW nach | {sp['voller_lkw_tausch_tage']:.1f} Tagen |")
|
||||
L.append(f"| Energieinhalt voller LKW | {sp['voller_lkw_energie_kWh']:.0f} kWh |")
|
||||
|
||||
bk = e.get("brennstoffkosten")
|
||||
if bk and bk["vergleich"]:
|
||||
L.append("")
|
||||
L.append("## Wert der Waerme beim Kaeufer (Ersatzkosten fossil/Holz)")
|
||||
L.append("")
|
||||
L.append(f"Bewertet: voller LKW ~{bk['energie_lkw_kWh']:.0f} kWh, "
|
||||
f"Jahreserzeugung ~{bk['energie_jahr_kWh']:.0f} kWh")
|
||||
L.append("")
|
||||
L.append("| Brennstoff | ct/kWh (Nutzw.) | EUR/LKW | EUR/Jahr |")
|
||||
L.append("|------------|-----------------|---------|----------|")
|
||||
for v in bk["vergleich"]:
|
||||
L.append(f"| {v['name']} | {v['nutzwaerme_ct_kWh']:.1f} | "
|
||||
f"{v['eur_pro_lkw']:.0f} | {v['eur_pro_jahr']:.0f} |")
|
||||
L.append("")
|
||||
L.append("*ct/kWh = Brennstoffpreis ÷ Kesselwirkungsgrad*")
|
||||
|
||||
return "\n".join(L)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user