From 17e03309843b9c2f2124002e5ecffd12c80ab9da Mon Sep 17 00:00:00 2001 From: atef Date: Tue, 4 Mar 2025 10:04:39 +0100 Subject: [PATCH] change function type from public to pvt and fix some typo --- csharp/App/SaliMax/src/Ess/Controller.cs | 5 +- csharp/App/SaliMax/src/Program.cs | 7 +- csharp/App/SodiStoreMax/Doc/AllStates.graphml | 934 ++++++++++++++++++ .../SodiStoreMax/resources/Battery.Service | 12 + .../BatteryDeligreen/BatteryDeligreen.csproj | 4 - 5 files changed, 951 insertions(+), 11 deletions(-) create mode 100644 csharp/App/SodiStoreMax/Doc/AllStates.graphml create mode 100644 csharp/App/SodiStoreMax/resources/Battery.Service diff --git a/csharp/App/SaliMax/src/Ess/Controller.cs b/csharp/App/SaliMax/src/Ess/Controller.cs index befeed857..5eab3ec60 100644 --- a/csharp/App/SaliMax/src/Ess/Controller.cs +++ b/csharp/App/SaliMax/src/Ess/Controller.cs @@ -12,8 +12,8 @@ public static class Controller private static readonly Double BatteryHeatingPower = 200.0; // TODO: move to config private static Boolean _hasRepetitiveCalibrationChargeChecked = false; private static DateTime _nextDayAt10Am = DateTime.Now; - - public static EssMode SelectControlMode(this StatusRecord s) + + private static EssMode SelectControlMode(this StatusRecord s) { //return EssMode.OptimizeSelfConsumption; @@ -120,6 +120,7 @@ public static class Controller //var maxInverterChargePower = s.ControlInverterPower(s.Config.MaxInverterPower); var maxBatteryChargePower = s.MaxBatteryChargePower(); + maxBatteryChargePower.WriteLine("MaxBattery Charge Power"); return control //.LimitChargePower(, EssLimit.ChargeLimitedByInverterPower) diff --git a/csharp/App/SaliMax/src/Program.cs b/csharp/App/SaliMax/src/Program.cs index 9cf80d254..c73a7980d 100644 --- a/csharp/App/SaliMax/src/Program.cs +++ b/csharp/App/SaliMax/src/Program.cs @@ -1,12 +1,9 @@ #undef Amax #undef GridLimit -using System.Diagnostics; using System.IO.Compression; using System.Reactive.Linq; using System.Reactive.Threading.Tasks; -using System.Reflection.Metadata; -using System.Security; using System.Text; using Flurl.Http; using InnovEnergy.App.SaliMax.Devices; @@ -28,7 +25,6 @@ using InnovEnergy.Lib.Protocols.Modbus.Channels; using InnovEnergy.Lib.Units; using InnovEnergy.Lib.Utils; using InnovEnergy.App.SaliMax.DataTypes; -using InnovEnergy.Lib.Utils.Net; using static System.Int32; using static InnovEnergy.App.SaliMax.AggregationService.Aggregator; using static InnovEnergy.App.SaliMax.MiddlewareClasses.MiddlewareAgent; @@ -696,6 +692,7 @@ internal static class Program }); } + // To test, most probably the curtailing flag will not work private static void PerformLed(this StatusRecord record) { if (record.StateMachine.State == 23) @@ -746,7 +743,7 @@ internal static class Program if (criticalAlarm is not null) { - record.Relays?.PerformSolidRedLed(); + record.Relays?.PerformFastFlashingRedLed(); } } diff --git a/csharp/App/SodiStoreMax/Doc/AllStates.graphml b/csharp/App/SodiStoreMax/Doc/AllStates.graphml new file mode 100644 index 000000000..5877679af --- /dev/null +++ b/csharp/App/SodiStoreMax/Doc/AllStates.graphml @@ -0,0 +1,934 @@ + + + + + + + + + + + + + + + + + + + + + + + 23 + K1 ✓ +K2 ✓ +K3 ✓ + + + + + + + + + + + + + 19 + K1 ✓ +K2 ✓ +K3 ✘ + + + + + + + + + + + + + 3 + K1 ✓ +K2 ✓ +K3 ✘ + + + + + + + + + + + + + 9 + K1 ✓ +K2 ✘ +K3 ✘ + + + + + + + + + + + + + 1 + K1 ✓ +K2 ✘ +K3 ✘ + + + + + + + + + + + + + 13 + K1 ✓ +K2 ✘ +K3 ✓ + + + + + + + + + + + + + 29 + K1 ✓ +K2 ✘ +K3 ✓ + + + + + + + + + + + + + 5 + K1 ✓ +K2 ✘ +K3 ✓ + + + + + + + + + + + + + 7 + K1 ✓ +K2 ✓ +K3 ✓ + + + + + + + + + + + + + + 11 + K1 ✓ +K2 ✓ +K3 ✘ + + + + + + + + + + + + + + 15 + K1 ✓ +K2 ✓ +K3 ✓ + + + + + + + + + + + + + 21 + K1 ✓ +K2 ✘ +K3 ✓ + + + + + + + + + + + + + 17 + K1 ✓ +K2 ✘ +K3 ✘ + + + + + + + + + + + + + + 25 + K1 ✓ +K2 ✘ +K3 ✘ + + + + + + + + + + + + + + 27 + K1 ✓ +K2 ✓ +K3 ✘ + + + + + + + + + + + + + + 31 + K1 ✓ +K2 ✓ +K3 ✓ + + + + + + + + + + + + + 28 + K1 ✘ +K2 ✘ +K3 ✓ + + + + + + + + + + + + + 24 + K1 ✘ +K2 ✘ +K3 ✘ + + + + + + + + + + + + + 8 + K1 ✘ +K2 ✘ +K3 ✘ + + + + + + + + + + + + + 6 + K1 ✘ +K2 ✓ +K3 ✓ + + + + + + + + + + + + + 0 + K1 ✘ +K2 ✘ +K3 ✘ + + + + + + + + + + + + + 4 + K1 ✘ +K2 ✘ +K3 ✓ + + + + + + + + + + + + + 22 + K1 ✘ +K2 ✓ +K3 ✓ + + + + + + + + + + + + + 16 + K1 ✘ +K2 ✘ +K3 ✘ + + + + + + + + + + + + + 20 + K1 ✘ +K2 ✘ +K3 ✓ + + + + + + + + + + + + + 18 + K1 ✘ +K2 ✓ +K3 ✘ + + + + + + + + + + + + + 2 + K1 ✘ +K2 ✓ +K3 ✘ + + + + + + + + + + + + + 10 + K1 ✘ +K2 ✓ +K3 ✘ + + + + + + + + + + + + + 12 + K1 ✘ +K2 ✘ +K3 ✓ + + + + + + + + + + + + + 14 + K1 ✘ +K2 ✓ +K3 ✓ + + + + + + + + + + + + + 26 + K1 ✘ +K2 ✓ +K3 ✘ + + + + + + + + + + + + + 30 + K1 ✘ +K2 ✓ +K3 ✓ + + + + + + + + + + + + + turn off +Inverters + + + + + + + + + + + switch to +grid tie + + + + + + + + + + + K3's open + + + + + + + + + + + close K2 + + + + + + + + + + + turn on +Inverters + + + + + + + + + + + K3's close + + + + + + + + + + + + + + open K2 + + + + + + + + + + + open K2 + + + + + + + + + + + + + + turn off +inverter + + + + + + + + + + + turn off +inverters and open K2 + + + + + + + + + + + turn off +inverters + + + + + + + + + + + turn off +inverters and open K2 + + + + + + + + + + + + + + turn off +inverters + + + + + + + + + + + K3's close + + + + + + + + + + + turn off +Inverters + + + + + + + + + + + switch to +island mode + + + + + + + + + + + turn on +inverters + + + + + + + + + + + turn off +Inverters + + + + + + + + + + + K3 opens + + + + + + + + + + + open K2 + + + + + + + + + + + + + turn off +inverters and Open K2 + + + + + + + + + + + + + + open K2 + + + + + + + + + + + + + + open K2 + + + + + + + + + + + K3 opens + + + + + + + + + + + open K2 + + + + + + + + + + + + + turn off +inverters and open K2 + + + + + + + + + + + turn off +inverters + + + + + + + + + + + K1 closes + + + + + + + + + + + K1 opens + + + + + + + + + + + + + + turn off +inverters + + + + + + + + + + + + + + K3's open + + + + + + + + + + + + + + K3's open + + + + + + + + + diff --git a/csharp/App/SodiStoreMax/resources/Battery.Service b/csharp/App/SodiStoreMax/resources/Battery.Service new file mode 100644 index 000000000..ebead9a53 --- /dev/null +++ b/csharp/App/SodiStoreMax/resources/Battery.Service @@ -0,0 +1,12 @@ +[Unit] +Description=Battery48TL_TCP_Bridge + +[Service] +Type=simple +ExecStart=socat -x -d -d TCP-LISTEN:6855 GOPEN:/dev/ttyUSB0,rawer,b115200,cs8,parenb=1,parodd=1 +Restart=always +RestartSec=500ms +StartLimitInterval=0 + +[Install] +WantedBy=multi-user.target diff --git a/csharp/Lib/Devices/BatteryDeligreen/BatteryDeligreen.csproj b/csharp/Lib/Devices/BatteryDeligreen/BatteryDeligreen.csproj index 03f0a38e1..140b6f843 100644 --- a/csharp/Lib/Devices/BatteryDeligreen/BatteryDeligreen.csproj +++ b/csharp/Lib/Devices/BatteryDeligreen/BatteryDeligreen.csproj @@ -6,10 +6,6 @@ InnovEnergy.Lib.Devices.BatteryDeligreen - - - -