-
Notifications
You must be signed in to change notification settings - Fork 218
BACnet Driver
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.
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.
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.
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):
The name to used access the point. References to this point will use this name.
Used for meta data when creating point information on the historian.
A string representing what kind of BACnet standard object the point belongs to. Examples include:
- analogInput
- analogOutput
- analogValue
- binaryInput
- binaryOutput
- binaryValue
- multiStateValue
A string representing the name of the property belonging to the object. Usually this will be "presentValue".
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.
Object ID of the BACnet object.
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.
Additional notes for the point.
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 |
- Platform Agent
- VOLTTRON Central Agent
- Platform Commands
- Platform Configuration
- [Platform Hardening Security Recommendations] (Linux-Platform-Hardening-Recommendations-for-VOLTTRON-users)
- ...
- [Building VOLTTRON] (Building-VOLTTRON)
- Example Agents
- Agent Development
- [Shortcut Scripts] (Scripts)
- [VOLTTRON Conventions] (Conventions)
- [sMAP Test Server] (sMAP-Test-Instance)
- [Design Discussions] (Design Discussions)
- VIP
- VIP - VOLTTRON Interconnect Protocol
- RPC by example
- VIP - Known Identities
- VIP - Authentication
- VIP - Authorization
- Protecting Pub/Sub Topics
- Setup Eclipse for VOLTTRON
- Deployment Walkthrough
- Forward Historian Walkthrough
- [Create New Historian Agent] (Developing-Historian-Agents)
- [Create New Driver Agent] (Develop-Driver-Agent)
- [Developing With Eclipse] (Eclipse)
- Migrations
- [2.x to 3.x Migration](2.x-to 3.x-Migration)
- 1.2 to 2.0 Migration
- [Deployment Recommendations](Recommendations for Deployments)
VOLTTRON Versions and Features
Transactional Network Platform Overview
- Established Topics
- Working with the Actuator Agent
- Logging
- [Multi-Node Communication] (MultiBuildingMessaging)
Information Exchange Standards