diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/BridgeBase.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/BridgeBase.cs
index 151b5461..443a720e 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/BridgeBase.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/BridgeBase.cs
@@ -131,6 +131,16 @@ namespace PepperDash.Essentials.Core.Bridges
}
}
+ RegisterEisc();
+ }
+
+ private void RegisterEisc()
+ {
+ if (Eisc.Registered)
+ {
+ return;
+ }
+
var registerResult = Eisc.Register();
if (registerResult != eDeviceRegistrationUnRegistrationResponse.Success)
@@ -142,6 +152,27 @@ namespace PepperDash.Essentials.Core.Bridges
Debug.Console(1, this, Debug.ErrorLogLevel.Notice, "EISC registration successful");
}
+ public void LinkToRooms()
+ {
+ Debug.Console(1, this, "Linking Rooms...");
+
+ foreach (var room in PropertiesConfig.Rooms)
+ {
+ var rm = DeviceManager.GetDeviceForKey(room.RoomKey) as IBridgeAdvanced;
+
+ if (rm == null)
+ {
+ Debug.Console(1, this, Debug.ErrorLogLevel.Notice,
+ "Room {0} does not implement IBridgeAdvanced. Skipping...", room.RoomKey);
+ continue;
+ }
+
+ rm.LinkToApi(Eisc, room.JoinStart, room.JoinMapKey, this);
+ }
+
+ RegisterEisc();
+ }
+
///
/// Adds a join map
///
@@ -290,6 +321,9 @@ namespace PepperDash.Essentials.Core.Bridges
[JsonProperty("devices")]
public List Devices { get; set; }
+ [JsonProperty("rooms")]
+ public List Rooms { get; set; }
+
public class ApiDevicePropertiesConfig
{
@@ -303,6 +337,18 @@ namespace PepperDash.Essentials.Core.Bridges
public string JoinMapKey { get; set; }
}
+ public class ApiRoomPropertiesConfig
+ {
+ [JsonProperty("roomKey")]
+ public string RoomKey { get; set; }
+
+ [JsonProperty("joinStart")]
+ public uint JoinStart { get; set; }
+
+ [JsonProperty("joinMapKey")]
+ public string JoinMapKey { get; set; }
+ }
+
}
public class EiscApiAdvancedFactory : EssentialsDeviceFactory