Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using HASS.Agent.Shared.Enums;
using HASS.Agent.Shared.Enums;
using HASS.Agent.Shared.Models.Config;
using HASS.Agent.Shared.HomeAssistant.Commands;
using HASS.Agent.Shared.HomeAssistant.Commands.CustomCommands;
Expand Down Expand Up @@ -28,15 +28,19 @@ internal static async Task<bool> LoadAsync()
Variables.Commands = new List<AbstractCommand>();

// check for existing file
if (!File.Exists(Variables.CommandsFile))
Variables.LoadedCommandsFile = File.Exists(Variables.ServiceCommandsFile)
? Variables.ServiceCommandsFile
: Variables.CommandsFile;

if (!File.Exists(Variables.LoadedCommandsFile))
{
// none yet
Log.Information("[SETTINGS_COMMANDS] Config not found, no entities loaded");
return true;
}

// read the content
var commandsRaw = await File.ReadAllTextAsync(Variables.CommandsFile);
var commandsRaw = await File.ReadAllTextAsync(Variables.LoadedCommandsFile);
if (string.IsNullOrWhiteSpace(commandsRaw))
{
Log.Information("[SETTINGS_COMMANDS] Config is empty, no entities loaded");
Expand All @@ -56,7 +60,10 @@ internal static async Task<bool> LoadAsync()
// convert to abstract commands
await Task.Run(delegate
{
foreach (var abstractCommand in configuredCommands.Select(ConvertConfiguredToAbstract)) Variables.Commands.Add(abstractCommand!);
foreach (var abstractCommand in configuredCommands.Select(ConvertConfiguredToAbstract))
{
if (abstractCommand != null) Variables.Commands.Add(abstractCommand);
}
});

// all good
Expand Down Expand Up @@ -262,7 +269,7 @@ internal static bool Store()

// serialize to file
var commands = JsonConvert.SerializeObject(configuredCommands, Formatting.Indented);
File.WriteAllText(Variables.CommandsFile, commands);
File.WriteAllText(Variables.LoadedCommandsFile ?? Variables.CommandsFile, commands);

// done
Log.Information("[SETTINGS_COMMANDS] Stored {count} entities", Variables.Commands.Count);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using HASS.Agent.Shared.Enums;
using HASS.Agent.Shared.Enums;
using HASS.Agent.Shared.Models.Config;
using HASS.Agent.Satellite.Service.Extensions;
using HASS.Agent.Shared.HomeAssistant.Sensors;
Expand Down Expand Up @@ -31,15 +31,19 @@ internal static async Task<bool> LoadAsync()
Variables.MultiValueSensors = new List<AbstractMultiValueSensor>();

// check for existing file
if (!File.Exists(Variables.SensorsFile))
Variables.LoadedSensorsFile = File.Exists(Variables.ServiceSensorsFile)
? Variables.ServiceSensorsFile
: Variables.SensorsFile;

if (!File.Exists(Variables.LoadedSensorsFile))
{
// none yet
Log.Information("[SETTINGS_SENSORS] Config not found, no entities loaded");
return true;
}

// read the content
var sensorsRaw = await File.ReadAllTextAsync(Variables.SensorsFile);
var sensorsRaw = await File.ReadAllTextAsync(Variables.LoadedSensorsFile);
if (string.IsNullOrWhiteSpace(sensorsRaw))
{
Log.Information("[SETTINGS_SENSORS] Config is empty, no entities loaded");
Expand All @@ -61,8 +65,16 @@ await Task.Run(delegate
{
foreach (var sensor in configuredSensors)
{
if (sensor.IsSingleValue()) Variables.SingleValueSensors.Add(ConvertConfiguredToAbstractSingleValue(sensor)!);
else Variables.MultiValueSensors.Add(ConvertConfiguredToAbstractMultiValue(sensor)!);
if (sensor.IsSingleValue())
{
var abstractSensor = ConvertConfiguredToAbstractSingleValue(sensor);
if (abstractSensor != null) Variables.SingleValueSensors.Add(abstractSensor);
}
else
{
var abstractSensor = ConvertConfiguredToAbstractMultiValue(sensor);
if (abstractSensor != null) Variables.MultiValueSensors.Add(abstractSensor);
}
}
});

Expand Down Expand Up @@ -496,7 +508,7 @@ internal static bool Store()

// serialize to file
var sensors = JsonConvert.SerializeObject(configuredSensors, Formatting.Indented);
File.WriteAllText(Variables.SensorsFile, sensors);
File.WriteAllText(Variables.LoadedSensorsFile ?? Variables.SensorsFile, sensors);

// done
Log.Information("[SETTINGS_SENSORS] Stored {count} entities", (Variables.SingleValueSensors.Count + Variables.MultiValueSensors.Count));
Expand Down
6 changes: 5 additions & 1 deletion src/HASS.Agent/HASS.Agent.Satellite.Service/Variables.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using System.Reflection;
using System.Reflection;
using GrpcDotNetNamedPipes;
using HASS.Agent.Shared.Models.Config.Service;
using HASS.Agent.Shared.Models.HomeAssistant;
Expand Down Expand Up @@ -45,7 +45,9 @@ internal static class Variables
internal static string ServiceSettingsFile { get; } = Path.Combine(ConfigPath, "servicesettings.json");
internal static string ServiceMqttSettingsFile { get; } = Path.Combine(ConfigPath, "servicemqttsettings.json");
internal static string CommandsFile { get; } = Path.Combine(ConfigPath, "commands.json");
internal static string ServiceCommandsFile { get; } = Path.Combine(ConfigPath, "servicecommands.json");
internal static string SensorsFile { get; } = Path.Combine(ConfigPath, "sensors.json");
internal static string ServiceSensorsFile { get; } = Path.Combine(ConfigPath, "servicesensors.json");

/// <summary>
/// Internal state
Expand All @@ -67,7 +69,9 @@ internal static class Variables
internal static ServiceSettings? ServiceSettings { get; set; } = new();
internal static ServiceMqttSettings? ServiceMqttSettings { get; set; } = new();
internal static List<AbstractCommand> Commands { get; set; } = new();
internal static string LoadedCommandsFile { get; set; } = string.Empty;
internal static List<AbstractSingleValueSensor> SingleValueSensors { get; set; } = new();
internal static List<AbstractMultiValueSensor> MultiValueSensors { get; set; } = new();
internal static string LoadedSensorsFile { get; set; } = string.Empty;
}
}