Vergleich mit Brennstoffkosten dazu
This commit is contained in:
+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