Update the aggregate data

This commit is contained in:
atef 2024-01-19 12:32:08 +01:00
parent b0bd8fb3e2
commit 50eaf261a3
1 changed files with 30 additions and 24 deletions

View File

@ -1,3 +1,4 @@
using InnovEnergy.App.SaliMax.Ess;
using InnovEnergy.Lib.Utils; using InnovEnergy.Lib.Utils;
using static System.Double; using static System.Double;
@ -141,11 +142,19 @@ public static class Aggregator
batterySoc.Add(value); batterySoc.Add(value);
break; break;
case "/PvOnDc/Dc/Power" or "/SumPvPower": case "/PvOnDc/DcWh" or "/SumPvPower":
pvPowerAverage.Add(value); pvPowerAverage.Add(value);
break; break;
case "/Battery/Dc/Power" or "/SumDischargingBatteryPower" or "/SumChargingBatteryPower": case "/Battery/Dc/Power" or "/SumDischargingBatteryPower" or "/SumChargingBatteryPower":
//Average Power (Watts)= Sum of Power Readings/Number of Readings
//Then, you can use the average power in the energy formula:
//
//Energy (kWh)= (Average Power / 3600) × Time (seconds)
//
// Dividing the Average power readings by 3600 converts the result from watt-seconds to kilowatt-hours.
if (value < 0) if (value < 0)
{ {
batteryDischargePower.Add(value); batteryDischargePower.Add(value);
@ -157,16 +166,13 @@ public static class Aggregator
} }
break; break;
case "/GridMeter/Ac/Power/Active" or "/SumGridExportPower" or "/SumGridImportPower": case "/GridMeter/ActivePowerExportT2" or "/SumGridExportPower":
if (value < 0) // we are using different register to check which value from the grid meter we need to use
{ gridPowerExport.Add(value);
gridPowerExport.Add(value); break;
}
else case "/GridMeter/ActivePowerImportT2" or "/SumGridImportPower":
{ gridPowerImport.Add(value);
gridPowerImport.Add(value);
}
break; break;
// Add more cases as needed // Add more cases as needed
default: default:
@ -190,29 +196,29 @@ public static class Aggregator
} }
} }
} }
AggregatedData aggregatedData = new AggregatedData AggregatedData aggregatedData = new AggregatedData
{ {
MaxSoc = batterySoc.Any() ? batterySoc.Max() : 0.0, MaxSoc = batterySoc.Any() ? batterySoc.Max() : 0.0,
MinSoc = batterySoc.Any() ? batterySoc.Min() : 0.0, MinSoc = batterySoc.Any() ? batterySoc.Min() : 0.0,
SumDischargingBatteryPower = batteryDischargePower.Any() ? batteryDischargePower.Sum() : 0.0, SumDischargingBatteryPower = batteryDischargePower.Any() ? batteryDischargePower.Average(): 0.0,
SumChargingBatteryPower = batteryChargePower.Any() ? batteryChargePower.Sum() : 0.0, SumChargingBatteryPower = batteryChargePower.Any() ? batteryChargePower.Average() : 0.0,
SumGridExportPower = gridPowerExport.Any() ? gridPowerExport.Sum() : 0.0, SumGridExportPower = gridPowerExport.Any() ? gridPowerExport.Average() : 0.0,
SumGridImportPower = gridPowerImport.Any() ? gridPowerImport.Sum() : 0.0, SumGridImportPower = gridPowerImport.Any() ? gridPowerImport.Average() : 0.0,
SumPvPower = pvPowerAverage.Any() ? pvPowerAverage.Sum() : 0.0, SumPvPower = pvPowerAverage.Any() ? pvPowerAverage.Average() : 0.0,
}; };
// Print the stored CSV data for verification // Print the stored CSV data for verification
Console.WriteLine($"Max SOC: {aggregatedData.MaxSoc}"); Console.WriteLine($"Max SOC: {aggregatedData.MaxSoc}");
Console.WriteLine($"Min SOC: {aggregatedData.MinSoc}"); Console.WriteLine($"Min SOC: {aggregatedData.MinSoc}");
Console.WriteLine($"ChargingBatteryPower: {aggregatedData.SumDischargingBatteryPower}"); Console.WriteLine($"ChargingBatteryPower: {aggregatedData.SumDischargingBatteryPower}");
Console.WriteLine($"DischargingBatteryBattery: {aggregatedData.SumChargingBatteryPower}"); Console.WriteLine($"DischargingBatteryBattery: {aggregatedData.SumChargingBatteryPower}");
Console.WriteLine($"SumGridExportPower: {aggregatedData.SumGridExportPower}"); Console.WriteLine($"SumGridExportPower: {aggregatedData.SumGridExportPower}");
Console.WriteLine($"SumGridImportPower: {aggregatedData.SumGridImportPower}"); Console.WriteLine($"SumGridImportPower: {aggregatedData.SumGridImportPower}");
Console.WriteLine($"Min SOC: {aggregatedData.MinSoc}"); Console.WriteLine($"Min SOC: {aggregatedData.MinSoc}");
Console.WriteLine("CSV data reading and storage completed."); Console.WriteLine("CSV data reading and storage completed.");