Configure data selection
- Last UpdatedFeb 20, 2025
- 4 minute read
- PI System
- Adapter for BACnet 1.2
- Adapters
In addition to the data source configuration, you need to provide a data selection configuration to specify the data you want the BACnet adapter to collect from the data sources.
Complete the following steps to configure the BACnet data selection.
-
Use the PUT method in conjunction with the following REST endpoint to initialize the configuration:
api/v1/configuration/<ComponentId>/DataSelection
-
Using a text editor, create an empty text file.
-
Copy and paste an example configuration for BACnet data selection into the file
-
Update the example JSON parameters for your environment.
-
Save the file. For example, as DataSelection.json.
-
Open command line session. Change directory to the location of DataSelection.json.
-
Enter the following cURL command (which uses the PUT method) to initialize data selection for your data source.
If you installed the adapter to listen on a non-default port, update 5590 to the port number in use. Additionally, if you use a component ID other than BACnet1, update the endpoint with your chosen component ID.
curl -d "@DataSelection.json" -H "Content-Type: application/json" -X PUT "http://localhost:5590/api/v1/configuration/BACnet1/DataSelection"
Note: For a list of other REST operations you can perform, like updating or deleting a data source, see REST URLs section below .
Data selection parameters
The following parameters are available to configure BACnet data selection:
|
Parameter |
Required |
Type |
Description |
|---|---|---|---|
|
selected |
Optional1 |
boolean |
Use this field to select or clear a measurement. To select an item, set to true and specify a scheduleId. To remove an item, leave the field empty or set to false. If not configured, the default value is false. |
|
name |
Optional |
string |
Name of the data item collected from the data source. The default value is null and results in the streamId value being used also as a name. |
|
streamId |
Optional |
string |
The custom stream ID to create the streams. If not specified, the BACnet adapter generates a default stream ID based on the measurement configuration. A properly configured custom stream ID follows these rules:
|
|
dataFilterId |
Optional |
string |
The ID of the data filter. Note: If the specified dataFilterId does not exist, unfiltered data is sent until that dataFilterId is created. |
|
deviceIPAddress |
Required |
string |
Device IP address |
|
deviceId |
Required3 |
number |
BACnet device instance number |
|
objectType |
Required3 |
string |
Any of the types listed in the Principles of operation |
|
objectId |
Required3 |
number |
BACnet object instance number |
|
dataCollectionMode |
Optional |
string |
Specifies the mode of data collection for the item. Must be one of Poll, SubscribeCov, or SubscribeCovProperty. Default value is Poll. |
|
covIncrement |
Optional |
number |
For use only with SubscribeCovProperty in DataCollectionMode. Specifies the amount that the configured property must change in order for a new value to be sent by the device. If the value is empty, the COV increment to use is determined by the device. If set to 0, any change in value will result in a new data value being sent. |
|
propertyIdentifier |
Optional3 |
string |
Specifies which property to collect from the BACnet object. If left empty, PresentValue is collected. |
|
scheduleId |
Optional1, 2 |
string |
Specifies a schedule ID to which the data selection item is linked. This data item
is collected on the scheduled interval if Selected is set to true. |
1 Required for data flow.
2 If the configured scheduleId for an item is not valid, then no data will be collected for the item because it will never be scheduled.
3 If you specify the same combination of deviceId, objectType, objectId, and propertyIdentifier for multiple data selection items, it can result in data not being written to one or more streams. we recommend that the combination of those properties be unique for each data selection item.
Data selection examples
The following is an example of a valid BACnet data selection configuration with different data collection modes. Since the last item has Selected set to false, data will not be collected for it.
[
{
"selected": true,
"name": "10.12.112.40_14.AnalogInput90",
"streamId": "10.12.112.40_14.AnalogInput90",
"deviceIPAddress": "10.12.112.40",
"deviceId": 14,
"objectType": "AnalogInput",
"objectId": 90,
"dataCollectionMode": "Poll",
"scheduleId": "Schedule1"
},
{
"selected": true,
"name": "10.12.112.40_14.AnalogInput95",
"streamId": "10.12.112.40_14.AnalogInput95",
"deviceIPAddress": "10.12.112.40",
"deviceId": 14,
"objectType": "AnalogInput",
"objectId": 95,
"dataCollectionMode": "SubscribeCovProperty",
"propertyIdentifier": "PresentValue",
"covincrement": 0.5,
"scheduleId": "Schedule1"
},
{
"selected": false,
"name": "10.12.112.40_16.AnalogOutput70",
"streamId": "10.12.112.40_16.AnalogOutput70",
"deviceIPAddress": "10.12.112.40",
"deviceId": 16,
"objectType": "AnalogOutput",
"objectId": 70,
"dataCollectionMode": "SubscribeCov",
"scheduleId": "Schedule2"
}
]
REST URLs
|
Relative URL |
HTTP verb |
Action |
|---|---|---|
|
api/v1/configuration/<ComponentId>/DataSelection |
GET |
Retrieves the data selection configuration, including all data selection items. |
|
api/v1/configuration/<ComponentId>/DataSelection |
PUT |
Configures or updates the data selection configuration. The adapter starts collecting
data for each data selection item when the following conditions are met: |
|
api/v1/configuration/<ComponentId>/DataSelection |
POST |
Allows new items to be appended to the data selection without having to pass the entire data selection. |
|
api/v1/configuration/<ComponentId>/DataSelection |
PATCH |
Allows partial updates of configured data selection items. Note: The request must be an array containing one or more data selection items. Each item in the array must include its StreamId. |
|
api/v1/configuration/<ComponentId>/DataSelection |
DELETE |
Deletes the active data selection configuration. The adapter stops collecting data. |
|
api/v1/configuration/<ComponentId>/DataSelection/<StreamId> |
PUT |
Updates or creates a new data selection item by StreamId. For new items, the adapter starts collecting data after the request is received. |
|
api/v1/configuration/<ComponentId>/DataSelection/<StreamId> |
DELETE |
Deletes a data selection item from the configuration by StreamId. The adapter stops collecting data for the deleted item. |
Note: Replace <Component> with the Id of your BACnet component. For example, BACnet1.