Configuring CCURE 9000 Access Control events in the Administration Station
As all event activities are recorded in Genetec Mission Control™, you need to configure events in the CCURE 9000 Access Control Administration Station to avoid duplication of data.
Before you begin
Procedure
After you finish
Configuration options for Mission Control incidents
Incident configuration option | |
---|---|
(Recommended) Using Security Center events | |
Using custom events and CCURE XFEvents | |
CCURE configuration macro for custom event |
Incident configuration option: using Security Center events
Leverage Genetec Mission Control™ features to ensure that operators monitor incidents only in Mission Control including the ones coming from the CCURE 9000 Access Control plugin.
- Simplified configuration.
- Using the entity hierarchy in Security Center.
- Viewing triggered incidents and associated entities on maps.
- Reducing the number of entities monitored by operators by removing the custom CCURE XFEvents.
- Mission Control incidents operate with higher efficiency when integrated with events rather than alarms.
Using events as incident triggers
You can use a single Security Center event in place of multiple alarms as an incident trigger.
Procedure
Example
Adding entities to maps
You can add entities associated with incident triggers to a map to visualize triggered incidents in the Incident monitoring task.
What you should know
Procedure
- From the Config Tool homepage, open the Map designer task.
- Open an existing map or create a new map. For more information, see Creating maps.
-
In the Entities section, click Area view (
) to add map objects.
-
Add the required entities to your map and click Save.
Results
Configuring and using custom fields in Mission Control
You can use custom fields in incident configuration to provide operators with additional information when responding to incidents.
Procedure
- Create a custom field or configure an existing one. For more information, see Creating custom fields.
- Go to the Area view task, select an entity and open the Custom fields tab.
- Enter the desired value in the custom field and click Apply.
- Go to the Incident configuration task to create an incident and configure its trigger. For more information, see Configuring incident triggers for Mission Control.
- In the Automation tab, configure a conditional activity for the incident by using the custom field.
Example
- Create a custom field called Zone Level that assigned to all door entity
types.
- In the Area view task, select the door entity and enter the Zone
Level as 3 in the Custom fields tab and click
Apply.
NOTE: Zone level can be assigned to the selected door or any other entity in your area hierarchy. - In the Incident configuration task, create an incident and in its
Triggers tab create a Door forced open event.
- Go to the Automation tab to add the conditional activity using
the custom field to change the incident type when Zone Level is 3 for the triggered
entity. You need to create two additional incidents for this configuration.
Adding support documents with custom information
Apart from custom fields, you can also provide additional information about the incident or its attached entities to operators by adding a support documents to the incident.
Procedure
Synchronizing CCURE 9000 Access Control entities manually
You can import all compatible entities from the CCURE 9000 Access Control server into Security Center using synchronization.
Before you begin
- If this is the first time you are using synchronization to import entities, define the alarm recipients and choose a partition for alarms and events. For information about this, see Configuring alarm behavior.
- Make sure the plugin is connected to the server. For information about this, see Connecting to the CCURE 9000 system.
What you should know
Procedure
Results
- If this is the first synchronization, the CCURE 9000 Access Control plugin role changes from yellow to gray when it connects to the CCURE 9000 server.
- All XFEvents are listed in the Alarms and events page of the CCURE 9000 Access Control plugin role. XFEvents that require acknowledgment are listed as Alarms and XFEvents do not require acknowledgment are listed as Custom events.
- Panel inputs and outputs are listed under the CCURE 9000 Access Control plugin role in the entity browser and in the Area view task.
Incident configuration option: using custom events and CCURE XFEvents
You can use Genetec Mission Control™ to manage incidents while still operating processes in the CCURE server and the Monitoring Station.
What you should know
Creating custom events
You can create your own custom Security Center events that you can use for event-to-actions.
What you should know
Custom events allow you to give descriptive names to standard events generated by input signals from zones, intrusion panels, and so on. They are used to configure custom event-to-actions.
For example, you can associate an input state (normal, active, trouble) of a zone entity to a custom event that describes what is happening, such as Illegal entry or Door open too long for this zone. When this custom event is received in Security Desk, it can trigger an action, using event-to-actions.
Procedure
Configuring the macro for CCURE 9000 Access Control plugin
You can use macros to remap Security Center alarms and events to the CCURE plugin.
Procedure
Results
Example: Configuring an incident with a custom event
You can remap all events associated with an entity by configuring custom events and macros in the CCURE 9000 Access Control plugin.
Procedure
Results
CCURE configuration macro for custom events
Macros are entities used to add custom functionalities to Security Center such as mapping custom CCURE 9000 Access Control events to Security Center event-to-actions.
using Genetec.Sdk;
using Genetec.Sdk.Entities;
using Genetec.Sdk.Enumerations;
using Genetec.Sdk.Queries;
using Genetec.Sdk.Scripting;
using Genetec.Sdk.Scripting.Interfaces.Attributes;
using Genetec.Plugins.CCure.Requests;
using Genetec.Sdk.Entities.CustomEvents;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Runtime.Serialization;
using System.Xml;
[MacroParameters()]
public sealed class myMacro : UserMacro
{
public Guid CCURERole { get; set; }
public Guid LogRecipient { get; set; }
public string AreaPrefix { get; set; }
public string EventSuffix { get; set; }
public int CustomEventNo { get; set; }
public bool ShouldEventsTriggerAlarm { get; set; }
/// <summary>
/// Entry point of the macro. Provide an implementation of this method.
/// </summary>
public override void Execute()
{
var systemConfig = Sdk.GetEntity(SdkGuids.SystemConfiguration) as SystemConfiguration;
var customEventService = systemConfig.CustomEventService;
var customEvents = customEventService.CustomEvents;
var filteredCustomEvents = new List<CustomEvent>();
var areasPrefixes = AreaPrefix.Split(';');
foreach (var customEvent in customEvents)
{
if (areasPrefixes.Any(a => customEvent.Name.Contains(a)) && customEvent.Name.Contains(EventSuffix))
filteredCustomEvents.Add(customEvent);
}
//Sdk.ActionManager.SendMessage(LogRecipient, string.Join(",", filteredCustomEvents.Select(e => e.Name)), 60);
// Replace with your CCure role Guid
var getRequest = Sdk.RequestManager.SendRequest<EventConfigurationsRequest, EventConfigurationsResponse>(CCURERole, new EventConfigurationsRequest());
var config = getRequest.EventConfigurations;
foreach (var xfConfig in config)
{
if (filteredCustomEvents.Select(e => e.Id).Contains(xfConfig.CustomEventId))
{
xfConfig.CustomEventId = CustomEventNo;
xfConfig.HiddenFromUI = false;
xfConfig.RaiseEvent = true;
xfConfig.TriggerAlarm = ShouldEventsTriggerAlarm;
}
}
Sdk.RequestManager.SendRequest<SaveEventConfigRequest, VoidResponse>(CCURERole, new SaveEventConfigRequest(config));
}
/// <summary>
/// Called when the macro needs to clean up.
/// </summary>
protected override void CleanUp()
{
// Release objects created by the Execute method, unhook events, and so on.
}
}
namespace Genetec.Plugins.CCure.Requests
{
// Request to Get the configuration
[DataContract(Namespace = "")]
internal class EventConfigurationsRequest
{ }
// Response of the Get Request
[DataContract(Namespace = "")]
internal class EventConfigurationsResponse
{
[DataMember]
public List<XfEventConfiguration> EventConfigurations { get; private set; }
public EventConfigurationsResponse(List<XfEventConfiguration> eventConfigurations)
{
EventConfigurations = eventConfigurations;
}
}
// Request to save configuration
[DataContract(Namespace = "")]
internal class SaveEventConfigRequest
{
[DataMember]
public List<XfEventConfiguration> Configurations { get; private set; }
public SaveEventConfigRequest(List<XfEventConfiguration> configurations)
{
Configurations = configurations;
}
}
[DataContract(Namespace = "")]
public class VoidResponse
{
public static readonly VoidResponse Instance = new VoidResponse();
private VoidResponse()
{ }
}
// Configuration, meaning mapping between XfEvents and CustomEvents
[DataContract(Namespace = "")]
public class XfEventConfiguration
{
[DataMember]
public Guid AlarmId { get; set; }
[DataMember]
public int CustomEventId { get; set; }
[DataMember]
public bool HiddenFromUI { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public bool RaiseEvent { get; set; }
[DataMember]
public bool RequireAck { get; set; }
[DataMember]
public bool TriggerAlarm { get; set; }
[DataMember]
public Guid XfEventCustomEntityId { get; set; }
[DataMember]
public List<string> Tags { get; set; }
public XfEventConfiguration() { }
}
}