Skip to content


BACnet (Building Automation and Control Networks) is a communication protocol used in smart buildings. It is defined by the International Organization for Standardization (ISO), the American National Standards Institute (ANSI) and the American Society of Heating, Venting, and Air-conditioning Engineers (ASHRAE). BACnet is designed specifically for smart buildings and control systems, and can be used for heating, ventilation, and air conditioning (HVAC), lighting control, access control, fire detection systems, and related equipment. Its advantages include reducing the cost of maintenance systems and making installation simpler than general industrial communication protocols. In addition, BACnet also provides five standard protocols commonly used in the industry, which can prevent equipment and system suppliers from monopolizing the market and increase the scalability and compatibility of future systems. BACnet supports multiple communication methods, including serial ports, IP, Ethernet, and ZigBee.

Neuron supports BACnet IP protocol and can communicate with BACnet devices through UDP protocol.

Add Device

Go to Configuration -> South Devices, then click Add Device to add the driver. Configure the following settings in the popup dialog box.

  • Name: The name of this device node.
  • Plugin: Select the BACnet/IP plugin.

Device Configuration

After clicking Create, you will be redirected to the Device Configuration page, where we will set up the parameters required for Neuron to establish a connection with the northbound application. You can also click the device configuration icon on the southbound device card to enter the Device Configuration interface.

Device IP AddressBACnet device IP
Device PortBACnet device port, default 47808

Configure Data Groups and Tags

After the plug-in is added and configured, the next step is to establish communication between your device and Neuron by adding groups and tags to the Southbound driver.

Once device configuration is completed, navigate to the South Devices page. Click on the device card or device row to access the Group List page. Here, you can create a new group by clicking on Create, then specifying the group name and data collection interval.

Upon successfully creating a group, click on its name to proceed to the Tag List page. This page allows you to add device tags for data collection. You'll need to provide information such as the tag address, attributes, and data type.

For information on general configuration items, see Connect to Southbound Devices. The subsequent section will concentrate on configurations specific to the driver.

Data Types

  • float
  • bit
  • int8
  • uint8
  • uint16
  • bool
  • string

Address Format


support Area

AI0 - 0x3fffffreadfloatanalog input
AO0 - 0x3fffffread/writefloatanalog output
AV0 - 0x3fffffread/writefloatanalog value
BI0 - 0x3fffffreadbitbinary input
BO0 - 0x3fffffread/writebitbinary output
BV0 - 0x3fffffread/writebitbinary value
MSI0 - 0x3fffffreaduint8multi state input
MSO0 - 0x3fffffread/writeuint8multi state output
MSV0 - 0x3fffffread/writeuint8multi state value
DEV0 - 0x3fffffreaddevice
ACC0 - 0x3fffffread/writeuint8accumulator

support standard property

object nameObject_Namestring
object typeObject_Tyepuint8
device typeDevice_Typestring
status flagsStatus_Flagsstring
event stateEvent_Stateuint8
out of serviceOut_Of_Servicebool
update intervalUpdate_Intervaluint8
COV incrementCOV_Incrementfloat
time delayTime_Delayuint8
notification classNotification_Classuint8
notify typeNotify_Typeuint8
high limitHigh_Limitfloat
low limitLow_Limitfloat
system statusSystem_Statusuint8
vendor nameVendor_Namestring
vendor identifierVendor_Identifieruint8
model nameModel_Namestring
firmware revisionFirmware_Revisionstring
application software versionApplication_Software_Versionstring
protocol versionProtocol_Versionuint16
protocol conformance classProtocol_Conformance_Classuint8
supported protocol serviceProtocol_Service_Supportedstring
supported protocol object typesProtocol_Object_Types_Supportedstring
serial numberSerial_Numberstring
max accepted apdu lengthMax_APDU_Length_Accepteduint16
supported segmentationSegmentation_Supporteduint8
local timeLOCAL_TIMEstring
local dateLOCAL_DATEstring
utc offsetUTC_Offsetint8
daylight savings statusDaylight_Savings_Statusbool
APDU segment timeoutAPUD_Segment_Timeoutuint8
APDU timeoutAPUD_Timeoutuint16
number of APDU retriesNumber_Of_APDU_Retriesuint8
max masterMax_Masteruint8
max info frameMax_Info_Frameuint8
profile nameProfile_Namestring
pluse ratePulse_Rateuint8
value before changeValue_Before_Changeuint8
value change timeValue_Change_Timestring

If no property is specified, the default property is Present_Value.

support custom property

PROPERTY_ID consists of two parts: a custom flag and the value (integer) of the property, with the overall format being AREA

Support Present Value zeroing operation, currently supporting AO and BO regions. The address format is "(AO|BO)xxx.NULL", and only write operations are supported. Depending on the type of region, write the zero value of the corresponding type.

Example Addresses

AddressData TypeDescription
AI0floatAI area, address is 0
AI1floatAI area, address is 1
AV30bitAV area, address is 30
BO10bitBO area, address is 10
BO20bitBO area, address is 20
BO10.NULLbitBO area, address is 10,write NULL
BI0bitBI area, address is 0
BI1bitBI area, address is 1
BV3bitBV area, address is 3
MSI10uint8MAI area, address is 10
MSI20uint8MSI area, address is 20
MSI30uint8MSI area, address is 30
ACC1stringACC area,address is 1
AI0.Object_NamestringAI area, address is property is Object_Name
AI0.custom.1234ALLAI area, address is 0,property is 1234
DEV400001.Vendor_NamestringDEV area,address is 400001,property is vendor name