Vergleich mit Brennstoffkosten dazu
This commit is contained in:
+21
-6
@@ -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."
|
"_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": {
|
"brennstoffe": [
|
||||||
"gas": {"preis_ct_pro_kWh": 11.0, "wirkungsgrad": 0.95},
|
{
|
||||||
"oel": {"preis_ct_pro_kWh": 11.5, "wirkungsgrad": 0.90},
|
"name": "Gas",
|
||||||
"pellets": {"preis_ct_pro_kWh": 7.0, "wirkungsgrad": 0.88},
|
"preis_ct_kWh": 11.0,
|
||||||
"_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."
|
"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:
|
def rechne(milch_l_tag: float, cfg: dict) -> dict:
|
||||||
q_milch = milch_kuehllast(milch_l_tag, cfg)
|
q_milch = milch_kuehllast(milch_l_tag, cfg)
|
||||||
wp = waermepumpe(q_milch, 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)
|
netz = netzbezug(wp["strom_kWh_tag"], pv["kWp"], cfg)
|
||||||
bat = batterie(wp["strom_kWh_tag"], cfg)
|
bat = batterie(wp["strom_kWh_tag"], cfg)
|
||||||
hh = haushalte(wp["speicher_kWh_tag"], cfg)
|
hh = haushalte(wp["speicher_kWh_tag"], cfg)
|
||||||
return {
|
e = {
|
||||||
"eingang": {"milch_l_tag": milch_l_tag},
|
"eingang": {"milch_l_tag": milch_l_tag},
|
||||||
"milch_kuehllast_kWh_tag": q_milch,
|
"milch_kuehllast_kWh_tag": q_milch,
|
||||||
"waermepumpe": wp,
|
"waermepumpe": wp,
|
||||||
@@ -233,6 +259,9 @@ def rechne(milch_l_tag: float, cfg: dict) -> dict:
|
|||||||
"batterie": bat,
|
"batterie": bat,
|
||||||
"haushalte": hh,
|
"haushalte": hh,
|
||||||
}
|
}
|
||||||
|
if "brennstoffe" in cfg:
|
||||||
|
e["brennstoffkosten"] = brennstoffkosten(e, cfg)
|
||||||
|
return e
|
||||||
|
|
||||||
|
|
||||||
def runde_auf(wert: float, schritt: float) -> float:
|
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" passt in einen LKW .......... {passt:>8}")
|
||||||
L.append(f" voller LKW voll nach ........ {sp['voller_lkw_tausch_tage']:8.1f} Tagen")
|
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")
|
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)
|
L.append("=" * 62)
|
||||||
return "\n".join(L)
|
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"| voller LKW nach | {sp['voller_lkw_tausch_tage']:.1f} Tagen |")
|
||||||
L.append(f"| Energieinhalt voller LKW | {sp['voller_lkw_energie_kWh']:.0f} kWh |")
|
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)
|
return "\n".join(L)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user