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.
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.