Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: Home Assistant 2023.8 MQTT #20

Open
wants to merge 19 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
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
Prev Previous commit
Next Next commit
added error checks
  • Loading branch information
amadeo-alex committed Aug 11, 2023
commit 1d45d5ad9f553f7407d09fe00b0e29b216b17ebd
Original file line number Diff line number Diff line change
@@ -22,14 +22,16 @@ internal class NameCompatibilityTask : ICompatibilityTask
{
public string Name => Languages.Compat_NameTask_Name;

private (List<ConfiguredSensor>, List<ConfiguredSensor>) ConvertSingleValueSensors(List<AbstractSingleValueSensor> sensors)
private (List<ConfiguredSensor>, List<ConfiguredSensor>) ConvertSensors(IEnumerable<AbstractDiscoverable> sensors)
{
var configuredSensors = new List<ConfiguredSensor>();
var toBeDeletedSensors = new List<ConfiguredSensor>();

foreach (var sensor in sensors)
{
var currentConfiguredSensor = StoredSensors.ConvertAbstractSingleValueToConfigured(sensor);
var currentConfiguredSensor = sensor is AbstractSingleValueSensor
? StoredSensors.ConvertAbstractSingleValueToConfigured(sensor as AbstractSingleValueSensor)
: StoredSensors.ConvertAbstractMultiValueToConfigured(sensor as AbstractMultiValueSensor);

if (!sensor.Name.Contains(SharedHelperFunctions.GetSafeConfiguredDeviceName()))
{
@@ -41,41 +43,10 @@ internal class NameCompatibilityTask : ICompatibilityTask
var objectId = $"{SharedHelperFunctions.GetSafeConfiguredDeviceName()}_{newName}";
if (objectId == sensor.Name)
{
var newConfiguredSensor = StoredSensors.ConvertAbstractSingleValueToConfigured(sensor);
newConfiguredSensor.Name = newName;
configuredSensors.Add(newConfiguredSensor);

toBeDeletedSensors.Add(currentConfiguredSensor);
}
else
{
configuredSensors.Add(currentConfiguredSensor);
}
}

return (configuredSensors, toBeDeletedSensors);
}

private (List<ConfiguredSensor>, List<ConfiguredSensor>) ConvertMultiValueSensors(List<AbstractMultiValueSensor> sensors)
{
var configuredSensors = new List<ConfiguredSensor>();
var toBeDeletedSensors = new List<ConfiguredSensor>();

foreach (var sensor in sensors)
{
var currentConfiguredSensor = StoredSensors.ConvertAbstractMultiValueToConfigured(sensor);
var newConfiguredSensor = sensor is AbstractSingleValueSensor
? StoredSensors.ConvertAbstractSingleValueToConfigured(sensor as AbstractSingleValueSensor)
: StoredSensors.ConvertAbstractMultiValueToConfigured(sensor as AbstractMultiValueSensor);

if (!sensor.Name.Contains(SharedHelperFunctions.GetSafeConfiguredDeviceName()))
{
configuredSensors.Add(currentConfiguredSensor);
continue;
}

var newName = sensor.Name.Replace($"{SharedHelperFunctions.GetSafeConfiguredDeviceName()}_", "");
var objectId = $"{SharedHelperFunctions.GetSafeConfiguredDeviceName()}_{newName}";
if (objectId == sensor.Name)
{
var newConfiguredSensor = StoredSensors.ConvertAbstractMultiValueToConfigured(sensor);
newConfiguredSensor.Name = newName;
configuredSensors.Add(newConfiguredSensor);

@@ -145,19 +116,34 @@ internal class NameCompatibilityTask : ICompatibilityTask
CommandsManager.Initialize();

Log.Information("[COMPATTASK] Modifying stored single value sensors");
var (sensors, toBeDeletedSensors) = ConvertSingleValueSensors(Variables.SingleValueSensors);
await SensorsManager.StoreAsync(sensors, toBeDeletedSensors);
var (sensors, toBeDeletedSensors) = ConvertSensors(Variables.SingleValueSensors);
var result = await SensorsManager.StoreAsync(sensors, toBeDeletedSensors);
SensorsManager.Pause();
if (!result)
{
Log.Error("[COMPATTASK] Error modifying stored single value sensors");
errorMessage += Languages.Compat_NameTask_Error_SingleValueSensors;
}

Log.Information("[COMPATTASK] Modifying stored multi value sensors");
(sensors, toBeDeletedSensors) = ConvertMultiValueSensors(Variables.MultiValueSensors);
await SensorsManager.StoreAsync(sensors, toBeDeletedSensors);
(sensors, toBeDeletedSensors) = ConvertSensors(Variables.MultiValueSensors);
result = await SensorsManager.StoreAsync(sensors, toBeDeletedSensors);
SensorsManager.Pause();
if (!result)
{
Log.Error("[COMPATTASK] Error modifying stored multi value sensors");
errorMessage += Languages.Compat_NameTask_Error_MultiValueSensors;
}

Log.Information("[COMPATTASK] Modifying stored commands");
var (commands, toBeDeletedCommands) = ConvertCommands(Variables.Commands);
await CommandsManager.StoreAsync(commands, toBeDeletedCommands);
result = await CommandsManager.StoreAsync(commands, toBeDeletedCommands);
CommandsManager.Pause();
if (!result)
{
Log.Error("[COMPATTASK] Error modifying stored commands");
errorMessage += Languages.Compat_NameTask_Error_Commands;
}

Log.Information("[COMPATTASK] Sensor name compatibility task ended");

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -3232,10 +3232,13 @@ to match Home Assistant 2023.8 requirements</value>
<data name="Compat_Error_CheckLogs" xml:space="preserve">
<value>Error, please check logs for more information.</value>
</data>
<data name="Compat_NameTask_Error_Sensors" xml:space="preserve">
<value>Error while storing modified sensors!</value>
<data name="Compat_NameTask_Error_SingleValueSensors" xml:space="preserve">
<value>Error converting single value sensors!</value>
</data>
<data name="Compat_NameTask_Error_Commands" xml:space="preserve">
<value>Error while storing modified commands!</value>
<value>Error converting commands!</value>
</data>
<data name="Compat_NameTask_Error_MultiValueSensors" xml:space="preserve">
<value>Error converting multi value sensors!</value>
</data>
</root>
Original file line number Diff line number Diff line change
@@ -3241,10 +3241,13 @@ to match Home Assistant 2023.8 requirements</value>
<data name="Compat_Error_CheckLogs" xml:space="preserve">
<value>Error, please check logs for more information.</value>
</data>
<data name="Compat_NameTask_Error_Sensors" xml:space="preserve">
<value>Error while storing modified sensors!</value>
<data name="Compat_NameTask_Error_SingleValueSensors" xml:space="preserve">
<value>Error converting single value sensors!</value>
</data>
<data name="Compat_NameTask_Error_Commands" xml:space="preserve">
<value>Error while storing modified commands!</value>
<value>Error converting commands!</value>
</data>
<data name="Compat_NameTask_Error_MultiValueSensors" xml:space="preserve">
<value>Error converting multi value sensors!</value>
</data>
</root>