Skip to main content
Version: Next

BACnet Overview

About BACnet

BACnet stands as a data communications protocol designed for Building Automation and Control Networks. It holds the status of an approved and standardized protocol by esteemed organizations such as the American Society of Heating, Refrigerating, and Air Conditioning Engineers (ASHRAE), the American National Standards Institute (ANSI), and the International Organization for Standardization (ISO). This protocol facilitates communication and control across various applications, including heating, ventilation, air-conditioning, lighting, access, and fire detection systems, along with their associated equipment.

BACnet Object IDs

ObjectNumber
Analog Input0
Analog Output1
Analog Value2
Binary Input3
Binary Output4
Binary Value5
Calendar6
Command7
Device8
Event Enrollment9
File10
Group11
Loop12
Multi-state Input13
Multi-state Output14
Notification Class15
Program16
Schedule17
Multi-state Value19

BACnet Common Property's

PropertyNameNumber
objectName77
presentValue85
priorityArray87
device8

BACnet Common Property's for a Device

Property NameDeviceNumber
objectList876
deviceName877
manufacture8121
manufacture-id8120
segmentationSupported8107
maxApduLength862

BACnet Property's

Property NameNumber
ackedTransitions0
ackRequired1
action2
actionText3
activeText4
activeVtSessions5
alarmValue6
alarmValues7
all8
allWritesSuccessful9
apduSegmentTimeout10
apduTimeout11
applicationSoftwareVersion12
archive13
bias14
changeOfStateCount15
changeOfStateTime16
notificationClass17
none18
controlledVariableReference19
controlledVariableUnits20
controlledVariableValue21
covIncrement22
datelist23
daylightSavingsStatus24
deadband25
derivativeConstant26
derivativeConstantUnits27
description28
descriptionOfHalt29
deviceAddressBinding30
deviceType31
effectivePeriod32
elapsedActiveTime33
errorLimit34
eventEnable35
eventState36
eventType37
exceptionSchedule38
faultValues39
feedbackValue40
fileAccessMethod41
fileSize42
fileType43
firmwareRevision44
highLimit45
inactiveText46
inProcess47
instanceOf48
integralConstant49
integralConstantUnits50
issueConfirmedNotifications51
limitEnable52
listOfGroupMembers53
listOfObjectPropertyReferences54
listOfSessionKeys55
localDate56
localTime57
location58
lowLimit59
manipulatedVariableReference60
maximumOutput61
maxApduLengthAccepted62
maxInfoFrames63
maxMaster64
maxPresValue65
minimumOffTime66
minimumOnTime67
minimumOutput68
minPresValue69
modelName70
modificationDate71
notifyType72
numberOfAPDURetries73
numberOfStates74
objectIdentifier75
objectList76
objectName77
objectPropertyReference78
objectType79
optional80
outOfService81
outputUnits82
eventParameters83
polarity84
presentValue85
priority86
priorityArray87
priorityForWriting88
processIdentifier89
programChange90
programLocation91
programState92
proportionalConstant93
proportionalConstantUnits94
protocolConformanceClass95
protocolObjectTypesSupported96
protocolServicesSupported97
protocolVersion98
readOnly99
reasonForHalt100
recipient101
recipientList102
reliability103
relinquishDefault104
required105
resolution106
segmentationSupported107
setpoint108
setpointReference109
stateText110
statusFlags111
systemStatus112
timeDelay113
timeOfActiveTimeReset114
timeOfStateCountReset115
timeSynchronizationRecipients116
units117
updateInterval118
utcOffset119
vendorIdentifier120
vendorName121
vtClassesSupported122
weeklySchedule123

Debugging

Wireshark/Tshark

Tshark

Install

sudo apt-get install tshark

Usage

sudo tshark -i eth0 -f "udp" | grep "BACnet-APDU"

Ping Port 47808

Check and see if port 47808 is open on your target device.

Netcat -v -u -z 192.168.15.155 47808