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