What the Binary Lighting Output Object Is
The Binary Lighting Output object, defined in Clause 12.55 of ANSI/ASHRAE 135-2024, is how a BACnet device represents an on/off lighting output. It is the two-state companion to the dimmable Lighting Output: the light is either on or off, and the object is commanded by writing to Present_Value, which is arbitrated through a priority array.
What distinguishes it from a plain Binary Output is the built-in blink-warn mechanism, which flashes the lights to warn occupants before an automatic shut-off. The warn commands come in three variants written to Present_Value: WARN flashes but leaves the lights unchanged, WARN_RELINQUISH flashes then keeps the lights on for an egress time before relinquishing, and WARN_OFF flashes then turns the lights off after the egress time. Binary Lighting Output objects that support intrinsic reporting apply the NONE event algorithm, so their intrinsic reporting is limited to fault conditions.
Where You’ll See It
- Switched circuits and relays. A relay-controlled lighting circuit that a controller can only switch on or off is a Binary Lighting Output object.
- Lighting controllers. Devices carrying the B-LD Lighting Device profile host Binary Lighting Output objects alongside dimmable Lighting Outputs.
- Occupant warning before shut-off. A scheduled WARN_RELINQUISH flashes the lights, holds them on for the egress time so occupants can leave, then releases control.
How Commanding Works
A WriteProperty to Present_Value does not switch the light directly. It places the command in one of 16 slots of the Priority_Array, chosen by the write’s priority (1 = highest, 16 = lowest). The object presents the highest-priority non-Null slot and drives the circuit to match. Writing Null at a priority clears that slot; when every slot is Null, the output falls back to Relinquish_Default. Current_Command_Priority reports which slot is in control. This is the same priority-array arbitration used by a Binary Output. The blink-warn variants (WARN, WARN_RELINQUISH, WARN_OFF) are written to Present_Value at a chosen priority and drive the object’s internal egress timer rather than switching the light immediately.
Required Properties
Clause 12.55 requires every Binary Lighting Output object to provide these properties. Datatypes are the spec’s names: BACnetBinaryLightingPV is the on/off and blink-warn present value, Unsigned an integer, 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-lighting-output for this object |
Present_Value | BACnetBinaryLightingPV | The commanded state (on, off, or a blink-warn variant). Writable, but through the priority array, not as a direct store |
Status_Flags | BACnetStatusFlags | Four health flags: in-alarm, fault, overridden, out-of-service |
Out_Of_Service | BOOLEAN | When true, Present_Value is decoupled from the physical output for testing |
Blink_Warn_Enable | BOOLEAN | Whether the blink-warn mechanism is allowed |
Egress_Time | Unsigned | How long the lights stay on after a warn-relinquish, in seconds |
Egress_Active | BOOLEAN | Whether an egress countdown is currently running |
Priority_Array | BACnetPriorityArray | The 16 command slots; the highest-priority non-Null slot wins |
Relinquish_Default | BACnetBinaryLightingPV | The state taken when every priority slot is Null |
Current_Command_Priority | BACnetOptionalUnsigned | Which priority slot (1-16) is currently in control, or none |
Property_List | BACnetARRAY[N] of BACnetPropertyIdentifier | The list of properties this instance actually implements |
Optional Properties
The properties integrators meet most are Feedback_Value and Polarity, the runtime-tracking group (Elapsed_Active_Time, Strike_Count), and the color companions (Color_Reference, Override_Color_Reference). The intrinsic-reporting group generally appears or is absent as a set and reports faults only. The Audit_Level, Auditable_Operations, and Audit_Priority_Filter properties are the audit-logging controls added in 135-2024.
| Property | Datatype | Group |
|---|---|---|
Description | CharacterString | General |
Reliability | BACnetReliability | Fault detection |
Feedback_Value | BACnetBinaryLightingPV | Lighting |
Power | REAL | Lighting |
Polarity | BACnetPolarity | Lighting |
Color_Reference | BACnetObjectIdentifier | Lighting |
Color_Override | BOOLEAN | Lighting |
Override_Color_Reference | BACnetObjectIdentifier | Lighting |
Elapsed_Active_Time | Unsigned | Runtime tracking |
Time_Of_Active_Time_Reset | BACnetDateTime | Runtime tracking |
Strike_Count | Unsigned | Runtime tracking |
Time_Of_Strike_Count_Reset | BACnetDateTime | Runtime tracking |
Event_State | BACnetEventState | Intrinsic reporting |
Event_Detection_Enable | BOOLEAN | 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 |
Reliability_Evaluation_Inhibit | BOOLEAN | Fault detection |
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 |
Audit_Level | BACnetAuditLevel | Auditing |
Auditable_Operations | BACnetAuditOperationFlags | Auditing |
Audit_Priority_Filter | BACnetOptionalPriorityFilter | Auditing |
Tags | BACnetARRAY[N] of BACnetNameValue | Tagging and profile |
Profile_Location | CharacterString | Tagging and profile |
Profile_Name | CharacterString | Tagging and profile |
Related Objects
- Lighting Output: the dimmable counterpart with fade, ramp, and step commands.
- Binary Output: the general-purpose commandable two-state output, without lighting-specific behavior.
- Channel: fans a single written value out to many lighting outputs at once through the WriteGroup service.
What Chipkin Provides
The Binary Lighting Output object, including its priority array and blink-warn egress model, is a first-class object type in the CAS BACnet Stack. Talk to us about modeling your device’s points.