From 5c016fb4b8d2520a0037541af58f0dc414fe4e56 Mon Sep 17 00:00:00 2001 From: Neil Dorin Date: Mon, 24 Nov 2025 17:14:34 -0700 Subject: [PATCH 1/3] feat: implement IHasFeedback interface in IEssentialsRoomFusionController --- .../Fusion/IEssentialsRoomFusionController.cs | 29 ++++++++++++++----- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs b/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs index 1f21cbe6..59a78ffb 100644 --- a/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs +++ b/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs @@ -20,7 +20,7 @@ namespace PepperDash.Essentials.Core.Fusion /// /// Represents a EssentialsHuddleSpaceFusionSystemControllerBase /// - public class IEssentialsRoomFusionController : EssentialsDevice, IOccupancyStatusProvider, IFusionHelpRequest + public class IEssentialsRoomFusionController : EssentialsDevice, IOccupancyStatusProvider, IFusionHelpRequest, IHasFeedback { private IEssentialsRoomFusionControllerPropertiesConfig _config; @@ -240,6 +240,18 @@ namespace PepperDash.Essentials.Core.Fusion this.LogDebug("Occupancy setup complete"); + HelpRequestResponseFeedback = new StringFeedback("HelpRequestResponse", () => FusionRoom.Help.OutputSig.StringValue); + + HelpRequestSentFeedback = new BoolFeedback("HelpRequestSent", () => _helpRequestSent); + HelpRequestStatusFeedback = new StringFeedback("HelpRequestStatus", () => _helpRequestStatus.ToString()); + + Feedbacks.Add(HelpRequestResponseFeedback); + Feedbacks.Add(HelpRequestSentFeedback); + Feedbacks.Add(HelpRequestStatusFeedback); + Feedbacks.Add(RoomOccupancyRemoteStringFeedback); + Feedbacks.Add(RoomIsOccupiedFeedback); + + } catch (Exception e) { @@ -303,10 +315,6 @@ namespace PepperDash.Essentials.Core.Fusion FusionRVI.GenerateFileForAllFusionDevices(); - HelpRequestResponseFeedback = new StringFeedback("HelpRequestResponse", () => FusionRoom.Help.OutputSig.StringValue); - - HelpRequestSentFeedback = new BoolFeedback("HelpRequestSent", () => _helpRequestSent); - HelpRequestStatusFeedback = new StringFeedback("HelpRequestStatus", () => _helpRequestStatus.ToString()); } /// @@ -339,6 +347,11 @@ namespace PepperDash.Essentials.Core.Fusion #endregion + + /// + public FeedbackCollection Feedbacks { get; private set; } = new FeedbackCollection(); + + /// /// ScheduleChange event /// @@ -1772,7 +1785,7 @@ namespace PepperDash.Essentials.Core.Fusion { if (args.EventId == FusionEventIds.HelpMessageReceivedEventId) { - this.LogInformation( "Help message received from Fusion for room '{0}'", + this.LogInformation("Help message received from Fusion for room '{0}'", Room.Name); this.LogDebug("Help message content: {0}", FusionRoom.Help.OutputSig.StringValue); @@ -1818,12 +1831,12 @@ namespace PepperDash.Essentials.Core.Fusion _helpRequestStatus = eFusionHelpResponse.None; } - if(_helpRequestStatus == eFusionHelpResponse.None) + if (_helpRequestStatus == eFusionHelpResponse.None) { _helpRequestSent = false; HelpRequestSentFeedback.FireUpdate(); } - + HelpRequestStatusFeedback.FireUpdate(); } From 8467afde384efe14567e55d4236dd1eec3ed3301 Mon Sep 17 00:00:00 2001 From: Neil Dorin Date: Mon, 24 Nov 2025 17:23:38 -0700 Subject: [PATCH 2/3] Update src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../Fusion/IEssentialsRoomFusionController.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs b/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs index 59a78ffb..593c9cce 100644 --- a/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs +++ b/src/PepperDash.Essentials.Core/Fusion/IEssentialsRoomFusionController.cs @@ -248,9 +248,10 @@ namespace PepperDash.Essentials.Core.Fusion Feedbacks.Add(HelpRequestResponseFeedback); Feedbacks.Add(HelpRequestSentFeedback); Feedbacks.Add(HelpRequestStatusFeedback); - Feedbacks.Add(RoomOccupancyRemoteStringFeedback); - Feedbacks.Add(RoomIsOccupiedFeedback); - + if (RoomOccupancyRemoteStringFeedback != null) + Feedbacks.Add(RoomOccupancyRemoteStringFeedback); + if (RoomIsOccupiedFeedback != null) + Feedbacks.Add(RoomIsOccupiedFeedback); } catch (Exception e) From d17394cdd731e38a2c6d82acff5c9630cd21ca38 Mon Sep 17 00:00:00 2001 From: Neil Dorin Date: Tue, 25 Nov 2025 11:06:48 -0700 Subject: [PATCH 3/3] feat: add logging to ExecuteSwitch method in GenericSink --- .../Generic/GenericSink.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/PepperDash.Essentials.Devices.Common/Generic/GenericSink.cs b/src/PepperDash.Essentials.Devices.Common/Generic/GenericSink.cs index 03c58b2c..8f2fc1e2 100644 --- a/src/PepperDash.Essentials.Devices.Common/Generic/GenericSink.cs +++ b/src/PepperDash.Essentials.Devices.Common/Generic/GenericSink.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using PepperDash.Core; +using PepperDash.Core.Logging; using PepperDash.Essentials.Core; using PepperDash.Essentials.Core.Config; using Serilog.Events; @@ -73,7 +74,7 @@ namespace PepperDash.Essentials.Devices.Common.Generic /// public void ExecuteSwitch(object inputSelector) { - throw new System.NotImplementedException(); + this.LogDebug("GenericSink Executing Switch to: {inputSelector}", inputSelector); } }