diff --git a/csharp/App/GrowattCommunication/Program.cs b/csharp/App/GrowattCommunication/Program.cs index 939373298..f643a613a 100644 --- a/csharp/App/GrowattCommunication/Program.cs +++ b/csharp/App/GrowattCommunication/Program.cs @@ -32,13 +32,13 @@ namespace InnovEnergy.App.GrowattCommunication; public static class Program { - private static readonly TimeSpan UpdateInterval = TimeSpan.FromSeconds(5); + private static readonly TimeSpan UpdateInterval = TimeSpan.FromSeconds(6); private const UInt16 NbrOfFileToConcatenate = 15; // add this to config file private static UInt16 _fileCounter = 0; // private static Channel _growattChannel; - private const String SwVersionNumber =" V1.00.310725 beta"; + private static readonly String SwVersionNumber = " V1.00." + DateTime.Today; private const String VpnServerIp = "10.2.0.11"; private static Boolean _subscribedToQueue = false; private static Boolean _subscribeToQueueForTheFirstTime = false; @@ -142,14 +142,14 @@ public static class Program statusrecord.InverterRecord.EnableEmsCommunicationFailureTime.WriteLine(" = EnableEmsCommunicationFailureTime"); statusrecord.InverterRecord.EnableCommand.WriteLine(" = EnableCommand"); - statusrecord.InverterRecord.ControlPermession.WriteLine(" = ControlPermession"); + statusrecord.InverterRecord.ControlPermission.WriteLine(" = ControlPermession"); statusrecord.InverterRecord.GridPower.WriteLine(" MeterPower"); statusrecord.InverterRecord.ConsumptionPower.WriteLine(" ConsumptionPower"); statusrecord.InverterRecord.ExportedPowerToGridMeter.WriteLine(" ExportedPowerToGrid"); statusrecord.InverterRecord.ImportedPowerFromGrid.WriteLine(" ImportedPowerFromGrid"); statusrecord.InverterRecord.InverterActivePower.WriteLine(" InverterActivePower"); - statusrecord.InverterRecord.MaxSoc.WriteLine(" BatteryChargeCutoffVoltage "); //30409 we set power here - statusrecord.InverterRecord.MinSoc.WriteLine(" BatteryDishargeCutoffVoltage "); //30409 we set power here + statusrecord.InverterRecord.MaxSoc.WriteLine(" MaxSoc "); //30409 we set power here + statusrecord.InverterRecord.MinSoc.WriteLine(" MinSoc "); //30409 we set power here statusrecord.InverterRecord.PowerFactor.WriteLine(" = PowerFactor"); statusrecord.InverterRecord.Battery1Soc.WriteLine(" SOC"); statusrecord.InverterRecord.Battery1Power.WriteLine(" Battery Power"); @@ -157,7 +157,6 @@ public static class Program statusrecord.InverterRecord.Battery1Voltage.WriteLine(" Battery Voltage"); statusrecord.InverterRecord.BatteryMaxChargingCurrent.WriteLine(" BatteryMaxChargeCurrent "); //30409 we set power here statusrecord.InverterRecord.BatteryMaxDischargingCurrent.WriteLine(" BatteryMaxDischargeCurrent "); //30409 we set power here - statusrecord.InverterRecord.MinSoc.WriteLine(" MinSoc "); //30409 we set power here statusrecord.InverterRecord.ChargeCutoffSocVoltage.WriteLine(" ChargeCutoffSoc "); //30409 we set power here statusrecord.InverterRecord.PvPower.WriteLine(" Pv Power "); //30409 we set power here @@ -206,6 +205,7 @@ public static class Program status.Config.MaximumDischargingCurrent = config.MaximumDischargingCurrent; status.Config.OperatingPriority = config.OperatingPriority; status.Config.BatteriesCount = config.BatteriesCount; + status.Config.ControlPermission = config.ControlPermission; } private static String EssModeControl(StatusRecord? statusrecord) @@ -247,11 +247,10 @@ public static class Program var alarmList = new List(); var warningList = new List(); - if (record.InverterRecord.SystemOperatingMode == GrowattSystemStatus.Fault) - { - if (record.InverterRecord.FaultMainCode != 0) + + if (record.InverterRecord.WarningMainCode != 0) { - alarmList.Add(new AlarmOrWarning + warningList.Add(new AlarmOrWarning { Date = DateTime.Now.ToString("yyyy-MM-dd"), Time = DateTime.Now.ToString("HH:mm:ss"), @@ -260,9 +259,9 @@ public static class Program }); } - if (record.InverterRecord.WarningMainCode != 0) + if (record.InverterRecord.FaultMainCode != 0) { - warningList.Add(new AlarmOrWarning + alarmList.Add(new AlarmOrWarning { Date = DateTime.Now.ToString("yyyy-MM-dd"), Time = DateTime.Now.ToString("HH:mm:ss"), @@ -270,7 +269,7 @@ public static class Program Description = record.InverterRecord.FaultMainCode.ToString(), //to add the sub code }); } - } + _sodiohomeAlarmState = warningList.Any() ? SodistoreAlarmState.Orange @@ -376,7 +375,7 @@ public static class Program _lastHeartbeatTime = DateTime.Now; } - if (s3Bucket != null) + if (s3Bucket != null) // why this is based on s3 bucket? { RabbitMqManager.InformMiddleware(currentSalimaxState); } @@ -401,9 +400,8 @@ public static class Program st.InverterRecord.EmsCommunicationFailureTime = 20; // 20 sec st.InverterRecord.EnableEmsCommunicationFailureTime = false; st.InverterRecord.EnableCommand = true; - st.InverterRecord.ControlPermession = true; - st.InverterRecord.MaxSoc = 60; //st.Config.BatteryChargeCutoffVoltage; - st.InverterRecord.MinSoc = 25; //st.Config.BatteryDischargeCutoffVoltage; + st.InverterRecord.ControlPermission = st.Config.ControlPermission;; + st.InverterRecord.MaxSoc = 100; //st.Config.MaxSoc; } private static Dictionary ConvertToModbusRegisters(Object value, String outputType, @@ -645,7 +643,7 @@ public static class Program Console.WriteLine(error); await SaveToLocalCompressedFallback(compressedBytes, fileNameWithoutExtension); - Heartbit(); + // Heartbit(); return false; } @@ -654,7 +652,7 @@ public static class Program Console.WriteLine( "---------------------------------------- Resending FailedUploadedFiles----------------------------------------"); - Heartbit(); + //Heartbit(); await ResendLocalFailedFilesAsync(s3Config); // retry any pending failed files } @@ -667,7 +665,7 @@ public static class Program await SaveToLocalCompressedFallback(compressedBytes, fileNameWithoutExtension); } - Heartbit(); + //Heartbit(); return false; } } @@ -676,7 +674,7 @@ public static class Program return true; } - private static void Heartbit() + /* private static void Heartbit() { var s3Bucket = Config.Load().S3?.Bucket; var tryParse = int.TryParse(s3Bucket?.Split("-")[0], out var installationId); @@ -693,7 +691,7 @@ public static class Program if (s3Bucket != null) RabbitMqManager.InformMiddleware(returnedStatus); } - } + }*/ private static async Task SaveToLocalCompressedFallback(Byte[] compressedData, String fileNameWithoutExtension) {