Datapoint Update Priorities

Normal and Priority Override Values

Services in an IAP network are peers.  As a result, any IAP service can update any writable datapoint in the network.  This can cause unexpected behavior when different services or applications update the same datapoint.  For example, you can use the IAP scheduler service in a SmartServer that has been configured by the CMS Calendar widget to set the occupancy state datapoint for a zone controller based on time of day.  In the same SmartServer, you can use the CMS Datapoints widget or create a custom dashboard to manually set the same occupancy state datapoint to occupied for a service event.  If a user manually sets the occupancy state prior to a scheduled change to unoccupied, the manual setting will be changed by the next scheduled change.

To enable services to override settings from other services, IAP supports updating the normal value of a datapoint plus sixteen priority override values.  The sixteen priority override values have a priority value from 1, for the highest priority, to 16 for the lowest priority level.  The normal value and 16 priority override values for a datapoint are stored in a priority array.  Each of the 16 priority override values can be active or inactive.  You can set a priority override value to make it active, and you can relinquish a priority override to make the relinquished priority override inactive.

The reported value for a datapoint, which is called the present value, is equal to the value of the highest priority active override value, if any, or the normal value if no priority overrides are active.  If two services update the normal value or one of the 16 override values at the same time, the last update wins and becomes the present value for the datapoint.  For a persistent update, a service can update a datapoint at a higher priority than any other priority overrides for the datapoint.

You can create a schedule event in the CMS Calendar widget.  For each event, you can specify the datapoints to be controlled by the event, and the datapoint value and priority for the event.  This enables you to create exception schedules that are active for a period of time that you specify.  When the SmartServer current time matches the schedule event start time, the SmartServer sets the specified datapoints to the specified value at the specified priority.  When the SmartServer current time matches the schedule event end time, the SmartServer relinquishes the specified priority unless another event at the same priority is active.  

You can manually relinquish a default using the CMS Datapoints widget.  For example, the following dialog illustrates the priority array for a datapoint with overrides active at priorities 12 and 14.  The present value is 70.  If you relinquish priority 12 with the Relinquish button for priority 12, the present value becomes 75.  If you relinquish the priority 14 with the Relinquish button for priority 12, the present value becomes the normal value which is 70.5. The null values are priority override values that have not been assigned.


Datapoints widget View Overrides dialog

Example

As described in the first paragraph for this topic, you can use the IAP scheduler service in a SmartServer that has been configured by the CMS Calendar widget to set the occupancy state datapoint for a zone controller based on time of day.  In the same SmartServer, you can use the CMS Datapoints widget to manually set the same occupancy state datapoint to occupied for a service event.  

To create the schedule and temporarily override the schedule, follow these steps:

  1. Open the CMS Calendar widget.  
  2. Create a daily repeating all-day schedule event that sets the normal value for all zone controller occupancy states to automatic.  This becomes the default value for the zone controller occupancy state so that occupancy is controlled by occupancy sensors.
  3. Create a Monday through Friday repeating 7:00am to 6:30pm schedule event the sets the priority 16 value for all zone controller occupancy states to occupied.  This overrides the default occupancy state specified in step 2 to the occupied state at priority 16 on the specified days during the specified hours.  The override is relinquished at 6:30pm on Monday through Friday, returning the occupancy state to automatic.
  4. Open the CMS Datapoints widget and set the occupancy state for the appropriate zone controller to occupied at priority 8.  This forces the occupancy state for the specified zone controller to occupied indefinately until the priority 8 value is changed or relinquished, or a higher priority override is specified.  
  5. To cancel the override, relinquish the priority 8 override for the occupancy state for the zone controller occupancy state you set in step 4.

IAP and BACnet Datapoint Priorities

IAP and BACnet have similar datapoint priority models.  Following is a comparison:

  • Both models support 16 priority overrides, with 1 as the highest priority and 16 as the lowest priority.
  • The normal value in IAP maps to the relinquish default value in BACnet.

The datapoint priority setting is only sent to BACnet devices; it is not sent to LON or Modbus devices. LON and Modbus devices have no concept of priorities. Instead, whatever was written last to the datapoint is the current value. Many BACnet devices support priority levels, although it is not required.

Working with BACnet devices, or using a BACnet tool to access LON and Modbus devices connected to a SmartServer

The SmartServer supports priorities 1-16 and normal. BACnet supports priorities 1-16.

If you use the SmartServer to write to a BACnet device, then the SmartServer will write to the BACnet device using the priority that you specify. Since the SmartServer supports normal priority, which is not supported by BACnet, then when you write at normal priority, the SmartServer will actually send the value at priority 16.

When you use a BACnet tool to write to a LON or Modbus device within the SmartServer, then it will only use priorities 1 through 16. This means that a BACnet tool cannot write to normal priority. If you are using a BACnet tool, then make sure the lowest priority that you use in the SmartServer is priority 16 for schedules and when writing to the LON or Modbus device. This means that for the CMS Calendar Widget you may want to only use priority 1-16 for the schedule events.