From 48e6fd872ee50b2f792e81dd20fc1e21c2aa3b3c Mon Sep 17 00:00:00 2001 From: Thomas Fransolet Date: Thu, 31 Aug 2023 17:10:30 +0200 Subject: [PATCH] Fix group action not working --- MyCore/Controllers/Helpers/DevicesHelper.cs | 8 +++----- MyCore/Services/AlarmService.cs | 10 +++++----- MyCore/Services/AutomationService.cs | 10 +++++----- 3 files changed, 13 insertions(+), 15 deletions(-) diff --git a/MyCore/Controllers/Helpers/DevicesHelper.cs b/MyCore/Controllers/Helpers/DevicesHelper.cs index 7a08487..d40552a 100644 --- a/MyCore/Controllers/Helpers/DevicesHelper.cs +++ b/MyCore/Controllers/Helpers/DevicesHelper.cs @@ -233,7 +233,7 @@ namespace MyCore.Service.Controllers.Helpers } } - public static void ActionOnZigbee2Mqtt(Device device, Interfaces.Models.Action action) + public static void ActionOnZigbee2Mqtt(Device device, Interfaces.Models.Action action, string deviceOrGroupNameForAction) { var request = ""; var buildRequest = new Dictionary(); @@ -372,13 +372,11 @@ namespace MyCore.Service.Controllers.Helpers request = JsonConvert.SerializeObject(buildRequest); - var nameToSend = device.NameForAction == null ? device.Name : device.NameForAction; - // SEND REQUEST //var requestToSend = $"Send request ! zigbee2mqtt/{deviceNameForAction}/set/{request}"; - System.Console.WriteLine($"Send request ! zigbee2mqtt/{nameToSend}/set/{request}"); + System.Console.WriteLine($"Send request ! zigbee2mqtt/{deviceOrGroupNameForAction}/set/{request}"); - MqttClientService.PublishMessage($"zigbee2mqtt/{nameToSend}/set", request); + MqttClientService.PublishMessage($"zigbee2mqtt/{deviceOrGroupNameForAction}/set", request); } catch (Exception ex) { diff --git a/MyCore/Services/AlarmService.cs b/MyCore/Services/AlarmService.cs index e3c2a72..5e0ab5d 100644 --- a/MyCore/Services/AlarmService.cs +++ b/MyCore/Services/AlarmService.cs @@ -184,7 +184,7 @@ namespace MyCore.Service.Services foreach (var action in alarmMode.Actions) { - var DeviceNameForAction = ""; + var deviceOrGroupNameForAction = ""; Device actionDeviceToTest = new Device(); // Retrieve action type @@ -194,14 +194,14 @@ namespace MyCore.Service.Services var deviceAction = _DeviceDatabaseService.GetById(action.DeviceId); var providerActionTest = _ProviderDatabaseService.GetById(action.ProviderId); - DeviceNameForAction = deviceAction.Name; + deviceOrGroupNameForAction = deviceAction.NameForAction == null ? deviceAction.Name : deviceAction.NameForAction; actionDeviceToTest = deviceAction; System.Console.WriteLine($"We get a device action ! Name={deviceAction.Name} Type={deviceAction.Type}"); System.Console.WriteLine($"Check action provider type ! Type={providerActionTest.Type} Name={providerActionTest.Name}"); break; case ActionType.GROUP: var groupAction = _GroupDatabaseService.GetById(action.GroupId); - DeviceNameForAction = groupAction.Name; + deviceOrGroupNameForAction = groupAction.Name; System.Console.WriteLine($"We get a group action ! Name={groupAction.Name} Type={groupAction.Type}"); System.Console.WriteLine($"Check action zigbeeGroupAction type ! Type={groupAction.Type}"); @@ -235,7 +235,7 @@ namespace MyCore.Service.Services case ProviderType.zigbee2mqtt: try { - DevicesHelper.ActionOnZigbee2Mqtt(actionDeviceToTest, action); + DevicesHelper.ActionOnZigbee2Mqtt(actionDeviceToTest, action, deviceOrGroupNameForAction); } catch (Exception ex) { @@ -245,7 +245,7 @@ namespace MyCore.Service.Services case ProviderType.meross: try { - DevicesHelper.ActionOnMeross(_DeviceDatabaseService, actionDeviceToTest, action, DeviceNameForAction); + DevicesHelper.ActionOnMeross(_DeviceDatabaseService, actionDeviceToTest, action, deviceOrGroupNameForAction); } catch (Exception ex) { diff --git a/MyCore/Services/AutomationService.cs b/MyCore/Services/AutomationService.cs index db776ad..f994795 100644 --- a/MyCore/Services/AutomationService.cs +++ b/MyCore/Services/AutomationService.cs @@ -120,7 +120,7 @@ namespace MyCore.Service.Services public static void HandleAction(string homeId, Interfaces.Models.Action action, ProviderDatabaseService providerDatabaseService, DeviceDatabaseService deviceDatabaseService, GroupDatabaseService groupDatabaseService) { - var DeviceNameForAction = ""; + var deviceOrGroupNameForAction = ""; Device actionDeviceToTest = new Device(); // Retrieve action type @@ -130,14 +130,14 @@ namespace MyCore.Service.Services var deviceAction = deviceDatabaseService.GetById(action.DeviceId); var providerActionTest = providerDatabaseService.GetById(action.ProviderId); - DeviceNameForAction = deviceAction.Name; + deviceOrGroupNameForAction = deviceAction.NameForAction == null ? deviceAction.Name : deviceAction.NameForAction; actionDeviceToTest = deviceAction; System.Console.WriteLine($"We get a device action ! Name={deviceAction.Name} Type={deviceAction.Type}"); System.Console.WriteLine($"Check action provider type ! Type={providerActionTest.Type} Name={providerActionTest.Name}"); break; case ActionType.GROUP: var groupAction = groupDatabaseService.GetById(action.GroupId); - DeviceNameForAction = groupAction.Name; + deviceOrGroupNameForAction = groupAction.Name; System.Console.WriteLine($"We get a group action ! Name={groupAction.Name} Type={groupAction.Type}"); System.Console.WriteLine($"Check action zigbeeGroupAction type ! Type={groupAction.Type}"); @@ -171,7 +171,7 @@ namespace MyCore.Service.Services case ProviderType.zigbee2mqtt: try { - DevicesHelper.ActionOnZigbee2Mqtt(actionDeviceToTest, action); + DevicesHelper.ActionOnZigbee2Mqtt(actionDeviceToTest, action, deviceOrGroupNameForAction); } catch (Exception ex) { @@ -181,7 +181,7 @@ namespace MyCore.Service.Services case ProviderType.meross: try { - DevicesHelper.ActionOnMeross(deviceDatabaseService, actionDeviceToTest, action, DeviceNameForAction); + DevicesHelper.ActionOnMeross(deviceDatabaseService, actionDeviceToTest, action, deviceOrGroupNameForAction); } catch (Exception ex) {