Mit TypeScript können Sie eigene Berechnungen erstellen. Anhand des Codes unten auf dieser Seite können Sie ermitteln, ob es langfristig günstiger ist, Solarmodule zu installieren oder Ihre Stromrechnung so zu begleichen, wie Sie es bisher getan haben.
Hier eine allgemeine Aufschlüsselung, wie die Kosten für Solarmodule im Code ermittelt werden.
Teil 1: Systemanforderungen und -einrichtung
Definieren Sie zuerst Ihren aktuellen Stromverbrauch und Ihre Rechnungen:
- Wie viel Strom verbrauchen Sie pro Monat? (
monthlyKwhEnergyConsumption
) - Wie viel kostet dieser Strom? (
energyCostPerKwh
)
Geben Sie als Nächstes Ihre Pläne für das Sonnensystem ein:
- Wie viele Module? (
panelsCount
) - Wie leistungsstark sind die Module? (
panelCapacityWatts
) - Wie viel kostet die Installation? (
installationCostPerWatt
) - Gibt es Rabatte auf das System? (
solarIncentives
)
Teil 2: Berechnungen
Anhand der eingegebenen Werte berechnet der Code Folgendes:
yearlyProductionAcKwh
: Die jährliche Strommenge, die Ihre Solarmodule insgesamt erzeugen können.totalCostWithSolar
: Die Stromkosten über viele Jahre mit Solarmodulen.totalCostWithoutSolar
: Die Stromkosten über viele Jahre ohne Solarmodule.
Teil 3: Ergebnisse
Der Code gibt Ihnen außerdem folgende Informationen:
savings
: Die Differenz zwischen den Kosten mit und ohne Solarmodule.breakEvenYear
: Wie viele Jahre vergehen, bis die Kosten für die Solarmodule den Stromeinsparungen entsprechen?
Beispielcode
// Solar configuration, from buildingInsights.solarPotential.solarPanelConfigs let panelsCount = 20; let yearlyEnergyDcKwh = 12000; // Basic settings let monthlyAverageEnergyBill: number = 300; let energyCostPerKwh = 0.31; let panelCapacityWatts = 400; let solarIncentives: number = 7000; let installationCostPerWatt: number = 4.0; let installationLifeSpan: number = 20; // Advanced settings let dcToAcDerate = 0.85; let efficiencyDepreciationFactor = 0.995; let costIncreaseFactor = 1.022; let discountRate = 1.04; // Solar installation let installationSizeKw: number = (panelsCount * panelCapacityWatts) / 1000; let installationCostTotal: number = installationCostPerWatt * installationSizeKw * 1000; // Energy consumption let monthlyKwhEnergyConsumption: number = monthlyAverageEnergyBill / energyCostPerKwh; let yearlyKwhEnergyConsumption: number = monthlyKwhEnergyConsumption * 12; // Energy produced for installation life span let initialAcKwhPerYear: number = yearlyEnergyDcKwh * dcToAcDerate; let yearlyProductionAcKwh: number[] = [...Array(installationLifeSpan).keys()].map( (year) => initialAcKwhPerYear * efficiencyDepreciationFactor ** year, ); // Cost with solar for installation life span let yearlyUtilityBillEstimates: number[] = yearlyProductionAcKwh.map( (yearlyKwhEnergyProduced, year) => { const billEnergyKwh = yearlyKwhEnergyConsumption - yearlyKwhEnergyProduced; const billEstimate = (billEnergyKwh * energyCostPerKwh * costIncreaseFactor ** year) / discountRate ** year; return Math.max(billEstimate, 0); // bill cannot be negative }, ); let remainingLifetimeUtilityBill: number = yearlyUtilityBillEstimates.reduce((x, y) => x + y, 0); let totalCostWithSolar: number = installationCostTotal + remainingLifetimeUtilityBill - solarIncentives; console.log(`Cost with solar: $${totalCostWithSolar.toFixed(2)}`); // Cost without solar for installation life span let yearlyCostWithoutSolar: number[] = [...Array(installationLifeSpan).keys()].map( (year) => (monthlyAverageEnergyBill * 12 * costIncreaseFactor ** year) / discountRate ** year, ); let totalCostWithoutSolar: number = yearlyCostWithoutSolar.reduce((x, y) => x + y, 0); console.log(`Cost without solar: $${totalCostWithoutSolar.toFixed(2)}`); // Savings with solar for installation life span let savings: number = totalCostWithoutSolar - totalCostWithSolar; console.log(`Savings: $${savings.toFixed(2)} in ${installationLifeSpan} years`);