Issue
Understanding Access Expert's schedules holidays and one-offs and their interaction with Triggers and Procedures
Product Line
EcoStruxure Access Expert
Environment
- Access Server Hosted Software
- Access Server Premise Software
Cause
More details on schedules holidays and one-offs are needed to clear confusion about Triggers & Procedures configuration.
Resolution
Let's first break this down into some basic principles on Schedules and Holidays.
- Schedules can become active or inactive. A status change is commonly used as a Trigger to some procedure (ie change a reader mode to unlocked)
- Holidays act as schedule masks so that schedules cannot become active or inactive, thus never triggering.
With that in mind;
One-off dates are SCHEDULE behaviors, similar to how choosing "Monday" is a scheduled behavior. All schedules can be masked by holiday configurations.
Special dates are HOLIDAY behaviors. They act as flags that effectively invert the bit that would normally mask, performing the inverse behavior.
Now that we've established those event types and configurations, let's go over Triggers & Procedures.
As mentioned in (1) that a status change is a trigger because it is a generated Mercury event. These triggers do whatever procedure you instruct them to do. As a result, whenever a trigger occurs that activates procedures A or B, or C, those procedures will execute.
When configuring many reader modes you can quickly and easily produce conflicts where a schedule becomes active and thus a procedure occurs, which sets a behavior that another schedule does not like because that trigger already happened. There is no concept of "following a schedule" in Mercury. In order to correctly configure reader modes, you will want to limit the normal modes to as few as possible (preferably 1) and instead create intelligent sets of schedule INTERVALS within one schedule, more specifically, you wouldn't use multiple modes, you would use 1 mode with a schedule containing multiple intervals.
If you would like a schedule to ignore a holiday, you would set "ALWAYS ACTIVE ON" and choose your holidays in the interval(s). The trick here is not to apply holidays to schedules that are not normally active.
Mercury controllers support up to 8128 Triggers and 8128 Procedures.
Holidays Mask schedules from becoming active. Always Active On will ensure that a schedule is NOT MASKED for that holiday group, by flipping a bit.
For customers using many sites which their own holiday restrictions, we offer enterprise licensing. Each location should have its own shared instance where holidays are localized to that instance's controllers and hardware.
Holidays should only be implemented when you want to mask schedules, if you then have schedules that shouldn't be masked, you would apply the "always active on" for those groups. If you have a schedule that won't become active on that holiday, then there's no need to override using always active on.