diff --git a/src/Server/InverterService/StatusRetriever.cs b/src/Server/InverterService/StatusRetriever.cs index d44f692..1102994 100644 --- a/src/Server/InverterService/StatusRetriever.cs +++ b/src/Server/InverterService/StatusRetriever.cs @@ -3,7 +3,13 @@ using InverterMon.Server.Persistence.Settings; namespace InverterMon.Server.InverterService; -class StatusRetriever(Database db, FelicitySolarInverter inverter, UserSettings userSettings, IConfiguration config, ILogger log) +class StatusRetriever( + Database db, + FelicitySolarInverter inverter, + UserSettings userSettings, + IConfiguration config, + ILogger log, + IHostApplicationLifetime appLife) : BackgroundService { protected override async Task ExecuteAsync(CancellationToken c) @@ -16,6 +22,8 @@ class StatusRetriever(Database db, FelicitySolarInverter inverter, UserSettings await Task.Delay(5000); } + appLife.ApplicationStopping.Register(inverter.Close); + while (!c.IsCancellationRequested) { inverter.Status.BatteryCapacity = userSettings.BatteryCapacity;