Scheduling

BACnet time scheduling provides strategies to implement date- and/or time-based functionality.

For this, BACnet uses two object types, Calendar and Schedule.

The Calendar object type provides information if TODAY matches one or more entries in the Date_List property. This is used e. g. to determine, if TODAY is a public holiday or not (assuming the date-list contains this information). An entry in the Date_List property may be a single Date, a DateRange or a WeekNDay (which is a combination of days, weeks and months).

The Schedule object type is mainly based upon two properties.

The Weekly_Schedule property represents a Schedule program (time/value list) for each of the days from Monday to Sunday.

The Exception_Schedule property specifies a list of exceptions which have precedence over the WeeklySchedule. The exceptions may be specified as a single Date, DateRange or WeekNDay or may be based upon a Calendar reference within the same device. Unfortunately, it is not possible from the BACnet standard to specify a global Calendar and refer to this object from other devices. If needed, the content of a global calendar may need to be copied to local calendar objects in every BACnet device.

Schedule objects contain a Schedule_Default property which specifies the fallback value at midnight, except the value is repeated at 00.00.00:00 the next day.

The schedule object has no specific data-type. The actual data-type is determined by the Weekly- and ExceptionSchedule, Schedule_Default and the list of ObjectPropertyReferences.

ObjectPropertyReferences may contain properties in objects within the same or in foreign devices.

The priority of the Schedule process is specified using the Priority_For_Writing property in the range from 1-16.