diff --git a/PepperDashEssentials/Room/Config/EssentialsRoomConfig.cs b/PepperDashEssentials/Room/Config/EssentialsRoomConfig.cs
index 5ec0565d..a20b8e25 100644
--- a/PepperDashEssentials/Room/Config/EssentialsRoomConfig.cs
+++ b/PepperDashEssentials/Room/Config/EssentialsRoomConfig.cs
@@ -147,6 +147,24 @@ namespace PepperDash.Essentials.Room.Config
[JsonProperty("helpMessage")]
public string HelpMessage { get; set; }
+ ///
+ /// Read this value to get the help message. It checks for the old and new config format.
+ ///
+ public string HelpMessageForDisplay
+ {
+ get
+ {
+ if(Help != null && !string.IsNullOrEmpty(Help.Message))
+ {
+ return Help.Message;
+ }
+ else
+ {
+ return HelpMessage;
+ }
+ }
+ }
+
[JsonProperty("environment")]
public EssentialsEnvironmentPropertiesConfig Environment { get; set; }
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Room/EssentialsRoomBase.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Room/EssentialsRoomBase.cs
index 0d8e9803..de75318c 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Room/EssentialsRoomBase.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Room/EssentialsRoomBase.cs
@@ -11,6 +11,8 @@ using PepperDash.Essentials.Core.Config;
using PepperDash.Essentials.Core.Devices;
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
+using Newtonsoft.Json;
+
namespace PepperDash.Essentials.Core
{
///
@@ -18,6 +20,8 @@ namespace PepperDash.Essentials.Core
///
public abstract class EssentialsRoomBase : ReconfigurableDevice, IEssentialsRoom
{
+
+
///
///
///
@@ -35,6 +39,16 @@ namespace PepperDash.Essentials.Core
public bool OccupancyStatusProviderIsRemote { get; private set; }
+ public List EnvironmentalControlDevices { get; protected set; }
+
+ public bool HasEnvironmentalControlDevices
+ {
+ get
+ {
+ return EnvironmentalControlDevices != null && EnvironmentalControlDevices.Count > 0;
+ }
+ }
+
protected abstract Func IsWarmingFeedbackFunc { get; }
protected abstract Func IsCoolingFeedbackFunc { get; }
@@ -119,6 +133,9 @@ namespace PepperDash.Essentials.Core
public EssentialsRoomBase(DeviceConfig config)
: base(config)
{
+
+
+
// Setup the ShutdownPromptTimer
ShutdownPromptTimer = new SecondsCountdownTimer(Key + "-offTimer");
ShutdownPromptTimer.IsRunningFeedback.OutputChange += (o, a) =>
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Room/IEssentialsRoom.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Room/IEssentialsRoom.cs
index 5f94a5cd..2273690f 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Room/IEssentialsRoom.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Room/IEssentialsRoom.cs
@@ -15,7 +15,7 @@ namespace PepperDash.Essentials.Core
///
/// Describes the basic functionality of an EssentialsRoom
///
- public interface IEssentialsRoom : IKeyName, IReconfigurableDevice, IRunDefaultPresentRoute
+ public interface IEssentialsRoom : IKeyName, IReconfigurableDevice, IRunDefaultPresentRoute, IEnvironmentalControls
{
BoolFeedback OnFeedback { get; }
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Room/Interfaces.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Room/Interfaces.cs
index 592b0bd9..b5121e9c 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Room/Interfaces.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Room/Interfaces.cs
@@ -4,6 +4,8 @@ using System.Linq;
using System.Text;
using Crestron.SimplSharp;
+using PepperDash.Core;
+
namespace PepperDash.Essentials.Core
{
@@ -66,6 +68,14 @@ namespace PepperDash.Essentials.Core
bool RunDefaultCallRoute();
}
+ ///
+ /// Describes environmental controls available on a room such as lighting, shades, temperature, etc.
+ ///
+ public interface IEnvironmentalControls
+ {
+ List EnvironmentalControlDevices { get; }
+ bool HasEnvironmentalControlDevices { get; }
+ }
}
\ No newline at end of file