Merge pull request #231 from PepperDash/feature/RemoteOccupancy-Info-Update

Update RemoteOccupancy Info to send data via string
This commit is contained in:
Andrew Welker
2020-06-04 14:56:50 -06:00
committed by GitHub

View File

@@ -107,6 +107,8 @@ namespace PepperDash.Essentials.Core.Fusion
public long PushNotificationTimeout = 5000; public long PushNotificationTimeout = 5000;
private const string RemoteOccupancyXml = "<Occupancy><Type>Local</Type><State>{0}</State></Occupancy>";
protected Dictionary<int, FusionAsset> FusionStaticAssets; protected Dictionary<int, FusionAsset> FusionStaticAssets;
// For use with local occ sensor devices which will relay to Fusion the current occupancy status // For use with local occ sensor devices which will relay to Fusion the current occupancy status
@@ -117,6 +119,9 @@ namespace PepperDash.Essentials.Core.Fusion
public BoolFeedback RoomIsOccupiedFeedback { get; private set; } public BoolFeedback RoomIsOccupiedFeedback { get; private set; }
private string _roomOccupancyRemoteString;
public StringFeedback RoomOccupancyRemoteStringFeedback { get; private set; }
protected Func<bool> RoomIsOccupiedFeedbackFunc protected Func<bool> RoomIsOccupiedFeedbackFunc
{ {
get get
@@ -1368,11 +1373,21 @@ namespace PepperDash.Essentials.Core.Fusion
//occSensorShutdownMinutes.OutputSig.UserObject(new Action(ushort)(b => Room.OccupancyObj.SetShutdownMinutes(b)); //occSensorShutdownMinutes.OutputSig.UserObject(new Action(ushort)(b => Room.OccupancyObj.SetShutdownMinutes(b));
RoomOccupancyRemoteStringFeedback = new StringFeedback(() => _roomOccupancyRemoteString);
Room.RoomOccupancy.RoomIsOccupiedFeedback.LinkInputSig(occSensorAsset.RoomOccupied.InputSig); Room.RoomOccupancy.RoomIsOccupiedFeedback.LinkInputSig(occSensorAsset.RoomOccupied.InputSig);
Room.RoomOccupancy.RoomIsOccupiedFeedback.OutputChange += RoomIsOccupiedFeedback_OutputChange;
RoomOccupancyRemoteStringFeedback.LinkInputSig(occSensorAsset.RoomOccupancyInfo.InputSig);
//} //}
} }
/// <summary> void RoomIsOccupiedFeedback_OutputChange(object sender, FeedbackEventArgs e)
{
_roomOccupancyRemoteString = String.Format(RemoteOccupancyXml, e.BoolValue ? "Occupied" : "Unoccupied");
RoomOccupancyRemoteStringFeedback.FireUpdate();
}
/// <summary>
/// Helper to get the number from the end of a device's key string /// Helper to get the number from the end of a device's key string
/// </summary> /// </summary>
/// <returns>-1 if no number matched</returns> /// <returns>-1 if no number matched</returns>