mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-15 04:34:56 +00:00
fix: make registering for push schedule updates optional
The default config for a Fusion room will now NOT subscribe for Fusion schedule push updates unless explicitly requested.
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
using System.Timers;
|
using System.Timers;
|
||||||
using Crestron.SimplSharp;
|
using Crestron.SimplSharp;
|
||||||
using Crestron.SimplSharp.CrestronIO;
|
using Crestron.SimplSharp.CrestronIO;
|
||||||
@@ -698,18 +699,26 @@ namespace PepperDash.Essentials.Core.Fusion
|
|||||||
/// <param name="args"></param>
|
/// <param name="args"></param>
|
||||||
protected void FusionRoom_OnlineStatusChange(GenericBase currentDevice, OnlineOfflineEventArgs args)
|
protected void FusionRoom_OnlineStatusChange(GenericBase currentDevice, OnlineOfflineEventArgs args)
|
||||||
{
|
{
|
||||||
if (args.DeviceOnLine)
|
if (!args.DeviceOnLine)
|
||||||
{
|
{
|
||||||
CrestronInvoke.BeginInvoke((o) =>
|
return;
|
||||||
{
|
}
|
||||||
CrestronEnvironment.Sleep(200);
|
|
||||||
|
|
||||||
// Send Push Notification Action request:
|
if (!_config.EnableSchedulePushNotifications)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const string requestId = "InitialPushRequest";
|
Task.Run(() =>
|
||||||
|
{
|
||||||
|
// CrestronEnvironment.Sleep(200);
|
||||||
|
|
||||||
|
// Send Push Notification Action request:
|
||||||
|
|
||||||
|
const string requestId = "InitialPushRequest";
|
||||||
|
|
||||||
|
|
||||||
var actionRequest =
|
var actionRequest =
|
||||||
string.Format("<RequestAction>\n<RequestID>{0}</RequestID>\n", requestId) +
|
string.Format("<RequestAction>\n<RequestID>{0}</RequestID>\n", requestId) +
|
||||||
"<ActionID>RegisterPushModel</ActionID>\n" +
|
"<ActionID>RegisterPushModel</ActionID>\n" +
|
||||||
"<Parameters>\n" +
|
"<Parameters>\n" +
|
||||||
@@ -734,27 +743,26 @@ namespace PepperDash.Essentials.Core.Fusion
|
|||||||
"</Parameters>\n" +
|
"</Parameters>\n" +
|
||||||
"</RequestAction>\n";
|
"</RequestAction>\n";
|
||||||
|
|
||||||
Debug.LogMessage(LogEventLevel.Verbose, this, "Sending Fusion ActionRequest: \n{0}", actionRequest);
|
Debug.LogMessage(LogEventLevel.Verbose, this, "Sending Fusion ActionRequest: \n{0}", actionRequest);
|
||||||
|
|
||||||
FusionRoom.ExtenderFusionRoomDataReservedSigs.ActionQuery.StringValue = actionRequest;
|
FusionRoom.ExtenderFusionRoomDataReservedSigs.ActionQuery.StringValue = actionRequest;
|
||||||
|
|
||||||
GetCustomProperties();
|
GetCustomProperties();
|
||||||
|
|
||||||
// Request current Fusion Server Time
|
// Request current Fusion Server Time
|
||||||
RequestLocalDateTime(null);
|
RequestLocalDateTime(null);
|
||||||
|
|
||||||
// Setup timer to request time daily
|
// Setup timer to request time daily
|
||||||
if (_dailyTimeRequestTimer != null && !_dailyTimeRequestTimer.Disposed)
|
if (_dailyTimeRequestTimer != null && !_dailyTimeRequestTimer.Disposed)
|
||||||
{
|
{
|
||||||
_dailyTimeRequestTimer.Stop();
|
_dailyTimeRequestTimer.Stop();
|
||||||
_dailyTimeRequestTimer.Dispose();
|
_dailyTimeRequestTimer.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
_dailyTimeRequestTimer = new CTimer(RequestLocalDateTime, null, 86400000, 86400000);
|
_dailyTimeRequestTimer = new CTimer(RequestLocalDateTime, null, 86400000, 86400000);
|
||||||
|
|
||||||
_dailyTimeRequestTimer.Reset(86400000, 86400000);
|
_dailyTimeRequestTimer.Reset(86400000, 86400000);
|
||||||
});
|
});
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -785,7 +793,7 @@ namespace PepperDash.Essentials.Core.Fusion
|
|||||||
|
|
||||||
var requestTest =
|
var requestTest =
|
||||||
string.Format(
|
string.Format(
|
||||||
"<RequestSchedule><RequestID>FullSchedleRequest</RequestID><RoomID>{0}</RoomID><Start>{1}</Start><HourSpan>24</HourSpan></RequestSchedule>",
|
"<RequestSchedule><RequestID>FullScheduleRequest</RequestID><RoomID>{0}</RoomID><Start>{1}</Start><HourSpan>24</HourSpan></RequestSchedule>",
|
||||||
RoomGuid, currentTime);
|
RoomGuid, currentTime);
|
||||||
|
|
||||||
Debug.LogMessage(LogEventLevel.Verbose, this, "Sending Fusion ScheduleQuery: \n{0}", requestTest);
|
Debug.LogMessage(LogEventLevel.Verbose, this, "Sending Fusion ScheduleQuery: \n{0}", requestTest);
|
||||||
@@ -960,7 +968,7 @@ namespace PepperDash.Essentials.Core.Fusion
|
|||||||
select parameter.Attributes
|
select parameter.Attributes
|
||||||
into attributes
|
into attributes
|
||||||
where attributes["ID"].Value == "Registered"
|
where attributes["ID"].Value == "Registered"
|
||||||
select Int32.Parse(attributes["Value"].Value))
|
select int.Parse(attributes["Value"].Value))
|
||||||
{
|
{
|
||||||
switch (isRegistered)
|
switch (isRegistered)
|
||||||
{
|
{
|
||||||
@@ -1112,7 +1120,7 @@ namespace PepperDash.Essentials.Core.Fusion
|
|||||||
protected void FusionRoomSchedule_DeviceExtenderSigChange(DeviceExtender currentDeviceExtender,
|
protected void FusionRoomSchedule_DeviceExtenderSigChange(DeviceExtender currentDeviceExtender,
|
||||||
SigEventArgs args)
|
SigEventArgs args)
|
||||||
{
|
{
|
||||||
Debug.LogMessage(LogEventLevel.Verbose, this, "Scehdule Response Event: {0}\n Sig: {1}\nFusionResponse:\n{2}", args.Event,
|
Debug.LogMessage(LogEventLevel.Verbose, this, "Schedule Response Event: {0}\n Sig: {1}\nFusionResponse:\n{2}", args.Event,
|
||||||
args.Sig.Name, args.Sig.StringValue);
|
args.Sig.Name, args.Sig.StringValue);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -75,4 +75,11 @@ public class IEssentialsRoomFusionControllerPropertiesConfig
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[JsonProperty("helpRequestTimeoutMs")]
|
[JsonProperty("helpRequestTimeoutMs")]
|
||||||
public int HelpRequestTimeoutMs { get; set; } = 30000;
|
public int HelpRequestTimeoutMs { get; set; } = 30000;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets whether to enable schedule push notifications
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>Defaults to false to skip getting schedule unless required</remarks>
|
||||||
|
[JsonProperty("enableSchedulePushNotifications")]
|
||||||
|
public bool EnableSchedulePushNotifications { get; set; } = false;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user