@page "/" @using Radzen @using Radzen.Blazor @using BattSim.Models @using BattSim.Services BattSim

BattSim

Input Data

Upload your Fluvius quarterly csv file here. The longer the timeframe the longer it takes to process.

@if (_isLoadingFile) {

Loading...

} else { @if (FluviusDataRaw.Count != 0) {

@(FluviusDataRaw.Count) entries read.

} @if (FluviusDataDaily.Count != 0) { } }
@code{ Dictionary FluviusDataRaw = []; Dictionary FluviusDataDaily = []; bool _isLoadingFile = false; private async Task OnFileUploaded(InputFileChangeEventArgs e) { var file = e.File; if (file.ContentType != "text/csv") { Console.WriteLine("Only CSV files are allowed!"); return; } try { Console.WriteLine("Reading csv file..."); _isLoadingFile = true; StateHasChanged(); FluviusDataRaw = await FluviusDataHandler.LoadAndProcessFile(file); FluviusDataDaily = FluviusDataHandler.GenerateDailyData(FluviusDataRaw); _isLoadingFile = false; StateHasChanged(); Console.WriteLine("Done reading csv file!"); } catch (Exception ex) { Console.WriteLine($"Error loading file: {ex.Message}"); } } private void OnSeriesClick(){} private string FormatObject(object value) { if(value is double d) return $"{d:0.##} kWh"; if(value is DateTime date) return date.ToString("dd/MM/yyyy"); return string.Empty; } }

Simulate Battery

Generate adjusted energy data simulating the effect of a battery with properties as configured here:

  • Capacity: kWh

  • Discharge Rate: kW

  • Charge Rate: kW

  • Round-trip Efficiency: %

@code { double BatteryCapacity = 7.5; double DischargeRate = 3; double ChargeRate = 3; double Efficiency = 90; BatteryDayResult[] SimulationData = []; private async Task SimulateBattery(){ Console.WriteLine("Simulating..."); // SimulationData = BatterySimulator.SimulateBattery(EnergyData, BatteryCapacity).ToArray(); Console.WriteLine("Done simulating!"); } }

Calculate Cost