mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-04-12 12:06:58 +00:00
feat: Add post activation action for aggregator
This commit is contained in:
parent
9128e108f7
commit
10129b8178
1 changed files with 37 additions and 3 deletions
|
|
@ -35,9 +35,38 @@ namespace PepperDash.Essentials.Core
|
|||
}
|
||||
|
||||
public IOccupancyStatusProviderAggregator(string key, string name, OccupancyAggregatorConfig config)
|
||||
: this(dc.Key, dc.Name)
|
||||
: this(key, name)
|
||||
{
|
||||
|
||||
AddPostActivationAction(() =>
|
||||
{
|
||||
if (config.DeviceKeys.Count == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
foreach (var deviceKey in config.DeviceKeys)
|
||||
{
|
||||
var device = DeviceManager.GetDeviceForKey(deviceKey);
|
||||
|
||||
if (device == null)
|
||||
{
|
||||
Debug.Console(0, this, Debug.ErrorLogLevel.Notice,
|
||||
"Unable to retrieve Occupancy provider with key {0}", deviceKey);
|
||||
continue;
|
||||
}
|
||||
|
||||
var provider = device as IOccupancyStatusProvider;
|
||||
|
||||
if (provider == null)
|
||||
{
|
||||
Debug.Console(0, this, Debug.ErrorLogLevel.Notice,
|
||||
"Device with key {0} does NOT implement IOccupancyStatusProvider. Please check configuration.");
|
||||
continue;
|
||||
}
|
||||
|
||||
AddOccupancyStatusProvider(provider);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -52,6 +81,11 @@ namespace PepperDash.Essentials.Core
|
|||
public void RemoveOccupancyStatusProvider(IOccupancyStatusProvider statusProvider)
|
||||
{
|
||||
_aggregatedOccupancyStatus.RemoveOutputIn(statusProvider.RoomIsOccupiedFeedback);
|
||||
}
|
||||
|
||||
public void ClearOccupancyStatusProviders()
|
||||
{
|
||||
_aggregatedOccupancyStatus.ClearOutputs();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -59,7 +93,7 @@ namespace PepperDash.Essentials.Core
|
|||
{
|
||||
public OccupancyAggregatorFactory()
|
||||
{
|
||||
TypeNames = new List<string> { "glsodtccn" };
|
||||
TypeNames = new List<string> { "occupancyAggregator", "occAggregate" };
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue