Skip to content

Local BACnet Server

1.5

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.

local objects

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.