BACnet Lighting Output Object

The BACnet Lighting Output object (Clause 12.54) is a commandable dimmable light with fade, ramp, and blink-warn control, plus property tables.

What the Lighting Output Object Is

The Lighting Output object, defined in Clause 12.54 of ANSI/ASHRAE 135-2024, is how a BACnet device represents a dimmable lighting output. It is analog in nature: Present_Value is a normalized level from 0.0% (off) to 100.0% (brightest). What sets it apart from a plain Analog Output is a set of lighting-specific behaviors built into the object, so a controller does not have to program fades, ramps, steps, and occupant blink-warnings itself.

The level can be set two ways: writing an absolute value to Present_Value, which is commandable through a priority array, or writing Lighting_Command to trigger a ramp, step, fade, or blink-warn. The blink-warn mechanism flashes the lights to warn occupants before an automatic shut-off, holding them on for an egress time first. Lighting Output objects have no off-normal event algorithm (the spec assigns them the NONE algorithm), so their intrinsic reporting is limited to fault conditions rather than a value alarm.

Where You’ll See It

  • Dimmable fixtures and zones. A 0-10V, DALI (Digital Addressable Lighting Interface), or networked driver channel a lighting controller dims is a Lighting Output object.
  • Lighting controllers. Devices carrying the B-LD Lighting Device profile host Lighting Output objects, often driven by a B-LS Lighting Supervisor or a Channel fan-out.
  • Scheduled scenes with egress warning. A scheduler writes a WARN_RELINQUISH lighting command at end of day, the lights blink to warn occupants, stay on for the egress time, then relinquish.

How Commanding Works

Writing an absolute level to Present_Value does not set the output directly. It places the value 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 light 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 an Analog Output.

Lighting_Command layers the lighting-specific functions on top: a WriteProperty to it can ramp or fade the level over time, step it up or down, or issue a blink-warn (WARN, WARN_RELINQUISH, or WARN_OFF) at a chosen priority. Tracking_Value reports the actual clamped output while a transition is in progress, and In_Progress reports whether a fade or ramp is currently running.

Required Properties

Clause 12.54 requires every Lighting Output object to provide these properties. Datatypes are the spec’s names: REAL is a floating-point number, Unsigned an integer, BOOLEAN a true/false flag, 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 lighting-output for this object
Present_ValueREALThe commanded normalized level, 0.0 to 100.0%. Writable, but through the priority array, not as a direct store
Tracking_ValueREALThe actual output level, clamped and updated as a transition runs
Lighting_CommandBACnetLightingCommandWritable command that triggers ramp, step, fade, or blink-warn behavior
In_ProgressBACnetLightingInProgressWhether a fade, ramp, or other transition is currently running
Status_FlagsBACnetStatusFlagsFour health flags: in-alarm, fault, overridden, out-of-service
Out_Of_ServiceBOOLEANWhen true, Present_Value is decoupled from the physical output for testing
Blink_Warn_EnableBOOLEANWhether the blink-warn mechanism is allowed
Egress_TimeUnsignedHow long the lights stay on after a warn-relinquish, in seconds
Egress_ActiveBOOLEANWhether an egress countdown is currently running
Default_Fade_TimeUnsignedThe fade duration used when a command specifies none
Default_Ramp_RateREALThe ramp rate used when a command specifies none
Default_Step_IncrementREALThe step size used when a command specifies none
Priority_ArrayBACnetPriorityArrayThe 16 command slots; the highest-priority non-Null slot wins
Relinquish_DefaultREALThe level taken when every priority slot is Null
Lighting_Command_Default_PriorityUnsignedThe priority used for lighting commands that do not specify one
Current_Command_PriorityBACnetOptionalUnsignedWhich priority slot (1-16) is currently in control, or none
Last_On_ValueREALThe level the output held the last time it was on, used to restore it
Default_On_ValueREALThe level used when the output is turned on without a specified level
Property_ListBACnetARRAY[N] of BACnetPropertyIdentifierThe list of properties this instance actually implements

Optional Properties

The properties integrators meet most are the lighting group (Min_Actual_Value, Max_Actual_Value, High_End_Trim, Low_End_Trim, Feedback_Value), the power-metering fields (Power, Instantaneous_Power), 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.

PropertyDatatypeGroup
DescriptionCharacterStringGeneral
ReliabilityBACnetReliabilityFault detection
TransitionBACnetLightingTransitionLighting
Feedback_ValueREALLighting
PowerREALLighting
Instantaneous_PowerREALLighting
Min_Actual_ValueREALLighting
Max_Actual_ValueREALLighting
High_End_TrimREALLighting
Low_End_TrimREALLighting
Trim_Fade_TimeUnsignedLighting
Color_ReferenceBACnetObjectIdentifierLighting
Color_OverrideBOOLEANLighting
Override_Color_ReferenceBACnetObjectIdentifierLighting
COV_IncrementREALCOV reporting
Event_StateBACnetEventStateIntrinsic reporting
Event_Detection_EnableBOOLEANIntrinsic reporting
Notification_ClassUnsignedIntrinsic reporting
Event_EnableBACnetEventTransitionBitsIntrinsic reporting
Acked_TransitionsBACnetEventTransitionBitsIntrinsic reporting
Notify_TypeBACnetNotifyTypeIntrinsic reporting
Event_Time_StampsBACnetARRAY[3] of BACnetTimeStampIntrinsic reporting
Event_Message_TextsBACnetARRAY[3] of CharacterStringIntrinsic reporting
Event_Message_Texts_ConfigBACnetARRAY[3] of CharacterStringIntrinsic reporting
Reliability_Evaluation_InhibitBOOLEANFault detection
Value_SourceBACnetValueSourceCommanding
Value_Source_ArrayBACnetARRAY[16] of BACnetValueSourceCommanding
Last_Command_TimeBACnetTimeStampCommanding
Command_Time_ArrayBACnetARRAY[16] of BACnetTimeStampCommanding
Audit_LevelBACnetAuditLevelAuditing
Auditable_OperationsBACnetAuditOperationFlagsAuditing
Audit_Priority_FilterBACnetOptionalPriorityFilterAuditing
TagsBACnetARRAY[N] of BACnetNameValueTagging and profile
Profile_LocationCharacterStringTagging and profile
Profile_NameCharacterStringTagging and profile
  • Binary Lighting Output: the on/off lighting counterpart with the same blink-warn model but no dimming.
  • Analog Output: the general-purpose commandable analog output, without lighting-specific commands.
  • Channel: fans a single written value out to many lighting outputs at once through the WriteGroup service.

What Chipkin Provides

The Lighting Output object, including its priority array, lighting commands, 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.