This wiki has been migrated to https://gitlab.com/wireshark/wireshark/-/wikis/home and is now deprecated. Please use that site instead.

BACnet

BACnet, the ASHRAE building automation and control networking protocol, has been designed specifically to meet the communication needs of building automation and control systems for applications such as heating, ventilating, and air-conditioning control, lighting control, access control, and fire detection systems. The BACnet protocol provides mechanisms by which computerized equipment of arbitrary function may exchange information, regardless of the particular building service it performs. As a result, the BACnet protocol may be used by head-end computers, general-purpose direct digital controllers, and application specific or unitary controllers with equal effect.

The BACnet protocol specifies transport over a number of datalink layers including ARCNET, MS/TP (RS-485), PTP (RS-232), LonTalk, and Ethernet. BACnet also specifies communication over UDP/IP which is known as BACnet/IP. Other datalink layers are proposed.

History

XXX - add a brief description of BACnet history

Protocol dependencies

Example traffic

wireshark_bacnet_stack_services.png

Wireshark

The BACnet dissector is fully functional.

Preference Settings

The dissector has no preference settings.

Example capture file

XXX - Add a simple example capture file to the SampleCaptures page and link from here (see below). Keep this file short, it's also a good idea to gzip it to make it even smaller, as Wireshark can open gzipped files automatically.

There are some sample BACnet capture files at:

Display Filter

A complete list of BACnet display filter fields can be found in the BACnet NPDU display filter reference, BACnet APDU display filter reference, and BVLC display filter reference

Capture Filter

You cannot directly filter BACnet protocols while capturing. However, if you know the TCP port used (see above), you can filter on that one.

Discussion