What the Color Object Is
The Color object, defined in Clause 12.65 of ANSI/ASHRAE 135-2024, controls the color output of a device, typically a lighting fixture. It is one of the color-control object types added in Protocol_Revision 24 (readable in the Device object), and it gives a BACnet device dedicated color functionality, including fading, that would otherwise need custom programming. The color is analog in nature and is expressed in the xyColor model, a pair of x and y coordinates on the CIE chromaticity diagram, each from 0 to 1.
The color changes when a client writes an absolute value to Present_Value or issues a command through Color_Command, which supports functions such as fading from one color to another over a time. Tracking_Value reports the color actually being produced as a fade proceeds, and In_Progress reports whether a color operation is running. Writes to Present_Value go directly and through Color_Command rather than through a 16-slot priority array, so the Color object is not commandable in the priority-array sense.
Where You’ll See It
- Tunable lighting. A color-tunable luminaire exposes a Color object so a scene controller sets an exact color point.
- Fade transitions.
Color_Commandfades a fixture smoothly from one color to another over a configured time rather than jumping instantly. - Paired with luminance. A Color object controls the color of a fixture whose brightness is driven by a linked Lighting Output, the two connected through the lighting object’s color reference.
Required Properties
Clause 12.65 requires every Color object to provide these properties. Datatypes are the spec’s names: Unsigned is an integer, BACnetxyColor a CIE x and y coordinate pair, BACnetColorCommand a color operation such as a fade, and the other BACnet-prefixed types are structured values defined by the standard. Present_Value and Color_Command are writable.
| 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 color for this object |
Present_Value | BACnetxyColor | Writable; the target color as CIE xy coordinates |
Tracking_Value | BACnetxyColor | The color actually being produced, tracked during a fade |
Color_Command | BACnetColorCommand | Writable; a color operation such as fade-to-color |
In_Progress | BACnetColorOperationInProgress | Whether a color operation is currently running |
Default_Color | BACnetxyColor | The color applied on restart |
Default_Fade_Time | Unsigned | The fade time used when a command specifies none |
Property_List | BACnetARRAY[N] of BACnetPropertyIdentifier | The list of properties this instance actually implements |
Optional Properties
The properties integrators meet most are Transition (how the object moves between colors) and Value_Source (which client last set the color). Description labels the object.
| Property | Datatype | Group |
|---|---|---|
Description | CharacterString | General |
Transition | BACnetColorTransition | Lighting color |
Value_Source | BACnetValueSource | Commanding |
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
- Color Temperature: controls white-light color temperature in Kelvin, where the Color object controls full-spectrum color as xy coordinates.
- Lighting Output: controls a fixture’s brightness, commonly paired with a Color object for its color.
- Analog Value: a general analog point, where the Color object carries a purpose-built color datatype.
What Chipkin Provides
The Color object is a first-class object type in the CAS BACnet Stack, modeled with its xyColor value and color-command properties. Talk to us about modeling your device’s points.