-
Notifications
You must be signed in to change notification settings - Fork 6
platform sdk actions
Andre Lafleur edited this page Feb 1, 2026
·
2 revisions
The Security Center SDK allows applications to receive actions directed at entities. Actions are commands that tell an entity to do something, such as triggering an output relay or arming a zone.
Subscribe to actions using Engine.ActionReceived:
private void Initialize()
{
engine.ActionReceived += OnActionReceived;
}
private void OnActionReceived(object sender, ActionReceivedEventArgs e)
{
Console.WriteLine($"Action received: {e.ActionType} at {e.Timestamp}");
Console.WriteLine($"Recipient: {e.Action.Recipient}");
}Actions are received when:
- The target entity is loaded in the engine's entity cache
- Your application has subscribed to
ActionReceived
The ActionReceived event notifies you when actions are directed at entities you have loaded. This is used for monitoring what actions are being executed in the system.
Cast the Action property to specific action classes:
private void OnActionReceived(object sender, ActionReceivedEventArgs e)
{
switch (e.ActionType)
{
case ActionType.TriggerOutput:
var triggerAction = e.Action as TriggerOutputAction;
Console.WriteLine($"Output behavior: {triggerAction?.OutputBehavior}");
break;
case ActionType.ArmZone:
var armAction = e.Action as ArmZoneAction;
Console.WriteLine($"Arming zone: {armAction?.Recipient}");
break;
}
}| Property | Type | Description |
|---|---|---|
ActionType |
ActionType |
The type of action received |
Action |
Action |
The action object with details |
Timestamp |
DateTime |
When the action was triggered (UTC) |
The Action base class provides:
| Property | Type | Description |
|---|---|---|
Type |
ActionType |
The action type |
Recipient |
Guid |
Target entity GUID |
AllRecipients |
IEnumerable<Guid> |
All target entity GUIDs (for multi-recipient actions) |
Schedule |
Guid |
Associated schedule GUID |
SourceEvent |
Event |
The event that triggered this action (if applicable) |
Commonly used action classes:
| Class | Description |
|---|---|
TriggerOutputAction |
Trigger an output relay |
ArmZoneAction |
Arm a zone |
DisarmZoneAction |
Disarm a zone |
ArmIntrusionAreaAction |
Arm an intrusion area |
DisarmIntrusionAreaAction |
Disarm an intrusion area |
ExecuteMacroAction |
Execute a macro |
SetThreatLevelAction |
Set threat level |
BypassInputAction |
Bypass an input |
UnbypassInputAction |
Remove input bypass |
You only receive actions for entities loaded in the engine's entity cache. See Subscribing to events for details on loading entities.
Remove action handlers during disposal:
protected override void Dispose(bool disposing)
{
if (disposing)
{
engine.ActionReceived -= OnActionReceived;
}
base.Dispose(disposing);
}- Overview
- Connecting to Security Center
- SDK certificates
- Referencing SDK assemblies
- SDK compatibility
- Entities
- Entity cache
- Transactions
- Events
- Actions
- Security Desk
- Custom events
- ReportManager
- ReportManager query reference
- DownloadAllRelatedData and StrictResults
- Privileges
- Partitions
- Logging
- Overview
- Certificates
- Lifecycle
- Threading
- State management
- Configuration
- Restricted configuration
- Events
- Queries
- Request manager
- Database
- Entity ownership
- Entity mappings
- Server management
- Custom privileges
- Custom entity types
- Resolving non-SDK assemblies
- Deploying plugins
- .NET 8 support
- Overview
- Certificates
- Creating modules
- Tasks
- Pages
- Components
- Tile extensions
- Services
- Contextual actions
- Options extensions
- Configuration pages
- Monitors
- Shared components
- Commands
- Extending events
- Map extensions
- Timeline providers
- Image extractors
- Credential encoders
- Credential readers
- Cardholder fields extractors
- Badge printers
- Content builders
- Dashboard widgets
- Incidents
- Logon providers
- Pinnable content builders
- Custom report pages
- Overview
- Getting started
- MediaPlayer
- VideoSourceFilter
- MediaExporter
- MediaFile
- G64 converters
- FileCryptingManager
- PlaybackSequenceQuerier
- PlaybackStreamReader
- OverlayFactory
- PtzCoordinatesManager
- AudioTransmitter
- AudioRecorder
- AnalogMonitorController
- Camera blocking
- Overview
- Getting started
- Referencing entities
- Entity operations
- About access control in the Web SDK
- About video in the Web SDK
- Users and user groups
- Partitions
- Custom fields
- Custom card formats
- Actions
- Events and alarms
- Incidents
- Reports
- Tasks
- Macros
- Custom entity types
- System endpoints
- Performance guide
- Reference
- Under the hood
- Troubleshooting