Compare commits

..

4 Commits

Author SHA1 Message Date
atef 3b12425838 Merge remote-tracking branch 'origin/main' 2024-01-29 13:24:48 +01:00
atef 8c7a834d39 add heating power to hourly data 2024-01-29 13:24:38 +01:00
atef ed5e9fe6dc comment displaying function 2024-01-29 13:24:25 +01:00
atef 445f7b6434 Adding heating powerto the aggregate data. 2024-01-29 13:23:48 +01:00
3 changed files with 29 additions and 19 deletions

View File

@ -102,6 +102,7 @@ public static class Aggregator
var csvFiles = Directory.GetFiles(myDirectory, "*.csv"); var csvFiles = Directory.GetFiles(myDirectory, "*.csv");
var batterySoc = new List<Double>(); var batterySoc = new List<Double>();
var pvPowerAverage = new List<Double>(); var pvPowerAverage = new List<Double>();
var heatingPower = new List<Double>();
var gridPowerImport = new List<Double>(); var gridPowerImport = new List<Double>();
var gridPowerExport = new List<Double>(); var gridPowerExport = new List<Double>();
var batteryDischargePower = new List<Double>(); var batteryDischargePower = new List<Double>();
@ -166,6 +167,9 @@ public static class Aggregator
case "/GridMeter/ActivePowerImportT2": case "/GridMeter/ActivePowerImportT2":
gridPowerImport.Add(value); gridPowerImport.Add(value);
break; break;
case "/Battery/HeatingPower":
heatingPower.Add(value);
break;
// Add more cases as needed // Add more cases as needed
default: default:
// Code to execute when variableName doesn't match any condition // Code to execute when variableName doesn't match any condition
@ -200,7 +204,7 @@ public static class Aggregator
var dischargingEnergy = (batteryDischargePower.Any() ? batteryDischargePower.Average() : 0.0) / 3600; var dischargingEnergy = (batteryDischargePower.Any() ? batteryDischargePower.Average() : 0.0) / 3600;
var chargingEnergy = (batteryChargePower.Any() ? batteryChargePower.Average() : 0.0) / 3600; var chargingEnergy = (batteryChargePower.Any() ? batteryChargePower.Average() : 0.0) / 3600;
var heatingPowerAvg = (heatingPower.Any() ? heatingPower.Average() : 0.0) / 3600;
var dMaxSoc = batterySoc.Any() ? batterySoc.Max() : 0.0; var dMaxSoc = batterySoc.Any() ? batterySoc.Max() : 0.0;
var dMinSoc = batterySoc.Any() ? batterySoc.Min() : 0.0; var dMinSoc = batterySoc.Any() ? batterySoc.Min() : 0.0;
var dSumGridExportPower = gridPowerExport.Any() ? (gridPowerExport.Max() - gridPowerExport.Min()) / 1000 : 0.0; var dSumGridExportPower = gridPowerExport.Any() ? (gridPowerExport.Max() - gridPowerExport.Min()) / 1000 : 0.0;
@ -213,9 +217,10 @@ public static class Aggregator
MinSoc = dMinSoc, MinSoc = dMinSoc,
SumDischargingBatteryPower = dischargingEnergy, SumDischargingBatteryPower = dischargingEnergy,
SumChargingBatteryPower = chargingEnergy, SumChargingBatteryPower = chargingEnergy,
SumGridExportPower = dSumGridExportPower, // divide it SumGridExportPower = dSumGridExportPower,
SumGridImportPower = dSumGridImportPower, // divide it SumGridImportPower = dSumGridImportPower,
SumPvPower = dSumPvPower SumPvPower = dSumPvPower,
HeatingPowerAvg = heatingPowerAvg
}; };
// Print the stored CSV data for verification // Print the stored CSV data for verification
@ -247,6 +252,7 @@ public static class Aggregator
var gridPowerExport = new List<Double>(); var gridPowerExport = new List<Double>();
var batteryDischargePower = new List<Double>(); var batteryDischargePower = new List<Double>();
var batteryChargePower = new List<Double>(); var batteryChargePower = new List<Double>();
var heatingPowerAvg = new List<Double>();
Console.WriteLine("-----------------------------------------------------------------------------------------------------------------"); Console.WriteLine("-----------------------------------------------------------------------------------------------------------------");
@ -301,6 +307,10 @@ public static class Aggregator
case "/SumGridImportPower": case "/SumGridImportPower":
gridPowerImport.Add(value); gridPowerImport.Add(value);
break; break;
case "/HeatingPowerAvg":
heatingPowerAvg.Add(value);
break;
// Add more cases as needed // Add more cases as needed
default: default:
// Code to execute when variableName doesn't match any condition // Code to execute when variableName doesn't match any condition
@ -333,6 +343,7 @@ public static class Aggregator
SumGridExportPower = gridPowerExport.Any() ? gridPowerExport.Average() : 0.0, SumGridExportPower = gridPowerExport.Any() ? gridPowerExport.Average() : 0.0,
SumGridImportPower = gridPowerImport.Any() ? gridPowerImport.Average() : 0.0, SumGridImportPower = gridPowerImport.Any() ? gridPowerImport.Average() : 0.0,
SumPvPower = pvPowerAverage.Any() ? pvPowerAverage.Average() : 0.0, SumPvPower = pvPowerAverage.Any() ? pvPowerAverage.Average() : 0.0,
HeatingPowerAvg = heatingPowerAvg.Any() ? heatingPowerAvg.Average() : 0.0,
}; };
// Print the stored CSV data for verification // Print the stored CSV data for verification

View File

@ -19,6 +19,7 @@ public class AggregatedData
public required Double SumChargingBatteryPower { get; set; } public required Double SumChargingBatteryPower { get; set; }
public required Double SumGridExportPower { get; set; } public required Double SumGridExportPower { get; set; }
public required Double SumGridImportPower { get; set; } public required Double SumGridImportPower { get; set; }
public required Double HeatingPowerAvg { get; set; }
private readonly S3Config? _S3Config = Config.Load().S3; private readonly S3Config? _S3Config = Config.Load().S3;

View File

@ -213,24 +213,22 @@ internal static class Program
int nodeIndex = 2; // Starting node number int nodeIndex = 2; // Starting node number
foreach (var batteryNodeRecord in record.Battery.Devices) //foreach (var batteryNodeRecord in record.Battery.Devices)
{ //{
var ioStates = batteryNodeRecord.IoStates; // var ioStates = batteryNodeRecord.IoStates;
batteryNodeRecord.FwVersion.WriteLine(" FwVersion "); // batteryNodeRecord.FwVersion.WriteLine(" FwVersion ");
Convert.ToString(ioStates, 2).PadLeft(16, '0').WriteLine($" IoStates Battery node {nodeIndex}"); // Convert.ToString(ioStates, 2).PadLeft(16, '0').WriteLine($" IoStates Battery node {nodeIndex}");
batteryNodeRecord.Dc.Current.WriteLine($" Current Battery node {nodeIndex}"); // batteryNodeRecord.Dc.Current.WriteLine($" Current Battery node {nodeIndex}");
batteryNodeRecord.Dc.Voltage.WriteLine($" Voltage Battery node {nodeIndex}"); // batteryNodeRecord.Dc.Voltage.WriteLine($" Voltage Battery node {nodeIndex}");
// ("********************************************************").WriteLine();
("********************************************************").WriteLine(); // nodeIndex++;
//}
nodeIndex++;
}
// record.GridMeter?.ActivePowerExportT1.WriteLine("kWh Import 7008"); // record.GridMeter?.ActivePowerExportT1.WriteLine("kWh Import 7008");
// record.GridMeter?.ActivePowerImportT1.WriteLine("kWh Export 7028"); // record.GridMeter?.ActivePowerImportT1.WriteLine("kWh Export 7028");
record.GridMeter?.ActivePowerExportT2.WriteLine("Wh Import 6008"); // record.GridMeter?.ActivePowerExportT2.WriteLine("Wh Import 6008");
// record.GridMeter?.ActivePowerImportT2.WriteLine("Wh Export 6028"); // record.GridMeter?.ActivePowerImportT2.WriteLine("Wh Export 6028");
// record.GridMeter?.ActivePowerExportT3.WriteLine("Kwh Import 8004"); // record.GridMeter?.ActivePowerExportT3.WriteLine("Kwh Import 8004");
// record.GridMeter?.ActivePowerImportT3.WriteLine("kWh Export 8014"); // record.GridMeter?.ActivePowerImportT3.WriteLine("kWh Export 8014");