BACnet OctetString Value Object

The BACnet OctetString Value object (Clause 12.41) exposes a named raw byte-string value for binary data and opaque blobs, read-only or commandable.

What the OctetString Value Object Is

The OctetString Value object, defined in Clause 12.41 of ANSI/ASHRAE 135-2024, exposes a named raw byte-string value inside a BACnet device to other devices on the network. It makes any kind of octet-string data readable and, optionally, writable: a binary identifier, a packed data structure, a MAC address, or any opaque blob the control logic holds. Where a CharacterString Value carries readable text, an OctetString Value carries arbitrary bytes with no character-set interpretation.

An OctetString Value can be read-only or commandable. When it is commandable, it carries the same 16-slot priority array as an Analog Output; when it is a simple stored value, it does not. The OctetString Value object does not define an intrinsic event algorithm; it supports fault reporting through reliability-evaluation only.

Where You’ll See It

  • Binary identifiers. A hardware address, a raw serial or key blob other devices read with ReadProperty.
  • Packed data. A vendor-specific structure or byte buffer exposed as a single value.
  • Opaque payloads. A block of bytes a device shares without imposing a text encoding on it.

Required Properties

Clause 12.41 requires every OctetString Value object to provide these properties. Datatypes are the spec’s names: OctetString is a sequence of raw bytes, CharacterString a text string, and the BACnet-prefixed types are structured values defined by the standard.

PropertyDatatypeWhat it holds
Object_IdentifierBACnetObjectIdentifierThe object’s type and instance number, unique within the device
Object_NameCharacterStringThe human-readable point name, unique within the device
Object_TypeBACnetObjectTypeAlways octetstring-value for this object
Present_ValueOctetStringThe raw byte-string value. Read-only or commandable depending on the instance
Status_FlagsBACnetStatusFlagsFour health flags: in-alarm, fault, overridden, out-of-service
Property_ListBACnetARRAY[N] of BACnetPropertyIdentifierThe list of properties this instance actually implements

When the object is commandable, it additionally implements Priority_Array (the 16 command slots), Relinquish_Default (the fallback when all slots are Null), and Current_Command_Priority. On a simple stored OctetString Value these are absent. See How Commanding Works on the Analog Output page for the priority-array model.

Optional Properties

The OctetString Value has one of the smallest optional sets of the value objects: the ones integrators meet most are Description, the command-tracking group on commandable instances, and Reliability, which names the reason whenever the fault flag in Status_Flags is set. This object defines no intrinsic-reporting group.

PropertyDatatypeGroup
DescriptionCharacterStringGeneral
Out_Of_ServiceBOOLEANGeneral
Event_StateBACnetEventStateGeneral
Priority_ArrayBACnetPriorityArrayCommanding
Relinquish_DefaultOctetStringCommanding
Current_Command_PriorityBACnetOptionalUnsignedCommanding
Value_SourceBACnetValueSourceCommanding
Value_Source_ArrayBACnetARRAY[16] of BACnetValueSourceCommanding
Last_Command_TimeBACnetTimeStampCommanding
Command_Time_ArrayBACnetARRAY[16] of BACnetTimeStampCommanding
ReliabilityBACnetReliabilityFault detection
Reliability_Evaluation_InhibitBOOLEANFault detection
Audit_LevelBACnetAuditLevelAuditing
Auditable_OperationsBACnetAuditOperationFlagsAuditing
TagsBACnetARRAY[N] of BACnetNameValueTagging and profile
Profile_LocationCharacterStringTagging and profile
Profile_NameCharacterStringTagging and profile

What Chipkin Provides

The OctetString Value object, in both read-only and commandable forms, is a first-class object type in the CAS BACnet Stack. Talk to us about modeling your device’s points.