diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/GlsOccupancySensorBaseController.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/GlsOccupancySensorBaseController.cs
index 045a4143..35ca2ae7 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/GlsOccupancySensorBaseController.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Occupancy/GlsOccupancySensorBaseController.cs
@@ -314,14 +314,40 @@ namespace PepperDash.Essentials.Core
OccSensor.DecrementPirSensitivityInVacantState.BoolValue = pressRelease;
}
- public void ForceOccupied()
+ ///
+ /// Pulse ForceOccupied on the sensor for .5 seconds
+ ///
+ public void ForceOccupied()
+ {
+ CrestronInvoke.BeginInvoke((o) =>
+ {
+ ForceOccupied(true);
+ CrestronEnvironment.Sleep(500);
+ ForceOccupied(false);
+ });
+ }
+
+ public void ForceOccupied(bool value)
{
- OccSensor.ForceOccupied.BoolValue = true;
+ OccSensor.ForceOccupied.BoolValue = value;
}
- public void ForceVacant()
+ ///
+ /// Pulse ForceVacant on the sensor for .5 seconds
+ ///
+ public void ForceVacant()
+ {
+ CrestronInvoke.BeginInvoke((o) =>
+ {
+ ForceVacant(true);
+ CrestronEnvironment.Sleep(500);
+ ForceVacant(false);
+ });
+ }
+
+ public void ForceVacant(bool value)
{
- OccSensor.ForceVacant.BoolValue = true;
+ OccSensor.ForceVacant.BoolValue = value;
}
public void EnableRawStates(bool state)
@@ -462,8 +488,8 @@ namespace PepperDash.Essentials.Core
GlsOccupancySensorBaseJoinMap joinMap)
{
// Occupied status
- trilist.SetSigTrueAction(joinMap.ForceOccupied.JoinNumber, occController.ForceOccupied);
- trilist.SetSigTrueAction(joinMap.ForceVacant.JoinNumber, occController.ForceVacant);
+ trilist.SetBoolSigAction(joinMap.ForceOccupied.JoinNumber, occController.ForceOccupied);
+ trilist.SetBoolSigAction(joinMap.ForceVacant.JoinNumber, occController.ForceVacant);
occController.RoomIsOccupiedFeedback.LinkInputSig(trilist.BooleanInput[joinMap.RoomOccupiedFeedback.JoinNumber]);
occController.RoomIsOccupiedFeedback.LinkComplementInputSig(
trilist.BooleanInput[joinMap.RoomVacantFeedback.JoinNumber]);