What the Binary Value Object Is
The Binary Value object, defined in Clause 12.8 of ANSI/ASHRAE 135-2024, represents a two-state value inside a BACnet device that is not tied to a physical input or output. Where a Binary Input reads a contact and a Binary Output drives a relay, a Binary Value is a software flag: an enable, a mode, an occupancy state, or any on/off condition the logic holds and may share.
A Binary Value can be read-only or commandable. When commandable, it carries the same 16-slot priority array as a Binary Output; when it is a simple stored flag, it does not. Binary Value objects that support intrinsic reporting apply the CHANGE_OF_STATE event algorithm.
Where You’ll See It
- Enables and modes. An occupancy flag, a system enable, or an economizer-enable bit an operator or sequence sets.
- Software commands. A shared on/off request that several controllers read, with no physical relay behind it.
- Status summaries. A single Binary Value that rolls up a condition for other devices to read.
Required Properties
Clause 12.8 requires every Binary Value object to provide these properties. Datatypes are the spec’s names: BACnetBinaryPV is the two-state present value (active or inactive), BOOLEAN a true/false flag, and the other BACnet-prefixed types are structured values defined by the standard.
| Property | Datatype | What it holds |
|---|---|---|
Object_Identifier | BACnetObjectIdentifier | The object’s type and instance number, unique within the device |
Object_Name | CharacterString | The human-readable point name, unique within the device |
Object_Type | BACnetObjectType | Always binary-value for this object |
Present_Value | BACnetBinaryPV | The state, active or inactive. Read-only or commandable depending on the instance |
Status_Flags | BACnetStatusFlags | Four health flags: in-alarm, fault, overridden, out-of-service |
Event_State | BACnetEventState | The object’s current event state (normal, off-normal, or fault) |
Out_Of_Service | BOOLEAN | When true, Present_Value is decoupled for testing and override |
Property_List | BACnetARRAY[N] of BACnetPropertyIdentifier | The list of properties this instance actually implements |
When the object is commandable, it additionally implements Priority_Array, Relinquish_Default, and Current_Command_Priority. On a simple stored Binary Value these are absent. See How Commanding Works on the Binary Output page for the priority-array model.
Optional Properties
The properties integrators meet most are the state labels Inactive_Text and Active_Text, Alarm_Value (which state is the alarm), and, on commandable instances, the command-tracking group. The intrinsic-reporting group generally appears or is absent as a set.
| Property | Datatype | Group |
|---|---|---|
Description | CharacterString | General |
Inactive_Text | CharacterString | State labels |
Active_Text | CharacterString | State labels |
Change_Of_State_Time | BACnetDateTime | Runtime tracking |
Change_Of_State_Count | Unsigned | Runtime tracking |
Time_Of_State_Count_Reset | BACnetDateTime | Runtime tracking |
Elapsed_Active_Time | Unsigned32 | Runtime tracking |
Time_Of_Active_Time_Reset | BACnetDateTime | Runtime tracking |
Minimum_Off_Time | Unsigned32 | Switching protection |
Minimum_On_Time | Unsigned32 | Switching protection |
Priority_Array | BACnetPriorityArray | Commanding |
Relinquish_Default | BACnetBinaryPV | Commanding |
Current_Command_Priority | BACnetOptionalUnsigned | Commanding |
Value_Source | BACnetValueSource | Commanding |
Value_Source_Array | BACnetARRAY[16] of BACnetValueSource | Commanding |
Last_Command_Time | BACnetTimeStamp | Commanding |
Command_Time_Array | BACnetARRAY[16] of BACnetTimeStamp | Commanding |
Alarm_Value | BACnetBinaryPV | Intrinsic reporting |
Time_Delay | Unsigned | Intrinsic reporting |
Notification_Class | Unsigned | Intrinsic reporting |
Event_Enable | BACnetEventTransitionBits | Intrinsic reporting |
Acked_Transitions | BACnetEventTransitionBits | Intrinsic reporting |
Notify_Type | BACnetNotifyType | Intrinsic reporting |
Event_Time_Stamps | BACnetARRAY[3] of BACnetTimeStamp | Intrinsic reporting |
Event_Message_Texts | BACnetARRAY[3] of CharacterString | Intrinsic reporting |
Event_Message_Texts_Config | BACnetARRAY[3] of CharacterString | Intrinsic reporting |
Event_Detection_Enable | BOOLEAN | Intrinsic reporting |
Event_Algorithm_Inhibit_Ref | BACnetObjectPropertyReference | Intrinsic reporting |
Event_Algorithm_Inhibit | BOOLEAN | Intrinsic reporting |
Time_Delay_Normal | Unsigned | Intrinsic reporting |
Reliability | BACnetReliability | Fault detection |
Reliability_Evaluation_Inhibit | BOOLEAN | Fault detection |
Audit_Level | BACnetAuditLevel | Auditing |
Auditable_Operations | BACnetAuditOperationFlags | Auditing |
Tags | BACnetARRAY[N] of BACnetNameValue | Tagging and profile |
Profile_Location | CharacterString | Tagging and profile |
Profile_Name | CharacterString | Tagging and profile |
Related Objects
- Binary Input: a two-state value read from a physical contact.
- Binary Output: a two-state value driven to physical hardware.
- Analog Value: the continuous software-point equivalent.
What Chipkin Provides
The Binary 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.