E-powerup

Kreator instalacji fotowoltaicznej dla budynku, CWU i samochodu elektrycznego

Dobierz liczbę modułów PV na podstawie miesięcznego zużycia budynku z rachunku, regionu, warunków montażu, podgrzewania wody w bojlerze lub grzałce oraz dodatkowego obciążenia z ładowania samochodu elektrycznego. Kreator dolicza 10% rezerwy sezonowej na słabszą produkcję jesienią i zimą.

Dane wejściowe

Tryb kreatora
Tryb prosty korzysta z opisanych niżej założeń referencyjnych. Tryb zaawansowany pozwala je zmienić.
km
0 km Wybrano: 0 km 50000 km
Warunki techniczne dachu
Elementy instalacji PV
Parametry zużycia ciepłej wody
Wymiary dostępnej powierzchni pod instalację
Założenia trybu prostego
  • kąt nachylenia 30-40°, brak lub minimalne zacienienie, montaż na dachu;
  • falownik FoxESS P3-10.0-SH 10 kW; magazyn energii, ładowarka EV oraz bojler/grzałka zgodnie z wybranym wariantem;
  • do zapotrzebowania bazowego doliczana jest 10% rezerwa sezonowa na jesień i zimę;
  • taryfa G11: 0,90 PLN/kWh, sprzedaż nadwyżki: 0,164 PLN/kWh;
  • Eco Delta jest oznaczony jako panel na stanie, a mocniejsze moduły jako warianty na zamówienie z ceną poglądową.

Wyniki aktualizują się automatycznie po zmianie danych. Przycisk pokazuje walidację, jeśli czegoś brakuje.

Wyniki kreatora

Najważniejsze wyniki

Pokrycie zapotrzebowania 0% produkcja roczna względem potrzeb
Korzyść roczna 0 zł autokonsumpcja + nadwyżka
Moc instalacji 0 kWp według wybranego modułu

Dobór i bilans energii

Moduły PV 0 szt. dobór do zapotrzebowania
Produkcja roczna 0 kWh szacunek uzysku PV
Zapotrzebowanie roczne 0 kWh budynek + EV + CWU + rezerwa
Bilans roczny 0 kWh nadwyżka lub niedobór
Energia z PV na potrzeby własne 0 kWh podstawa oszczędności
CWU - bojler/grzałka 0 kWh dodatkowe podgrzewanie wody
Nadwyżka do sieci 0 kWh po autokonsumpcji
Wartość nadwyżki 0 zł według ceny sprzedaży
Nasłonecznienie 0 kWh/m²/rok dla regionu

Koszty i rozbudowa

Cena kWh w taryfie 0,000 średnia do oszczędności
Koszt sprzętu 0 zł moduły + falownik + magazyn + EV + CWU
Zwrot sprzętu n/d bez konstrukcji i montażu
Rozbudowa o magazyn 0 zł porównanie scenariusza
Koszt modułów netto 0 zł liczba modułów × cena netto szt.
Ładowarka EV 0 zł wybrany model ładowarki
CWU - bojler/grzałka 0 zł wybrany wariant CWU

Bilans miesięczny

  • Produkcja PV
  • Zapotrzebowanie
  • Bilans
Szczegóły miesięczne
Miesięczny bilans energii dla budynku, CWU, instalacji fotowoltaicznej i samochodu elektrycznego

Założenia: liczba modułów wynika z rocznego zapotrzebowania budynku, dodatkowego obciążenia EV, podgrzewania CWU w bojlerze lub grzałce oraz 10% rezerwy sezonowej na słabszą produkcję jesienią i zimą. Dostępna powierzchnia jest ograniczeniem montażowym. Kalkulator uwzględnia użyteczną powierzchnię 75% dla dachu albo 60% dla gruntu, współczynnik orientacji i kąta, zacienienie, sprawność falownika, magazyn energii, taryfę klienta oraz uproszczony net-billing.

Nasłonecznienie: wartości roczne i miesięczne profile sezonowe rozróżniono na podstawie Średniej irradiacji poziomej z PVGIS/JRC dla miast wojewódzkich.

Ceny sprzętu: kalkulator automatycznie stosuje koszt wybranego modułu, falownika, magazynu, ładowarki oraz bojlera lub grzałki. Moduły Eco Delta są oznaczone jako warianty na stanie. Mocniejsze moduły są oznaczone jako warianty na zamówienie, a ich ceny są poglądowe. Ceny CWU są orientacyjne dla typowych bojlerów elektrycznych 80-200 l, grzałek 1,5-3 kW i prostych sterowników nadwyżek PV. Finalna cena zależy od dostępności, dostawcy, warunków zakupu, właściwego VAT, montażu, zabezpieczeń i konfiguracji.

Wyniki są szacunkowe. Nośność dachu jest tylko sygnalizowana i wymaga osobnej oceny konstrukcyjnej przed montażem.

";reportWindow.document.open(); reportWindow.document.write(html); reportWindow.document.close(); }function handlePrintReport(event) { if (event) { event.preventDefault(); }hasSubmitted = true; calculate();if (!lastResult) { setError("Uzupełnij poprawnie dane kreatora, a potem wygeneruj raport PDF."); return; }openPrintReport(lastResult); }function calculate(event) { if (event) { if (event.type === "submit") { event.preventDefault(); hasSubmitted = true; } }syncYearlyKmFromSlider(event); syncModeVisibility();var simpleMode = isSimpleMode();if (!simpleMode) { syncSalePriceFromSettlement(event); syncPanelPriceFromModel(event); syncInverterPriceFromModel(event); syncStorageAvailability(event); syncStoragePriceFromModel(event); syncChargerPriceFromModel(event); syncChargerHint(); syncWaterHeatingPriceFromModel(event); syncWaterHeatingHint(); syncMountingType(); }syncTariffHint();var buildingMonthly = parseNumber(inputs.buildingMonthly ? inputs.buildingMonthly.value : ""); var consumption = parseNumber(inputs.consumption ? inputs.consumption.value : ""); var yearlyKm = parseNumber(inputs.yearlyKm ? inputs.yearlyKm.value : ""); var sunValue = parseNumber(inputs.region ? inputs.region.value : ""); var regionProfileKey = "";if (inputs.region) { if (inputs.region.selectedOptions) { if (inputs.region.selectedOptions[0]) { regionProfileKey = inputs.region.selectedOptions[0].dataset.profile; } } }var monthlyProductionShare = REGION_MONTHLY_PROFILES[regionProfileKey] || DEFAULT_MONTHLY_PRODUCTION_SHARE; var orientationFactor = parseNumber(inputs.orientation ? inputs.orientation.value : ""); var tiltFactor = simpleMode ? SIMPLE_DEFAULTS.tiltFactor : parseNumber(inputs.tilt ? inputs.tilt.value : ""); var shadingFactor = simpleMode ? SIMPLE_DEFAULTS.shadingFactor : parseNumber(inputs.shading ? inputs.shading.value : ""); var panelSpecs = getSelectedPanelSpecs(); var inverterEfficiency = simpleMode ? SIMPLE_DEFAULTS.inverterEfficiency : parseNumber(inputs.inverter ? inputs.inverter.value : ""); var simpleStorageOption = getSelectedOption(inputs.simpleStorageModel); var selfConsumptionRate = simpleMode ? getDatasetNumber(simpleStorageOption, "selfConsumption", SIMPLE_DEFAULTS.selfConsumptionRate) : parseNumber(inputs.storage ? inputs.storage.value : ""); var chargerSpecs = getSelectedChargerSpecs(); var waterHeatingSpecs = getSelectedWaterHeatingSpecs(); var hotWaterPeople = parseNumber(inputs.hotWaterPeople ? inputs.hotWaterPeople.value : ""); var hotWaterLitersPerPerson = simpleMode ? waterHeatingSpecs.defaultLitersPerPerson : parseNumber(inputs.hotWaterLitersPerPerson ? inputs.hotWaterLitersPerPerson.value : ""); var hotWaterTempRise = simpleMode ? waterHeatingSpecs.defaultTempRise : parseNumber(inputs.hotWaterTempRise ? inputs.hotWaterTempRise.value : ""); var mountingType = simpleMode ? SIMPLE_DEFAULTS.mountingType : (inputs.mountingType ? inputs.mountingType.value : ""); var roofLoad = simpleMode ? SIMPLE_DEFAULTS.roofLoad : (inputs.roofLoad ? inputs.roofLoad.value : ""); var roofWidth = parseNumber(inputs.roofWidth ? inputs.roofWidth.value : ""); var roofLength = parseNumber(inputs.roofLength ? inputs.roofLength.value : ""); var energyPrice = simpleMode ? SIMPLE_DEFAULTS.energyPrice : parseNumber(inputs.energyPrice ? inputs.energyPrice.value : ""); var peakPrice = simpleMode ? NaN : parseNumber(inputs.peakPrice ? inputs.peakPrice.value : ""); var offPeakPrice = simpleMode ? NaN : parseNumber(inputs.offPeakPrice ? inputs.offPeakPrice.value : ""); var offPeakShare = simpleMode ? NaN : parseNumber(inputs.offPeakShare ? inputs.offPeakShare.value : ""); var effectiveEnergyPrice = calculateEffectiveEnergyPrice(energyPrice, peakPrice, offPeakPrice, offPeakShare); var salePrice = simpleMode ? SIMPLE_DEFAULTS.salePrice : parseNumber(inputs.salePrice ? inputs.salePrice.value : ""); var panelPrice = simpleMode ? panelSpecs.price : parseNumber(inputs.panelPrice ? inputs.panelPrice.value : ""); var inverterPrice = simpleMode ? SIMPLE_DEFAULTS.inverterPrice : parseNumber(inputs.inverterPrice ? inputs.inverterPrice.value : ""); var storagePrice = simpleMode ? getDatasetNumber(simpleStorageOption, "price", SIMPLE_DEFAULTS.storagePrice) : parseNumber(inputs.storagePrice ? inputs.storagePrice.value : ""); var simpleChargerOption = getSelectedOption(inputs.simpleChargerModel); var chargerPrice = simpleMode ? getDatasetNumber(simpleChargerOption, "price", SIMPLE_DEFAULTS.chargerPrice) : parseNumber(inputs.chargerPrice ? inputs.chargerPrice.value : ""); var waterHeatingPrice = simpleMode ? waterHeatingSpecs.price : parseNumber(inputs.waterHeatingPrice ? inputs.waterHeatingPrice.value : "");syncYearlyKmControls(yearlyKm); syncEffectiveEnergyPriceLabel(effectiveEnergyPrice);if (!inputs.roofWidth.value.trim() || !inputs.roofLength.value.trim()) { setResultsHidden(true); setWarning(""); if (hasSubmitted) { setInfo(""); setError("Wpisz szerokość i długość dostępnej powierzchni pod instalację."); } else { setError(""); setInfo("Wpisz szerokość i długość dostępnej powierzchni pod instalację."); } return; }setInfo("");if (!isInRange(buildingMonthly, 1, 100000)) { setResultsHidden(true); setWarning(""); setError("Podaj miesięczne zużycie budynku z rachunku w zakresie od 1 do 100 000 kWh."); return; }if (!isInRange(yearlyKm, 0, 50000)) { setResultsHidden(true); setWarning(""); setError("Podaj roczny przebieg w zakresie od 0 do 50 000 km."); return; }if (yearlyKm > 0) { if (!isInRange(consumption, 1, 40)) { setResultsHidden(true); setWarning(""); setError("Podaj średnie zużycie auta w zakresie od 1 do 40 kWh/100 km albo ustaw przebieg auta na 0 km."); return; } } else { consumption = 0; yearlyKm = 0; }if (waterHeatingSpecs.active) { if (!isInRange(hotWaterPeople, 1, 20)) { setResultsHidden(true); setWarning(""); setError("Podaj liczbę osób korzystających z ciepłej wody w zakresie od 1 do 20 albo wybierz wariant bez bojlera i grzałki."); return; }if (!isInRange(hotWaterLitersPerPerson, 5, 150) || !isInRange(hotWaterTempRise, 10, 70)) { setResultsHidden(true); setWarning(""); setError("Podaj zużycie CWU od 5 do 150 l/os./dzień i podgrzanie wody od 10 do 70°C."); return; } } else { hotWaterPeople = 0; hotWaterLitersPerPerson = 0; hotWaterTempRise = 0; waterHeatingPrice = 0; }if (!Number.isFinite(sunValue) || sunValue <= 0) { setResultsHidden(true); setWarning(""); setError("Wybierz województwo z listy."); return; }if (!isInRange(orientationFactor, 0.5, 1.2) || !isInRange(tiltFactor, 0.5, 1.1) || !isInRange(shadingFactor, 0.5, 1.05) || !isInRange(inverterEfficiency, 0.9, 1) || !isInRange(selfConsumptionRate, 0, 1)) { setResultsHidden(true); setWarning(""); setError("Wybierz poprawne parametry dachu, zacienienia, falownika i magazynu energii."); return; }if (!isInRange(panelSpecs.powerKw, 0.3, 0.8) || !isInRange(panelSpecs.width, 0.8, 1.5) || !isInRange(panelSpecs.height, 1.3, 2.5)) { setResultsHidden(true); setWarning(""); setError("Wybierz poprawny model modułu fotowoltaicznego."); return; }if (mountingType !== "roof") { if (mountingType !== "ground") { setResultsHidden(true); setWarning(""); setError("Wybierz miejsce montażu instalacji: dach lub grunt."); return; } }if (!isInRange(roofWidth, 1, 200) || !isInRange(roofLength, 1, 200)) { setResultsHidden(true); setWarning(""); setError("Wpisz szerokość i długość dostępnej powierzchni w metrach, w zakresie od 1 do 200 m."); return; }if (tariffUsesZonePrices()) { if (!isInRange(peakPrice, 0.01, 10) || !isInRange(offPeakPrice, 0.01, 10) || !isInRange(offPeakShare, 0, 100)) { setResultsHidden(true); setWarning(""); setError("Wpisz ceny obu stref taryfy większe od 0 oraz procent ładowania w tańszej strefie."); return; } } else if (!isInRange(energyPrice, 0.01, 10)) { setResultsHidden(true); setWarning(""); setError("Wpisz cenę energii z rachunku większą od 0, maksymalnie 10 PLN/kWh."); return; }if (!isInRange(salePrice, 0, 10)) { setResultsHidden(true); setWarning(""); setError("Wpisz cenę sprzedaży nadwyżki w zakresie od 0 do 10 PLN/kWh."); return; }if (!isInRange(panelPrice, 0, 5000) || !isInRange(inverterPrice, 0, 100000) || !isInRange(storagePrice, 0, 200000) || !isInRange(chargerPrice, 0, 50000) || !isInRange(waterHeatingPrice, 0, 50000)) { setResultsHidden(true); setWarning(""); setError("Wybierz wariant modułów, falownika, magazynu, ładowarki i CWU z poprawną ceną."); return; }var usageRatio = mountingType === "ground" ? GROUND_USAGE_RATIO : ROOF_USAGE_RATIO; var maxPanelsByArea = calculatePanelCount(roofWidth, roofLength, usageRatio, panelSpecs.width, panelSpecs.height);if (maxPanelsByArea < 1) { setResultsHidden(true); setWarning(""); setError("Podane wymiary powierzchni są zbyt małe, aby zmieścić choć jeden moduł PV."); return; }var annualBuildingConsumption = buildingMonthly * 12; var annualVehicleConsumption = yearlyKm * consumption / 100; var annualHotWaterConsumption = calculateAnnualHotWaterConsumption(hotWaterPeople, hotWaterLitersPerPerson, hotWaterTempRise, waterHeatingSpecs.lossRate); var annualBaseDemand = annualBuildingConsumption + annualVehicleConsumption + annualHotWaterConsumption; var annualSeasonalReserve = annualBaseDemand * SEASONAL_DEMAND_BUFFER_RATE; var annualDemand = annualBaseDemand + annualSeasonalReserve; var yearlyProductionPerKwp = sunValue * orientationFactor * tiltFactor * shadingFactor * PERFORMANCE_RATIO * inverterEfficiency; var yearlyProductionPerPanel = yearlyProductionPerKwp * panelSpecs.powerKw; var requiredPanels = Math.max(1, Math.ceil(annualDemand / yearlyProductionPerPanel)); var panels = Math.min(requiredPanels, maxPanelsByArea); var installationPower = panels * panelSpecs.powerKw; var yearlyProduction = yearlyProductionPerKwp * installationPower; var chargerSelfConsumptionBonus = chargerSpecs.pvOptimized && annualVehicleConsumption > 0 ? 0.05 : 0; var hotWaterSelfConsumptionBonus = annualHotWaterConsumption > 0 ? waterHeatingSpecs.selfConsumptionBonus : 0; var selectedSelfConsumptionRate = Math.min(MAX_SELF_CONSUMPTION_RATE, selfConsumptionRate + chargerSelfConsumptionBonus + hotWaterSelfConsumptionBonus); var noStorageSelfConsumptionRate = Math.min(MAX_SELF_CONSUMPTION_RATE, 0.30 + chargerSelfConsumptionBonus + hotWaterSelfConsumptionBonus); var futureStorageSelfConsumptionRate = Math.min(MAX_SELF_CONSUMPTION_RATE, 0.55 + chargerSelfConsumptionBonus + hotWaterSelfConsumptionBonus); var selectedScenario = calculateFinancialScenario(yearlyProduction, annualDemand, effectiveEnergyPrice, salePrice, selectedSelfConsumptionRate); var noStorageScenario = calculateFinancialScenario(yearlyProduction, annualDemand, effectiveEnergyPrice, salePrice, noStorageSelfConsumptionRate); var futureStorageScenario = calculateFinancialScenario(yearlyProduction, annualDemand, effectiveEnergyPrice, salePrice, futureStorageSelfConsumptionRate); var storageUpgradeDelta = selfConsumptionRate > 0.30 ? selectedScenario.annualSavings - noStorageScenario.annualSavings : futureStorageScenario.annualSavings - noStorageScenario.annualSavings; var storageUpgradeHint = selfConsumptionRate > 0.30 ? "różnica względem falownika bez magazynu" : "potencjał po dołożeniu magazynu 5-10 kWh"; var coveragePercent = annualDemand > 0 ? Math.min(100, yearlyProduction / annualDemand * 100) : 100; var annualSavings = selectedScenario.annualSavings; var annualBalance = yearlyProduction - annualDemand; var panelCost = panels * panelPrice; var equipmentCost = panelCost + inverterPrice + storagePrice + chargerPrice + waterHeatingPrice; var equipmentPaybackYears = annualSavings > 0 ? (equipmentCost > 0 ? equipmentCost / annualSavings : null) : null; var monthlyData = applyMonthlyNetBilling( getMonthlyData(yearlyProduction, annualBuildingConsumption, annualVehicleConsumption, annualHotWaterConsumption, yearlyKm, consumption, monthlyProductionShare), salePrice ); var warnings = [];if (panels < requiredPanels) { warnings.push("Dostępna powierzchnia pozwala zmieścić " + formatInteger(maxPanelsByArea) + " modułów z wymaganych " + formatInteger(requiredPanels) + ". Wyniki pokazują instalację ograniczoną powierzchnią."); }if (waterHeatingSpecs.volumeLiters > 0) { if (hotWaterPeople * hotWaterLitersPerPerson > waterHeatingSpecs.volumeLiters * 1.5) { warnings.push("Wybrana pojemność bojlera może być mała względem dziennego zużycia CWU. Przed ofertą sprawdź profil poboru i wymaganą pojemność zasobnika."); } }setError(""); if (mountingType === "ground") { warnings.push("Montaż gruntowy wymaga sprawdzenia warunków gruntu, zacienienia, odległości rzędów i ewentualnych formalności."); } else if (roofLoad !== "confirmed") { warnings.push("Nośność dachu nie została potwierdzona. Przed montażem PV wymagana jest ocena konstrukcyjna."); }setWarning(warnings.join(" ")); setResultsHidden(false); updateOutputs({ mode: simpleMode ? "simple" : "advanced", panelLabel: panelSpecs.label, panels: panels, requiredPanels: requiredPanels, maxPanelsByArea: maxPanelsByArea, installationPower: installationPower, yearlyProduction: yearlyProduction, annualBuildingConsumption: annualBuildingConsumption, annualVehicleConsumption: annualVehicleConsumption, annualHotWaterConsumption: annualHotWaterConsumption, annualBaseDemand: annualBaseDemand, annualSeasonalReserve: annualSeasonalReserve, annualDemand: annualDemand, selfConsumedEnergy: selectedScenario.selfConsumedEnergy, surplusEnergy: selectedScenario.surplusEnergy, surplusValue: selectedScenario.surplusValue, storageUpgradeDelta: storageUpgradeDelta, storageUpgradeHint: storageUpgradeHint, coveragePercent: coveragePercent, annualSavings: annualSavings, annualBalance: annualBalance, panelPrice: panelPrice, inverterPrice: inverterPrice, storagePrice: storagePrice, panelCost: panelCost, chargerPrice: chargerPrice, waterHeatingPrice: waterHeatingPrice, waterHeatingLabel: waterHeatingSpecs.label, hotWaterPeople: hotWaterPeople, hotWaterLitersPerPerson: hotWaterLitersPerPerson, hotWaterTempRise: hotWaterTempRise, salePrice: salePrice, equipmentCost: equipmentCost, equipmentPaybackYears: equipmentPaybackYears, effectiveEnergyPrice: effectiveEnergyPrice, mountingType: mountingType, sunValue: sunValue, monthlyData: monthlyData }); }calculator.querySelectorAll("input, select").forEach(function (field) { field.addEventListener("input", function (event) { calculate(event); }); field.addEventListener("change", function (event) { calculate(event); }); });if (form) { form.addEventListener("submit", function (event) { calculate(event); }); }if (printButton) { printButton.addEventListener("click", handlePrintReport); }function scheduleResizeRender() { window.clearTimeout(resizeTimer); resizeTimer = window.setTimeout(function () { if (!lastMonthlyData || !chart) { return; }var rect = chart.getBoundingClientRect(); var width = Math.max(320, Math.round(rect.width || 900)); var height = Math.max(260, Math.round(rect.height || 310));if (width === lastChartWidth) { if (height === lastChartHeight) { return; } }drawChart(lastMonthlyData); }, 150); }if ("ResizeObserver" in window) { var resizeObserver = new ResizeObserver(scheduleResizeRender); resizeObserver.observe(chart ? (chart.parentElement ? chart.parentElement : calculator) : calculator); } else { window.addEventListener("resize", scheduleResizeRender); }syncModeVisibility(); syncStorageAvailability(); syncMountingType(); syncTariffHint(); calculate(); }if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", initEpuPvCalculator); } else { initEpuPvCalculator(); } }());

Promocyjna cena za kWh! 1,29 PLN brutto !!!

Shopping cart
Zaloguj

Nie masz jeszcze konta?

Zarejestruj się