Local BACnet Server¶
Out of the box, NF runs a local BACnet server; however, it contains only a device object as required by the specification.
It is possible to add other objects to this server to expose local data which can be read by the control system. For example; you could publish suggested setpoints or startup times, which would then be ready by another controller on the network.
BACnet Protocol Support¶
NF supports the following object types:
- Analog values
- Multi-state values
- Binary values
Version 2.0 adds support for change-of-value (CoV) subscriptions on local objects. This allows other BACnet devices to receive notifications when you update the value of any of these local objects.
ReadProperty
, ReadPropertyMultiple
, and WriteProperty
BACnet
services are also supported.
Creating Local Objects¶
The set of local objects are managed using the BACnet
Configuration API. The
recommended way to call this API from the command line is using
nfcli
.
When creating an object, you must supply values for the object name and units properies; both of which are required by the BACnet standard. Other required properties will receive default values.
In this example, the first argument ("av") specifies the object type;
the supported values are av
, bv
, and msv
. You may also
optionally supply an instance number when creating an object; e.g.,
av.1
will attempt to create analog value instance 1. If that object
already exists, you will receive an error. When left unspecified, a
new instance will be allocated.
$ ./nfcli.py create-bacnet-object av object-name="Test Object" units=enumerated:0
Updating Properties using the API¶
Once an object is created, you may update any properties; for instance, changing the present value over time. When updating an object, you must provide the correct data type for required properties; for other properties any BACnet application type may be used.
$ ./nfcli.py update-bacnet-object av.1 present-value=real:47.47
Object Properties¶
The default property values are listed below.
Property Name | Data Type | Default |
---|---|---|
object-name |
character_string |
|
description |
character_string |
"" |
present-value |
real , boolean , or enumerated |
0 or false |
status-flags |
octet-string |
"0x00" |
out-of-service |
boolean |
`false |
Viewing Objects¶
You can view the objects and properties which have been created within the BACnet Config page, on the Local Objects tab. Editing these objects is only supported using the API.
Updating Properties using BACnet¶
By default, the "input" version of objects are also writable using
BACnet. Other BACnet devices may set new values using the
WriteProperty
BACnet service.