The BACnet® protocol includes the commonly used service ReadProperty, which is used to request data from BACnet devices like the WattNode® meter. BACnet also includes ReadPropertyMultiple. There is a bit of confusion about what ReadProperty can return. It is allowed to return the following:
- Primitive Data (see ANSI/ASHRAE 135 section 22.214.171.124.1)
- Constructed Data (see ANSI/ASHRAE 135 section 126.96.36.199.2)
Primitive and Constructed data include the following:
- Integer (signed and unsigned)
- Real or float
- Octet (byte) string
- Character string
- Bit string
- BACnetARRAY (as for Device:Object_List or Multi-state Value:State_Text)
The main limitation with ReadProperty is that only a single property can be requested. However, if that property is an array property, you may request one element of the array (index = 1..n), the length of the array (index = 0) or the entire array (no index specified), so ReadProperty can return an entire array of results (assuming the entire array will fit in a single BACnet frame or segmentation is supported1.
- 1Note: The WattNode BACnet meter (MS/TP) does not currently support segmentation.
- ANSI/ASHRAE Standard 135-2010
- http://www.bacnet.org/Addenda/Add-2003-135-1-a-Final.pdf section “135.1a-11. Reading Entire Arrays”