added product_based configuration in the backend of the monitor

This commit is contained in:
Yinyin Liu 2025-10-20 16:32:47 +02:00
parent bc142201c0
commit e4674b41e5
3 changed files with 53 additions and 20 deletions

View File

@ -8,6 +8,7 @@ using InnovEnergy.App.Backend.Relations;
using InnovEnergy.App.Backend.Websockets; using InnovEnergy.App.Backend.Websockets;
using InnovEnergy.Lib.Utils; using InnovEnergy.Lib.Utils;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
namespace InnovEnergy.App.Backend; namespace InnovEnergy.App.Backend;
@ -935,11 +936,19 @@ public class Controller : ControllerBase
[HttpPost(nameof(EditInstallationConfig))] [HttpPost(nameof(EditInstallationConfig))]
public async Task<ActionResult<IEnumerable<Object>>> EditInstallationConfig([FromBody] Configuration config, Int64 installationId,Token authToken) public async Task<ActionResult<IEnumerable<Object>>> EditInstallationConfig([FromBody] Configuration config, Int64 installationId,int product,Token authToken)
{ {
var session = Db.GetSession(authToken); var session = Db.GetSession(authToken);
Console.WriteLine("CONFIG IS " + config.GetConfigurationString()); string configString = product switch
{
0 => config.GetConfigurationSalimax(), // Salimax
3 => config.GetConfigurationSodistoreMax(), // SodiStoreMax
2 => config.GetConfigurationSodistoreHome(), // SodiStoreHome
_ => config.GetConfigurationString() // fallback
};
Console.WriteLine("CONFIG IS " + configString);
//Send configuration changes //Send configuration changes
var success = await session.SendInstallationConfig(installationId, config); var success = await session.SendInstallationConfig(installationId, config);
@ -947,17 +956,23 @@ public class Controller : ControllerBase
// Record configuration change // Record configuration change
if (success) if (success)
{ {
// Create a new UserAction object // // Update Configuration colum in Installation table
// var installation = Db.GetInstallationById(installationId);
//
// installation.Configuration = JsonConvert.SerializeObject(config);
//
// if (!installation.Apply(Db.Update))
// return StatusCode(500, "Failed to update installation configuration in database");
var action = new UserAction var action = new UserAction
{ {
InstallationId = installationId, InstallationId = installationId,
Timestamp = DateTime.Now, Timestamp = DateTime.Now,
Description = config.GetConfigurationString() Description = configString
}; };
Console.WriteLine(action.Description);
var actionSuccess = await session.InsertUserAction(action); var actionSuccess = await session.InsertUserAction(action);
return actionSuccess?Ok():Unauthorized(); return actionSuccess ? Ok() : StatusCode(500, "Failed to record Configuration changes in History of Action");
} }
return Unauthorized(); return Unauthorized();

View File

@ -2,19 +2,17 @@ namespace InnovEnergy.App.Backend.DataTypes;
public class Configuration public class Configuration
{ {
public Double MinimumSoC { get; set; } public double? MinimumSoC { get; set; }
public Double GridSetPoint { get; set; } public double? GridSetPoint { get; set; }
public CalibrationChargeType CalibrationChargeState { get; set; } public CalibrationChargeType? CalibrationChargeState { get; set; }
public DateTime CalibrationChargeDate { get; set; } public DateTime? CalibrationChargeDate { get; set; }
public CalibrationChargeType CalibrationDischargeState { get; set; } public CalibrationChargeType? CalibrationDischargeState { get; set; }
public DateTime CalibrationDischargeDate { get; set; } public DateTime? CalibrationDischargeDate { get; set; }
//For sodistoreHome installations public double? MaximumDischargingCurrent { get; set; }
public double? MaximumChargingCurrent { get; set; }
public Double MaximumDischargingCurrent { get; set; } public double? OperatingPriority { get; set; }
public Double MaximumChargingCurrent { get; set; } public double? BatteriesCount { get; set; }
public Double OperatingPriority { get; set; }
public Double BatteriesCount { get; set; }
public String GetConfigurationString() public String GetConfigurationString()
{ {
@ -24,6 +22,25 @@ public class Configuration
$"BatteriesCount: {BatteriesCount}"; $"BatteriesCount: {BatteriesCount}";
} }
public string GetConfigurationSalimax()
{
return
$"MinimumSoC: {MinimumSoC}, GridSetPoint: {GridSetPoint}, CalibrationChargeState: {CalibrationChargeState}, CalibrationChargeDate: {CalibrationChargeDate}";
}
public string GetConfigurationSodistoreMax()
{
return
$"MinimumSoC: {MinimumSoC}, GridSetPoint: {GridSetPoint}, CalibrationChargeState: {CalibrationChargeState}, CalibrationChargeDate: {CalibrationChargeDate}, " +
$"CalibrationDischargeState: {CalibrationDischargeState}, CalibrationDischargeDate: {CalibrationDischargeDate}";
}
public string GetConfigurationSodistoreHome()
{
return $"MinimumSoC: {MinimumSoC}, MaximumDischargingCurrent: {MaximumDischargingCurrent}, MaximumChargingCurrent: {MaximumChargingCurrent}, OperatingPriority: {OperatingPriority}" +
$"BatteriesCount: {BatteriesCount}";
}
} }
public enum CalibrationChargeType public enum CalibrationChargeType

View File

@ -49,4 +49,5 @@ public class Installation : TreeNode
[Ignore] [Ignore]
public String OrderNumbers { get; set; } public String OrderNumbers { get; set; }
public String VrmLink { get; set; } = ""; public String VrmLink { get; set; } = "";
public string Configuration { get; set; } = "";
} }