Skip to content

Data Acquisition and Polling

BACnet provides a number of different mechanics to acquire time-series data from objects; including reading the Present-Value property; subscribing to Change-of-Value (COV) notifications, or reading from historized objects called Trend Logs.

NF currently implements polling of the Present Value property as its primary mechanism for data aquisition, for a number of reasons:

  • It supports all devices (not all devices support COVs or TLs), and no special configuration is needed.
  • With proper merging of reads on the same device and network scheduling, even very large networks can be supported; typically without many issues.
  • It is simple and predicatable.

You may also mark points to use Change-of-Value (CoV) subscriptions. If selected, Normal will create CoV subscriptions for each point on the underlying controllers and add trend data when CoV events are generated.

How to enable data aquisition

To request NF collect data from a point, simply write to the period property of that point on the Point API. The polling process will receive a notification of the change and begin polling immediately. An example of this using UpdatePoints is here:

$ curl -XPOST http://localhost:8080/api/v1/point/points -d '{ 
  "points": [ { 
     "uuid": "e675a03a-ddfd-11eb-a48e-acde48001122", 
     "layer": "hpl:bacnet:1", 
     "period": "900s" 
   } ] 
}'

Polling is synchronized to wall clock time, so (for instance) polling every 15 minutes will result in reads being attempted at 12:00, 12:15, 12:30, etc...

Using the Management Console

To enable trending in the management console, first select a set of point from the "Object Selection" tab. You can then use the "Configure Trending" option to set the period on these objects to a few pre-defined settings.

Enable trends

You may also configure trending on a group of points in the Object Explorer by using the context menu available from the "..." menu to the left of each group or point.