diff --git a/src/PepperDash.Essentials.Core/Devices/AudioControlListItemBase.cs b/src/PepperDash.Essentials.Core/Devices/AudioControlListItemBase.cs
index 920c2d14..295fd25c 100644
--- a/src/PepperDash.Essentials.Core/Devices/AudioControlListItemBase.cs
+++ b/src/PepperDash.Essentials.Core/Devices/AudioControlListItemBase.cs
@@ -9,9 +9,15 @@ namespace PepperDash.Essentials.Core
{
public abstract class AudioControlListItemBase
{
+ ///
+ /// Key of the parent device in the DeviceManager
+ ///
[JsonProperty("parentDeviceKey")]
public string ParentDeviceKey { get; set; }
+ ///
+ /// Optional key of the item in the parent device
+ ///
[JsonProperty("itemKey")]
public string ItemKey { get; set; }
diff --git a/src/PepperDash.Essentials.Core/Devices/LevelControlListItem.cs b/src/PepperDash.Essentials.Core/Devices/LevelControlListItem.cs
index 18da1130..4c2e83e4 100644
--- a/src/PepperDash.Essentials.Core/Devices/LevelControlListItem.cs
+++ b/src/PepperDash.Essentials.Core/Devices/LevelControlListItem.cs
@@ -51,8 +51,18 @@ namespace PepperDash.Essentials.Core
/// The key of the device in the DeviceManager for control
///
[JsonProperty("deviceKey")]
- public string DeviceKey => DeviceManager.AllDevices.
- Where(d => d.Key.Contains(ParentDeviceKey) && d.Key.Contains(ItemKey)).FirstOrDefault()?.Key ?? $"{ParentDeviceKey}--{ItemKey}";
+ public string DeviceKey
+ {
+ get
+ {
+ if(string.IsNullOrEmpty(ItemKey)) return ParentDeviceKey;
+ else
+ {
+ return DeviceManager.AllDevices.
+ Where(d => d.Key.Contains(ParentDeviceKey) && d.Key.Contains(ItemKey)).FirstOrDefault()?.Key ?? $"{ParentDeviceKey}--{ItemKey}";
+ }
+ }
+ }
///
/// Indicates if the item is a level, mute , or both