BACnet and Modbus are communication protocols used for connecting industrial electronic devices and building automation and control systems.

Note: This feature is available as a preview.
BACnet uses the User Datagram Protocol (UDP) and its default port is 47808. Modbus uses the Transmission Control Protocol (TCP) and its default port is 502. You can customize these ports on the Thing device.

The BACnet protocol includes broadcast exchange services such as Who-Is and I-Am, which are used for discovering devices. The gateway sends the Who-Is command to all the IP addresses on the port and the BACnet devices respond with I-Am. The Modbus protocol does not have an in-built discovery support. Liota scans for all Modbus devices on a defined range of IP addresses, on a specified port.

The BACnet protocol uses object type and instance number to get or set properties on a BACnet device. The following table lists the supported BACnet object types:
Object Data Type Read/Write
analogInput Float Read
analogOutput/analogValue Float Read/Write
multiStateInput Integer Read
multistateOutput/multiStateValue Integer Read/Write
binaryInput Boolean Read
binaryOutput/binaryValue Boolean Read/Write
The Modbus protocol uses entity type and address to get or set properties on a Modbus device. The following table specifies the entities:
Entity Data Type Read/Write
DiscreteInput Boolean Read
Coil Boolean Read/Write
  • Integer 16/32/64
  • Float 32/64
  • String
  • Integer 16/32/64
  • Float 32/64
  • String

Liota contains example package files to enroll Thing devices that run on the BACnet and Modbus communication protocols.