Skip to content
kmonson edited this page Nov 19, 2015 · 10 revisions

Table of Contents

Requirements

Communicating with BACnet devices requires that the BACnet Proxy Agent is configured and running. All device communication happens through this agent. On some BACnet networks starting the Master Driver Agent before the BACnet Proxy may cause device communication to fail.

Configuring BACnet driver

The configuration is broken into two parts. The general driver configuration and the registry config. Information about the general driver config can be found here.

driver_config

There are four valid arguments for the "driver_config" section of the general driver configuration.

  • device_address - Address of the device. If the target device is behind an IP to MS/TP router then Remote Station addressing will probably be needed for the driver to find the device.
  • min_priority - (Optional) Minimum priority value allowed for this device whether specifying the prioity manually or via the registry config. Violating this parameter either in the configuration or when writing to the point will result in an error. Defaults to 8.
  • max_per_request - (Optional) Configure driver to manually segment read requests. The driver will only grab up to the number of objects specified in this setting at most per request. This setting is primarily for scraping many points off of low power devices. Defaults to 10000.
  • proxy_address - (Optional) VIP address of the BACnet proxy. Defaults to "platform.bacnet_proxy". See BACnet Proxy Agent for details. Unless your BACnet network has special needs you should not change this value.
If the device address is unknown then the bacnet_scan utility can be used to discover devices on a network.

Registry Configuration

The device type specific configuration of the BACnet driver takes place in a CSV file specified in the driver configuration file. An example file can be found in the voltron repository at volttron/drivers/bacnet_example_config.csv

Most of the configuration file can be generated with the grab_bacnet_config.py utility. See AutoBacnetConfigGeneration.

Currently the driver provides no method to access array type properties even if the members of the array are of a supported type.

The CSV file should be comma delimited. An Excel spreadsheet converted to CSV should work fine, even with commas in the data.

The CSV file requires a header line with the following columns labeled in any order (without quotes):

Volttron Point Name

The name to used access the point. References to this point will use this name.

Units

Used for meta data when creating point information on the historian.

BACnet Object Type

A string representing what kind of BACnet standard object the point belongs to. Examples include:

  • analogInput
  • analogOutput
  • analogValue
  • binaryInput
  • binaryOutput
  • binaryValue
  • multiStateValue

Property

A string representing the name of the property belonging to the object. Usually this will be "presentValue".

Writable

Either TRUE or FALSE. Determines if the point can be written to. If TRUE an actuation point will be created in addition to the normal point representing periodically scraped data. Only points labeled TRUE can be accessed through the ActuatorAgent. Incorrectly labeled points will cause an error to be returned if the user attempts to write to the point.

Currently there the BACnet Driver will write at priority 16 (the lowest possible) when write requests are made.

Index

Object ID of the BACnet object.

Write Priority

Optional column. BACnet priority for writing to this point. Valid values are 1-16. Missing this column or leaving the column blank will use the default priority of 16.

Notes

Additional notes for the point.

Example

Additional columns may be added at the user discretion as long as they are labeled differently.

The following is a simple example:

Point Name Volttron Point Name Units Unit Details BACnet Object Type Property Writable Index Notes
Building1/FCB.Local Application.DA1-P SampleAnalogInput inchesOfWater -0.20 to 5.00 analogInput presentValue FALSE 3000108 Resolution: 0.001
Building1/FCB.Local Application.CLG-O SampleAnalogOutput percent 0.00 to 100.00 (default 0.0) analogOutput presentValue TRUE 3000107 Resolution: 0.1
Building1/Energy.OAT SampleAnalogValue days No limits. (default 70.0) analogValue presentValue FALSE 3000019
Building1/FCB.Local Application.LT-A SampleBinaryInput Enum 0-1 binaryInput presentValue FALSE 3000115 BinaryPV: 0=inactive, 1=active
Building1/FCB.Local Application.GEF-C SampleBinaryOutput Enum 0-1 (default 0) binaryOutput presentValue TRUE 3000114 BinaryPV: 0=inactive, 1=active
Building1/FCB.Local Application.TUNING-RESET SampleBinaryValue Enum 0-1 (default 0) binaryValue presentValue TRUE 3000129 BinaryPV: 0=inactive, 1=active
Building1/FCB.Local Application.APP-MODE SampleMultiStateValue State State count: 7 (default 7) multiStateValue presentValue FALSE 3000128 1=Cool Only, 2=Heat Only, 3=Fan Only, 4=Water Flush, 5=Purge, 6=Vent, 7=Auto

Wiki Home

Quick Start Guide

Getting VOLTTRON

VOLTTRON Community

VOLTTRON Core Services

Historians

Drivers

Instance Management

Applications
  • ...
Examples
Developers
HOWTOS

VOLTTRON Versions and Features

Transactional Network Platform Overview

Platform Services

Volttron Restricted

Information Exchange Standards

FAQ

Project Home

Clone this wiki locally